From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn0jE-0004Zj-RW for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:51:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zn0jA-0007HR-RD for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:51:08 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53302) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn0jA-0007HB-Mc for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:51:04 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 3D44A8CF41 for ; Fri, 16 Oct 2015 08:51:04 +0000 (UTC) Received: from donizetti.redhat.com (ovpn-112-80.ams2.redhat.com [10.36.112.80]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9G8oCap010200 for ; Fri, 16 Oct 2015 04:51:03 -0400 From: Paolo Bonzini Date: Fri, 16 Oct 2015 10:49:52 +0200 Message-Id: <1444985411-17803-31-git-send-email-pbonzini@redhat.com> In-Reply-To: <1444985411-17803-1-git-send-email-pbonzini@redhat.com> References: <1444985411-17803-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 30/49] qemu-char: convert socket backend to data-driven creation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Reviewed-by: Eric Blake Signed-off-by: Paolo Bonzini --- qemu-char.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index 47db98f..4fe9545 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -4163,11 +4163,14 @@ static gboolean socket_reconnect_timeout(gpointer opaque) return false; } -static CharDriverState *qmp_chardev_open_socket(ChardevSocket *sock, +static CharDriverState *qmp_chardev_open_socket(const char *id, + ChardevBackend *backend, + ChardevReturn *ret, Error **errp) { CharDriverState *chr; TCPCharDriver *s; + ChardevSocket *sock = backend->socket; SocketAddress *addr = sock->addr; bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; bool is_listen = sock->has_server ? sock->server : true; @@ -4285,7 +4288,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, abort(); break; case CHARDEV_BACKEND_KIND_SOCKET: - chr = qmp_chardev_open_socket(backend->socket, &local_err); + abort(); break; case CHARDEV_BACKEND_KIND_UDP: chr = qmp_chardev_open_udp(backend->udp, &local_err); @@ -4401,7 +4404,7 @@ static void register_types(void) register_char_driver("null", CHARDEV_BACKEND_KIND_NULL, NULL, NULL); register_char_driver("socket", CHARDEV_BACKEND_KIND_SOCKET, - qemu_chr_parse_socket, NULL); + qemu_chr_parse_socket, qmp_chardev_open_socket); register_char_driver("udp", CHARDEV_BACKEND_KIND_UDP, qemu_chr_parse_udp, NULL); register_char_driver("ringbuf", CHARDEV_BACKEND_KIND_RINGBUF, -- 2.5.0