@@ -3231,11 +3231,12 @@ int net_init_clients(void)
return 0;
}
-int net_client_parse(const char *optarg)
+int net_client_parse(QemuOptsList *opts_list, const char *optarg)
{
#if defined(CONFIG_SLIRP)
/* handle legacy -net channel,port:chr */
- if (!strncmp(optarg, "channel,", strlen("channel,"))) {
+ if (!strcmp(opts_list->name, "net") &&
+ !strncmp(optarg, "channel,", strlen("channel,"))) {
int ret;
optarg += strlen("channel,");
@@ -3256,7 +3257,7 @@ int net_client_parse(const char *optarg)
return ret;
}
#endif
- if (!qemu_opts_parse(&qemu_net_opts, optarg, "type")) {
+ if (!qemu_opts_parse(opts_list, optarg, "type")) {
return -1;
}
@@ -136,7 +136,7 @@ extern const char *legacy_bootp_filename;
int net_client_init(Monitor *mon, QemuOpts *opts);
void net_client_uninit(NICInfo *nd);
-int net_client_parse(const char *str);
+int net_client_parse(QemuOptsList *opts_list, const char *str);
int net_init_clients(void);
int net_slirp_smb(const char *exported_dir);
void net_slirp_hostfwd_add(Monitor *mon, const QDict *qdict);
@@ -5088,7 +5088,7 @@ int main(int argc, char **argv, char **envp)
break;
#endif
case QEMU_OPTION_net:
- if (net_client_parse(optarg) == -1) {
+ if (net_client_parse(&qemu_net_opts, optarg) == -1) {
exit(1);
}
break;
Signed-off-by: Mark McLoughlin <markmc@redhat.com> --- net.c | 7 ++++--- net.h | 2 +- vl.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-)