From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=59432 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OMpSg-0000cA-Ij for qemu-devel@nongnu.org; Thu, 10 Jun 2010 17:38:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OMpSf-0004hT-Ev for qemu-devel@nongnu.org; Thu, 10 Jun 2010 17:38:54 -0400 Received: from mail-gy0-f173.google.com ([209.85.160.173]:57937) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OMpSf-0004eH-BJ for qemu-devel@nongnu.org; Thu, 10 Jun 2010 17:38:53 -0400 Received: by mail-gy0-f173.google.com with SMTP id 5so335726gyd.4 for ; Thu, 10 Jun 2010 14:38:53 -0700 (PDT) From: Miguel Di Ciurcio Filho Date: Thu, 10 Jun 2010 18:37:03 -0300 Message-Id: <1276205825-1922-7-git-send-email-miguel.filho@gmail.com> In-Reply-To: <1276205825-1922-1-git-send-email-miguel.filho@gmail.com> References: <1276205825-1922-1-git-send-email-miguel.filho@gmail.com> Subject: [Qemu-devel] [PATCH 6/8] net: socket: introduce info_dict List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com, lcapitulino@redhat.com, Miguel Di Ciurcio Filho , avi@redhat.com Signed-off-by: Miguel Di Ciurcio Filho --- net/socket.c | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/net/socket.c b/net/socket.c index 1c4e153..aad9eb8 100644 --- a/net/socket.c +++ b/net/socket.c @@ -28,6 +28,7 @@ #include "net.h" #include "qemu-char.h" #include "qemu-common.h" +#include "qjson.h" #include "qemu-error.h" #include "qemu-option.h" #include "qemu_socket.h" @@ -49,6 +50,15 @@ typedef struct NetSocketListenState { int fd; } NetSocketListenState; +static QDict *net_socket_format_info_dict(const char *host, + int service, + const char *family, + int is_server) +{ + return qobject_to_qdict(qobject_from_jsonf("{'host': %s, 'family': %s, \ + 'service': %d, 'server': %i }", host, family, service, is_server)); +} + /* XXX: we consider we can send the whole packet without blocking */ static ssize_t net_socket_receive(VLANClientState *nc, const uint8_t *buf, size_t size) { @@ -369,6 +379,9 @@ static void net_socket_accept(void *opaque) snprintf(s1->nc.info_str, sizeof(s1->nc.info_str), "socket: connection from %s:%d", inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + + s1->nc.info_dict = net_socket_format_info_dict(inet_ntoa(saddr.sin_addr), + ntohs(saddr.sin_port), "ipv4", 1); } } @@ -462,6 +475,10 @@ static int net_socket_connect_init(VLANState *vlan, snprintf(s->nc.info_str, sizeof(s->nc.info_str), "socket: connect to %s:%d", inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + + s->nc.info_dict = net_socket_format_info_dict(inet_ntoa(saddr.sin_addr), + ntohs(saddr.sin_port), "ipv4", 0); + return 0; } @@ -491,6 +508,10 @@ static int net_socket_mcast_init(VLANState *vlan, snprintf(s->nc.info_str, sizeof(s->nc.info_str), "socket: mcast=%s:%d", inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + + s->nc.info_dict = net_socket_format_info_dict(inet_ntoa(saddr.sin_addr), + ntohs(saddr.sin_port), "ipv4", 0); + return 0; } -- 1.7.1