Add a default_net variable which specified whenever a default network should be created. It is cleared in case any -net option is specified and it is also added to the new -nodefaults switch.
Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- net.c | 5 ++++- net.h | 1 + vl.c | 1 + 3 files changed, 6 insertions(+), 1 deletions(-) diff --git a/net.c b/net.c index 9ea66e3..9375351 100644 --- a/net.c +++ b/net.c @@ -112,6 +112,8 @@ static QTAILQ_HEAD(, VLANState) vlans; static QTAILQ_HEAD(, VLANClientState) non_vlan_clients; +int default_net = 1; + /***********************************************************/ /* network device redirectors */ @@ -2834,7 +2836,7 @@ static int net_init_netdev(QemuOpts *opts, void *dummy) int net_init_clients(void) { - if (QTAILQ_EMPTY(&qemu_net_opts.head)) { + if (default_net) { /* if no clients, we use a default config */ qemu_opts_set(&qemu_net_opts, NULL, "type", "nic"); #ifdef CONFIG_SLIRP @@ -2887,5 +2889,6 @@ int net_client_parse(QemuOptsList *opts_list, const char *optarg) return -1; } + default_net = 0; return 0; } diff --git a/net.h b/net.h index 4ffce91..3611d10 100644 --- a/net.h +++ b/net.h @@ -133,6 +133,7 @@ struct NICInfo { extern int nb_nics; extern NICInfo nd_table[MAX_NICS]; +extern int default_net; /* BT HCI info */ diff --git a/vl.c b/vl.c index 6b00c2c..960d2f6 100644 --- a/vl.c +++ b/vl.c @@ -5418,6 +5418,7 @@ int main(int argc, char **argv, char **envp) default_parallel = 0; default_monitor = 0; default_vga = 0; + default_net = 0; break; #ifndef _WIN32 case QEMU_OPTION_chroot: -- 1.6.2.5