@@ -198,7 +198,6 @@ extern NICInfo nd_table[MAX_NICS];
extern const char *host_net_devices[];
/* from net.c */
-int net_client_parse(QemuOptsList *opts_list, const char *str);
int net_init_clients(Error **errp);
void net_check_clients(void);
void net_cleanup(void);
@@ -1507,15 +1507,6 @@ int net_init_clients(Error **errp)
return 0;
}
-int net_client_parse(QemuOptsList *opts_list, const char *optarg)
-{
- if (!qemu_opts_parse_noisily(opts_list, optarg, true)) {
- return -1;
- }
-
- return 0;
-}
-
/* From FreeBSD */
/* XXX: optimize */
uint32_t net_crc32(const uint8_t *p, int len)
@@ -2433,7 +2433,8 @@ DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
" configure a vhost-vdpa network,Establish a vhost-vdpa netdev\n"
#endif
"-netdev hubport,id=str,hubid=n[,netdev=nd]\n"
- " configure a hub port on the hub with ID 'n'\n", QEMU_ARCH_ALL)
+ " configure a hub port on the hub with ID 'n'\n", QEMU_ARCH_ALL, \
+ parse_net_client)
DEF("nic", HAS_ARG, QEMU_OPTION_nic,
"-nic [tap|bridge|"
#ifdef CONFIG_SLIRP
@@ -2456,7 +2457,7 @@ DEF("nic", HAS_ARG, QEMU_OPTION_nic,
" macaddr) and connect it to the given host network backend\n"
"-nic none use it alone to have zero network devices (the default is to\n"
" provided a 'user' network connection)\n",
- QEMU_ARCH_ALL)
+ QEMU_ARCH_ALL, parse_net_client)
DEF("net", HAS_ARG, QEMU_OPTION_net,
"-net nic[,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
" configure or create an on-board (or machine default) NIC and\n"
@@ -2475,7 +2476,8 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
#endif
"socket][,option][,option][,...]\n"
" old way to initialize a host network interface\n"
- " (use the -netdev option if possible instead)\n", QEMU_ARCH_ALL)
+ " (use the -netdev option if possible instead)\n", QEMU_ARCH_ALL, \
+ parse_net_client)
SRST
``-nic [tap|bridge|user|l2tpv3|vde|netmap|vhost-user|socket][,...][,mac=macaddr][,model=mn]``
This option is a shortcut for configuring both the on-board
@@ -1725,6 +1725,18 @@ static int parse_linux_boot(const QEMUOption *popt, const char* optarg)
return 0;
}
+static int parse_net_client(const QEMUOption *popt, const char* optarg)
+{
+ QemuOptsList *opts;
+
+ default_net = 0;
+ opts = qemu_find_opts(popt->name);
+ if (!qemu_opts_parse_noisily(opts, optarg, true)) {
+ return -1;
+ }
+ return 0;
+}
+
static const QEMUOption qemu_options[] = {
{ "h", 0, QEMU_OPTION_h, QEMU_ARCH_ALL },
#define QEMU_OPTIONS_GENERATE_OPTIONS
@@ -3110,24 +3122,6 @@ void qemu_init(int argc, char **argv, char **envp)
case QEMU_OPTION_no_fd_bootchk:
fd_bootchk = 0;
break;
- case QEMU_OPTION_netdev:
- default_net = 0;
- if (net_client_parse(qemu_find_opts("netdev"), optarg) == -1) {
- exit(1);
- }
- break;
- case QEMU_OPTION_nic:
- default_net = 0;
- if (net_client_parse(qemu_find_opts("nic"), optarg) == -1) {
- exit(1);
- }
- break;
- case QEMU_OPTION_net:
- default_net = 0;
- if (net_client_parse(qemu_find_opts("net"), optarg) == -1) {
- exit(1);
- }
- break;
#ifdef CONFIG_LIBISCSI
case QEMU_OPTION_iscsi:
opts = qemu_opts_parse_noisily(qemu_find_opts("iscsi"),