[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 18/24] Port -net vde to QemuOpts
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] [PATCH 18/24] Port -net vde to QemuOpts |
Date: |
Wed, 23 Sep 2009 11:24:17 +0100 |
The net_vde_init() change is needed because we now pass NULL pointers
instead of empty strings for group/sock if they're not set.
Signed-off-by: Mark McLoughlin <address@hidden>
---
net.c | 94 ++++++++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 58 insertions(+), 36 deletions(-)
diff --git a/net.c b/net.c
index f2bc9f8..e439b59 100644
--- a/net.c
+++ b/net.c
@@ -1744,8 +1744,8 @@ static int net_vde_init(VLANState *vlan, const char
*model,
int port, const char *group, int mode)
{
VDEState *s;
- char *init_group = strlen(group) ? (char *)group : NULL;
- char *init_sock = strlen(sock) ? (char *)sock : NULL;
+ char *init_group = (char *)group;
+ char *init_sock = (char *)sock;
struct vde_open_args args = {
.port = port,
@@ -2712,6 +2712,34 @@ static int net_init_socket(QemuOpts *opts, Monitor *mon)
return 0;
}
+#ifdef CONFIG_VDE
+static int net_init_vde(QemuOpts *opts, Monitor *mon)
+{
+ VLANState *vlan;
+ const char *name;
+ const char *sock;
+ const char *group;
+ int port, mode;
+
+ vlan = qemu_find_vlan(qemu_opt_get_number(opts, "vlan", 0), 1);
+
+ name = qemu_opt_get(opts, "name");
+ sock = qemu_opt_get(opts, "sock");
+ group = qemu_opt_get(opts, "group");
+
+ port = qemu_opt_get_number(opts, "port", 0);
+ mode = qemu_opt_get_number(opts, "mode", 0700);
+
+ if (net_vde_init(vlan, "vde", name, sock, port, group, mode) == -1) {
+ return -1;
+ }
+
+ vlan->nb_host_devs++;
+
+ return 0;
+}
+#endif
+
#define NET_COMMON_PARAMS_DESC \
{ \
.name = "type", \
@@ -2898,6 +2926,32 @@ static struct {
},
{ /* end of list */ }
},
+#ifdef CONFIG_VDE
+ }, {
+ .type = "vde",
+ .init = net_init_vde,
+ .desc = {
+ NET_COMMON_PARAMS_DESC,
+ {
+ .name = "sock",
+ .type = QEMU_OPT_STRING,
+ .help = "socket path",
+ }, {
+ .name = "port",
+ .type = QEMU_OPT_NUMBER,
+ .help = "port number",
+ }, {
+ .name = "group",
+ .type = QEMU_OPT_STRING,
+ .help = "group owner of socket",
+ }, {
+ .name = "mode",
+ .type = QEMU_OPT_NUMBER,
+ .help = "permissions for socket",
+ },
+ { /* end of list */ }
+ },
+#endif
},
{ /* end of list */ }
};
@@ -2942,7 +2996,8 @@ int net_client_init(Monitor *mon, const char *device,
const char *p)
!strcmp(device, "nic") ||
!strcmp(device, "user") ||
!strcmp(device, "tap") ||
- !strcmp(device, "socket")) {
+ !strcmp(device, "socket") ||
+ !strcmp(device, "vde")) {
QemuOpts *opts;
opts = qemu_opts_parse(&qemu_net_opts, p, NULL);
@@ -2981,39 +3036,6 @@ int net_client_init(Monitor *mon, const char *device,
const char *p)
ret = 0;
} else
#endif
-#ifdef CONFIG_VDE
- if (!strcmp(device, "vde")) {
- static const char * const vde_params[] = {
- "vlan", "name", "sock", "port", "group", "mode", NULL
- };
- char vde_sock[1024], vde_group[512];
- int vde_port, vde_mode;
-
- if (check_params(buf, sizeof(buf), vde_params, p) < 0) {
- config_error(mon, "invalid parameter '%s' in '%s'\n", buf, p);
- ret = -1;
- goto out;
- }
- vlan->nb_host_devs++;
- if (get_param_value(vde_sock, sizeof(vde_sock), "sock", p) <= 0) {
- vde_sock[0] = '\0';
- }
- if (get_param_value(buf, sizeof(buf), "port", p) > 0) {
- vde_port = strtol(buf, NULL, 10);
- } else {
- vde_port = 0;
- }
- if (get_param_value(vde_group, sizeof(vde_group), "group", p) <= 0) {
- vde_group[0] = '\0';
- }
- if (get_param_value(buf, sizeof(buf), "mode", p) > 0) {
- vde_mode = strtol(buf, NULL, 8);
- } else {
- vde_mode = 0700;
- }
- ret = net_vde_init(vlan, device, name, vde_sock, vde_port, vde_group,
vde_mode);
- } else
-#endif
if (!strcmp(device, "dump")) {
int len = 65536;
--
1.6.2.5
- [Qemu-devel] [PATCH 22/24] Port usb net to QemuOpts, (continued)
- [Qemu-devel] [PATCH 22/24] Port usb net to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 05/24] Use qemu_strdup() for VLANClientState string fields, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 17/24] Port -net socket to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 15/24] Port -net user to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 07/24] Remove bogus error message from qemu_opts_set(), Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 16/24] Port -net tap to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 21/24] Port host_net_add monitor command to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 14/24] Port -net none and -net nic to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 24/24] Final net cleanup after conversion to QemuOpts, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 18/24] Port -net vde to QemuOpts,
Mark McLoughlin <=
- [Qemu-devel] [PATCH 12/24] Never overwrite a QemuOpt, Mark McLoughlin, 2009/09/23
- [Qemu-devel] [PATCH 19/24] Port -net dump to QemuOpts, Mark McLoughlin, 2009/09/23
- Re: [Qemu-devel] [PATCH 00/19 v2] Port -net to QemuOpts, Mark McLoughlin, 2009/09/23