net: fix multiple NICs causing net opts process to stop

For NICs, net_init_client() returns the index into the NICInfo table.

qemu_opts_foreach() interprets non-zero as an error return an stops
iterating over the options.

So, if you have more than one '-net nic' on the command line, subsequent
'-net' options do not get processed.

Fix this by making net_client_init() only return non-zero if
net_init_client() returns an error.

Reported-by: Peter Lieven <pl@dlh.net>
Patchworks-ID: 35736
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Mark McLoughlin 2009-10-12 09:52:00 +01:00 committed by Anthony Liguori
parent 9a6ecb308b
commit c1671a0876
1 changed files with 3 additions and 1 deletions

4
net.c
View File

@ -3302,7 +3302,9 @@ static void net_check_clients(void)
static int net_init_client(QemuOpts *opts, void *dummy)
{
return net_client_init(NULL, opts, 0);
if (net_client_init(NULL, opts, 0) < 0)
return -1;
return 0;
}
static int net_init_netdev(QemuOpts *opts, void *dummy)