@@ -3026,39 +3026,7 @@ static int net_client_init_from_opts(Monitor *mon, QemuOpts *opts)
int net_client_init(Monitor *mon, const char *device, const char *p)
{
- char buf[1024];
- int vlan_id, ret;
- VLANState *vlan;
- char *name = NULL;
-
- if (!strcmp(device, "none") ||
- !strcmp(device, "nic") ||
- !strcmp(device, "user") ||
- !strcmp(device, "tap") ||
- !strcmp(device, "socket") ||
- !strcmp(device, "vde") ||
- !strcmp(device, "dump")) {
- QemuOpts *opts;
-
- opts = qemu_opts_parse(&qemu_net_opts, p, NULL);
- if (!opts) {
- return -1;
- }
-
- qemu_opt_set(opts, "type", device);
-
- return net_client_init_from_opts(mon, opts);
- }
-
- vlan_id = 0;
- if (get_param_value(buf, sizeof(buf), "vlan", p)) {
- vlan_id = strtol(buf, NULL, 0);
- }
- vlan = qemu_find_vlan(vlan_id, 1);
-
- if (get_param_value(buf, sizeof(buf), "name", p)) {
- name = qemu_strdup(buf);
- }
+ QemuOpts *opts;
#ifdef CONFIG_SLIRP
if (!strcmp(device, "channel")) {
@@ -3073,20 +3041,18 @@ int net_client_init(Monitor *mon, const char *device, const char *p)
} else {
slirp_guestfwd(QTAILQ_FIRST(&slirp_stacks), mon, p, 1);
}
- ret = 0;
- } else
-#endif
- {
- config_error(mon, "Unknown network device: %s\n", device);
- ret = -1;
- goto out;
+ return 0;
}
- if (ret < 0) {
- config_error(mon, "Could not initialize device '%s'\n", device);
+#endif
+
+ opts = qemu_opts_parse(&qemu_net_opts, p, NULL);
+ if (!opts) {
+ return -1;
}
-out:
- qemu_free(name);
- return ret;
+
+ qemu_opt_set(opts, "type", device);
+
+ return net_client_init_from_opts(mon, opts);
}
void net_client_uninit(NICInfo *nd)
Now that we've ported everything over to QemuOpts, we can kill off all the cruft in net_client_init(). Note, the 'channel' type requires special handling as it uses a format that QemuOpts can't parse Signed-off-by: Mark McLoughlin <markmc@redhat.com> --- net.c | 56 +++++++++++--------------------------------------------- 1 files changed, 11 insertions(+), 45 deletions(-)