Message ID | 1270757799-31891-20-git-send-email-miguel.filho@gmail.com |
---|---|
State | New |
Headers | show |
On Thu, 8 Apr 2010 17:16:36 -0300 Miguel Di Ciurcio Filho <miguel.filho@gmail.com> wrote: > Signed-off-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com> > --- > net/socket.c | 47 ++++++++++++++++++++++++++++++++++------------- > 1 files changed, 34 insertions(+), 13 deletions(-) > > diff --git a/net/socket.c b/net/socket.c > index 1c4e153..3521e21 100644 > --- a/net/socket.c > +++ b/net/socket.c > @@ -28,6 +28,10 @@ > #include "net.h" > #include "qemu-char.h" > #include "qemu-common.h" > +#include "qdict.h" > +#include "qstring.h" > +#include "qbool.h" > +#include "qint.h" > #include "qemu-error.h" > #include "qemu-option.h" > #include "qemu_socket.h" > @@ -266,11 +270,16 @@ static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, > } > > nc = qemu_new_net_client(&net_dgram_socket_info, vlan, NULL, model, name); > - > - snprintf(nc->info_str, sizeof(nc->info_str), > - "socket: fd=%d (%s mcast=%s:%d)", > - fd, is_connected ? "cloned" : "", > - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); > + > + nc->info_dict = qdict_new(); > + qdict_put(nc->info_dict, "fd", qint_from_int(fd)); > + > + char mcast_addr[22]; > + snprintf(mcast_addr, strlen(mcast_addr), "%s:%d", > + inet_ntoa(saddr.sin_addr), > + ntohs(saddr.sin_port)); > + qdict_put(nc->info_dict, "mcast", qstring_from_str(mcast_addr)); We should break 'mcast', otherwise QMP clients will have to parse it. Maybe you can make vnc.c::put_addr_qdict() public and use it (with a better name). Note that this is also valid for 'connection_from' and all the others.. > + qdict_put(nc->info_dict, "cloned", qbool_from_int(is_connected)); > > s = DO_UPCAST(NetSocketState, nc, nc); > > @@ -306,8 +315,9 @@ static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, > NetSocketState *s; > > nc = qemu_new_net_client(&net_socket_info, vlan, NULL, model, name); > + nc->info_dict = qdict_new(); > > - snprintf(nc->info_str, sizeof(nc->info_str), "socket: fd=%d", fd); > + qdict_put(nc->info_dict, "fd", qint_from_int(fd)); > > s = DO_UPCAST(NetSocketState, nc, nc); > > @@ -366,9 +376,12 @@ static void net_socket_accept(void *opaque) > if (!s1) { > closesocket(fd); > } else { > - snprintf(s1->nc.info_str, sizeof(s1->nc.info_str), > - "socket: connection from %s:%d", > + char connection_from[22]; > + s1->nc.info_dict = qdict_new(); > + > + snprintf(connection_from, strlen(connection_from), "%s:%d", > inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); > + qdict_put(s1->nc.info_dict, "connection_from", qstring_from_str(connection_from)); > } > } > > @@ -459,9 +472,13 @@ static int net_socket_connect_init(VLANState *vlan, > s = net_socket_fd_init(vlan, model, name, fd, connected); > if (!s) > return -1; > - snprintf(s->nc.info_str, sizeof(s->nc.info_str), > - "socket: connect to %s:%d", > + > + char connect_to[22]; > + s->nc.info_dict = qdict_new(); > + > + snprintf(connect_to, strlen(connect_to), "%s:%d", > inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); > + qdict_put(s->nc.info_dict, "connect_to", qstring_from_str(connect_to)); > return 0; > } > > @@ -487,10 +504,14 @@ static int net_socket_mcast_init(VLANState *vlan, > return -1; > > s->dgram_dst = saddr; > + > + s->nc.info_dict = qdict_new(); > + char mcast_addr[22]; > + snprintf(mcast_addr, strlen(mcast_addr), "%s:%d", > + inet_ntoa(saddr.sin_addr), > + ntohs(saddr.sin_port)); > + qdict_put(s->nc.info_dict, "mcast", qstring_from_str(mcast_addr)); > > - snprintf(s->nc.info_str, sizeof(s->nc.info_str), > - "socket: mcast=%s:%d", > - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); > return 0; > > }
diff --git a/net/socket.c b/net/socket.c index 1c4e153..3521e21 100644 --- a/net/socket.c +++ b/net/socket.c @@ -28,6 +28,10 @@ #include "net.h" #include "qemu-char.h" #include "qemu-common.h" +#include "qdict.h" +#include "qstring.h" +#include "qbool.h" +#include "qint.h" #include "qemu-error.h" #include "qemu-option.h" #include "qemu_socket.h" @@ -266,11 +270,16 @@ static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, } nc = qemu_new_net_client(&net_dgram_socket_info, vlan, NULL, model, name); - - snprintf(nc->info_str, sizeof(nc->info_str), - "socket: fd=%d (%s mcast=%s:%d)", - fd, is_connected ? "cloned" : "", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + + nc->info_dict = qdict_new(); + qdict_put(nc->info_dict, "fd", qint_from_int(fd)); + + char mcast_addr[22]; + snprintf(mcast_addr, strlen(mcast_addr), "%s:%d", + inet_ntoa(saddr.sin_addr), + ntohs(saddr.sin_port)); + qdict_put(nc->info_dict, "mcast", qstring_from_str(mcast_addr)); + qdict_put(nc->info_dict, "cloned", qbool_from_int(is_connected)); s = DO_UPCAST(NetSocketState, nc, nc); @@ -306,8 +315,9 @@ static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, NetSocketState *s; nc = qemu_new_net_client(&net_socket_info, vlan, NULL, model, name); + nc->info_dict = qdict_new(); - snprintf(nc->info_str, sizeof(nc->info_str), "socket: fd=%d", fd); + qdict_put(nc->info_dict, "fd", qint_from_int(fd)); s = DO_UPCAST(NetSocketState, nc, nc); @@ -366,9 +376,12 @@ static void net_socket_accept(void *opaque) if (!s1) { closesocket(fd); } else { - snprintf(s1->nc.info_str, sizeof(s1->nc.info_str), - "socket: connection from %s:%d", + char connection_from[22]; + s1->nc.info_dict = qdict_new(); + + snprintf(connection_from, strlen(connection_from), "%s:%d", inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + qdict_put(s1->nc.info_dict, "connection_from", qstring_from_str(connection_from)); } } @@ -459,9 +472,13 @@ static int net_socket_connect_init(VLANState *vlan, s = net_socket_fd_init(vlan, model, name, fd, connected); if (!s) return -1; - snprintf(s->nc.info_str, sizeof(s->nc.info_str), - "socket: connect to %s:%d", + + char connect_to[22]; + s->nc.info_dict = qdict_new(); + + snprintf(connect_to, strlen(connect_to), "%s:%d", inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + qdict_put(s->nc.info_dict, "connect_to", qstring_from_str(connect_to)); return 0; } @@ -487,10 +504,14 @@ static int net_socket_mcast_init(VLANState *vlan, return -1; s->dgram_dst = saddr; + + s->nc.info_dict = qdict_new(); + char mcast_addr[22]; + snprintf(mcast_addr, strlen(mcast_addr), "%s:%d", + inet_ntoa(saddr.sin_addr), + ntohs(saddr.sin_port)); + qdict_put(s->nc.info_dict, "mcast", qstring_from_str(mcast_addr)); - snprintf(s->nc.info_str, sizeof(s->nc.info_str), - "socket: mcast=%s:%d", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); return 0; }
Signed-off-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com> --- net/socket.c | 47 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 34 insertions(+), 13 deletions(-)