diff mbox

[v4,05/10] net: tap/tap-win32: introduce info_dict

Message ID 1274202469-9332-6-git-send-email-miguel.filho@gmail.com
State New
Headers show

Commit Message

Miguel Di Ciurcio Filho May 18, 2010, 5:07 p.m. UTC
Signed-off-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com>
---
 net/tap-win32.c |    9 ++++++++-
 net/tap.c       |   18 +++++++++++++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

Comments

Luiz Capitulino May 27, 2010, 5:50 p.m. UTC | #1
On Tue, 18 May 2010 14:07:44 -0300
Miguel Di Ciurcio Filho <miguel.filho@gmail.com> wrote:

> Signed-off-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com>
> ---
>  net/tap-win32.c |    9 ++++++++-
>  net/tap.c       |   18 +++++++++++++++++-
>  2 files changed, 25 insertions(+), 2 deletions(-)
> 
> diff --git a/net/tap-win32.c b/net/tap-win32.c
> index 74348da..54c6725 100644
> --- a/net/tap-win32.c
> +++ b/net/tap-win32.c
> @@ -32,6 +32,8 @@
>  #include "net.h"
>  #include "sysemu.h"
>  #include "qemu-error.h"
> +#include "qdict.h"
> +#include "qstring.h"
>  #include <stdio.h>
>  #include <windows.h>
>  #include <winioctl.h>
> @@ -691,7 +693,12 @@ static int tap_win32_init(VLANState *vlan, const char *model,
>      s = DO_UPCAST(TAPState, nc, nc);
>  
>      snprintf(s->nc.info_str, sizeof(s->nc.info_str),
> -             "tap: ifname=%s", ifname);
> +                "tap: ifname=%s", ifname);

 Did you change this by accident?

> +
> +    nc->info_dict = qdict_new()
> +
> +    qdict_put(nc->info_dict, "ifname", qstring_from_str(ifname));
> +    qdict_put(nc->info_dict, "model", qstring_from_str("tap"));

 So, this is the kind of thing that deserves attention when documenting,
we need to make it clear in the doc what's each format we support, ie.
xen, tap, vde, dump, slirp and socket.

>  
>      s->handle = handle;
>  
> diff --git a/net/tap.c b/net/tap.c
> index 0147dab..d71f312 100644
> --- a/net/tap.c
> +++ b/net/tap.c
> @@ -39,6 +39,9 @@
>  #include "qemu-char.h"
>  #include "qemu-common.h"
>  #include "qemu-error.h"
> +#include "qjson.h"
> +#include "qdict.h"
> +#include "qint.h"
>  
>  #include "net/tap-linux.h"
>  
> @@ -448,17 +451,30 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan
>  
>      if (qemu_opt_get(opts, "fd")) {
>          snprintf(s->nc.info_str, sizeof(s->nc.info_str), "fd=%d", fd);
> +        assert(s->nc.info_dict == NULL);
> +
> +        s->nc.info_dict = qdict_new();
> +        qdict_put(s->nc.info_dict, "fd", qint_from_int(fd));
> +
>      } else {
>          const char *ifname, *script, *downscript;
> +        QObject *obj;
>  
>          ifname     = qemu_opt_get(opts, "ifname");
>          script     = qemu_opt_get(opts, "script");
>          downscript = qemu_opt_get(opts, "downscript");
>  
>          snprintf(s->nc.info_str, sizeof(s->nc.info_str),
> -                 "ifname=%s,script=%s,downscript=%s",
> +                "ifname=%s,script=%s,downscript=%s",

 Another accidental change, I think.

>                   ifname, script, downscript);
>  
> +        obj = qobject_from_jsonf("{ 'model': 'tap', 'ifname': %s, \
> +            'script': %s,'downscript': %s }",
> +            ifname, script, downscript);
> +
> +        assert(s->nc.info_dict == NULL);
> +        s->nc.info_dict = qobject_to_qdict(obj);
> +
>          if (strcmp(downscript, "no") != 0) {
>              snprintf(s->down_script, sizeof(s->down_script), "%s", downscript);
>              snprintf(s->down_script_arg, sizeof(s->down_script_arg), "%s", ifname);
diff mbox

Patch

diff --git a/net/tap-win32.c b/net/tap-win32.c
index 74348da..54c6725 100644
--- a/net/tap-win32.c
+++ b/net/tap-win32.c
@@ -32,6 +32,8 @@ 
 #include "net.h"
 #include "sysemu.h"
 #include "qemu-error.h"
+#include "qdict.h"
+#include "qstring.h"
 #include <stdio.h>
 #include <windows.h>
 #include <winioctl.h>
@@ -691,7 +693,12 @@  static int tap_win32_init(VLANState *vlan, const char *model,
     s = DO_UPCAST(TAPState, nc, nc);
 
     snprintf(s->nc.info_str, sizeof(s->nc.info_str),
-             "tap: ifname=%s", ifname);
+                "tap: ifname=%s", ifname);
+
+    nc->info_dict = qdict_new()
+
+    qdict_put(nc->info_dict, "ifname", qstring_from_str(ifname));
+    qdict_put(nc->info_dict, "model", qstring_from_str("tap"));
 
     s->handle = handle;
 
diff --git a/net/tap.c b/net/tap.c
index 0147dab..d71f312 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -39,6 +39,9 @@ 
 #include "qemu-char.h"
 #include "qemu-common.h"
 #include "qemu-error.h"
+#include "qjson.h"
+#include "qdict.h"
+#include "qint.h"
 
 #include "net/tap-linux.h"
 
@@ -448,17 +451,30 @@  int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan
 
     if (qemu_opt_get(opts, "fd")) {
         snprintf(s->nc.info_str, sizeof(s->nc.info_str), "fd=%d", fd);
+        assert(s->nc.info_dict == NULL);
+
+        s->nc.info_dict = qdict_new();
+        qdict_put(s->nc.info_dict, "fd", qint_from_int(fd));
+
     } else {
         const char *ifname, *script, *downscript;
+        QObject *obj;
 
         ifname     = qemu_opt_get(opts, "ifname");
         script     = qemu_opt_get(opts, "script");
         downscript = qemu_opt_get(opts, "downscript");
 
         snprintf(s->nc.info_str, sizeof(s->nc.info_str),
-                 "ifname=%s,script=%s,downscript=%s",
+                "ifname=%s,script=%s,downscript=%s",
                  ifname, script, downscript);
 
+        obj = qobject_from_jsonf("{ 'model': 'tap', 'ifname': %s, \
+            'script': %s,'downscript': %s }",
+            ifname, script, downscript);
+
+        assert(s->nc.info_dict == NULL);
+        s->nc.info_dict = qobject_to_qdict(obj);
+
         if (strcmp(downscript, "no") != 0) {
             snprintf(s->down_script, sizeof(s->down_script), "%s", downscript);
             snprintf(s->down_script_arg, sizeof(s->down_script_arg), "%s", ifname);