On Tue, May 21, 2013 at 12:46:09PM +0800, Amos Kong wrote: > On Fri, May 17, 2013 at 09:39:31AM +0200, Stefan Hajnoczi wrote: > > On Thu, May 16, 2013 at 07:07:25PM +0800, Amos Kong wrote: > > Hi Stefan, > > > > @@ -961,6 +961,44 @@ void print_net_client(Monitor *mon, NetClientState > > > *nc) > > > nc->info_str); > > > } > > > > > > +MacTableInfoList *qmp_query_mac_table(bool has_name, const char *name, > > > + Error **errp) > > > +{ > > > + NetClientState *nc; > > > + MacTableInfoList *table_list = NULL, *last_entry = NULL; > > > + > > > + QTAILQ_FOREACH(nc, &net_clients, next) { > > > + MacTableInfoList *entry; > > > + MacTableInfo *info; > > > + > > > + if (nc->info->type != NET_CLIENT_OPTIONS_KIND_NIC) { > > > + continue; > > > + } > > > > + if (has_name && strcmp(nc->name, name) != 0) { > > > + continue; > > > + } > > if (has_name && strcmp(nc->name, name) != 0) { > error_setg(errp, "invalid net client name: %s", name); > break; > }
We still need to search the other NICs. Bailing early doesn't work: imagine we have nic1 and nic2. If the user invokes query-mac-table nic2 then this code would return an error! Stefan