From nobody Sat May 18 08:46:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566298244; cv=none; d=zoho.com; s=zohoarc; b=hojrTeK2Y403qXHgGzxpNDFQndySORP6qMtNS/qPz1po+yp/0tnZBrKu/d8GlL67bTlLdY7D0hYah6sD7jzB+Nk7Jdmn3jRMnKFGeJX9NPxH6qTdS/0MMmUU9IfnVbMU7/icCZ4oM0hng79jX7jPXq4dxyRFgQ8L31Kgt6mjzGI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566298244; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=MRKEuuUpHI+EOZdYyg3U4U8eYv814ahTo3kVea2wPig=; b=iVaf+vKKU3nhrN21mSkl28S1IT+f+dKmWjIPEml4AmxGKIguCZf+5ccT0UFPmBj5M3Hh76eByxy6uzA8c6a4fbeOm5ZFYVKkANG6mt5qw8ADmfKvM835/B465Pks3fIEl2M1ESmkTLkSNrxwQmRBU9kJiFjk9c6c/X0ksentb5s= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1566298244022339.19122915837875; Tue, 20 Aug 2019 03:50:44 -0700 (PDT) Received: from localhost ([::1]:35948 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01in-0007Xu-J0 for importer@patchew.org; Tue, 20 Aug 2019 06:50:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48722) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01hB-0005t8-IU for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:48:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i01h9-0004au-Q2 for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:48:57 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43528) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i01h6-0004XF-BL; Tue, 20 Aug 2019 06:48:52 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 95C4E881341; Tue, 20 Aug 2019 10:48:51 +0000 (UTC) Received: from secure.mitica (unknown [10.36.118.42]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9EDD15D9CD; Tue, 20 Aug 2019 10:48:47 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Tue, 20 Aug 2019 12:48:32 +0200 Message-Id: <20190820104836.3093-2-quintela@redhat.com> In-Reply-To: <20190820104836.3093-1-quintela@redhat.com> References: <20190820104836.3093-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.69]); Tue, 20 Aug 2019 10:48:51 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v3 1/5] socket: Add backlog parameter to socket_listen X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , Michael Roth , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Max Reitz , Stefan Berger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Current parameter was always one. We continue with that value for now in all callers. Signed-off-by: Juan Quintela Reviewed-by: Daniel P. Berrang=C3=A9 --- Moved trace to socket_listen --- include/qemu/sockets.h | 2 +- io/channel-socket.c | 2 +- qga/channel-posix.c | 2 +- tests/test-util-sockets.c | 12 ++++++------ util/qemu-sockets.c | 33 ++++++++++++++++++++++----------- util/trace-events | 3 +++ 6 files changed, 34 insertions(+), 20 deletions(-) diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h index 8140fea685..57cd049d6e 100644 --- a/include/qemu/sockets.h +++ b/include/qemu/sockets.h @@ -41,7 +41,7 @@ int unix_connect(const char *path, Error **errp); =20 SocketAddress *socket_parse(const char *str, Error **errp); int socket_connect(SocketAddress *addr, Error **errp); -int socket_listen(SocketAddress *addr, Error **errp); +int socket_listen(SocketAddress *addr, int num, Error **errp); void socket_listen_cleanup(int fd, Error **errp); int socket_dgram(SocketAddress *remote, SocketAddress *local, Error **errp= ); =20 diff --git a/io/channel-socket.c b/io/channel-socket.c index bec3d931d1..a533c8bc11 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -202,7 +202,7 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *io= c, int fd; =20 trace_qio_channel_socket_listen_sync(ioc, addr); - fd =3D socket_listen(addr, errp); + fd =3D socket_listen(addr, 1, errp); if (fd < 0) { trace_qio_channel_socket_listen_fail(ioc); return -1; diff --git a/qga/channel-posix.c b/qga/channel-posix.c index 5a925a9818..8fc205ad21 100644 --- a/qga/channel-posix.c +++ b/qga/channel-posix.c @@ -215,7 +215,7 @@ static gboolean ga_channel_open(GAChannel *c, const gch= ar *path, return false; } =20 - fd =3D socket_listen(addr, &local_err); + fd =3D socket_listen(addr, 1, &local_err); qapi_free_SocketAddress(addr); if (local_err !=3D NULL) { g_critical("%s", error_get_pretty(local_err)); diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index f1ebffee5a..c8e1893c11 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -93,7 +93,7 @@ static void test_socket_fd_pass_name_good(void) g_assert_cmpint(fd, !=3D, mon_fd); close(fd); =20 - fd =3D socket_listen(&addr, &error_abort); + fd =3D socket_listen(&addr, 1, &error_abort); g_assert_cmpint(fd, !=3D, -1); g_assert_cmpint(fd, !=3D, mon_fd); close(fd); @@ -124,7 +124,7 @@ static void test_socket_fd_pass_name_bad(void) g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 - fd =3D socket_listen(&addr, &err); + fd =3D socket_listen(&addr, 1, &err); g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 @@ -151,7 +151,7 @@ static void test_socket_fd_pass_name_nomon(void) g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 - fd =3D socket_listen(&addr, &err); + fd =3D socket_listen(&addr, 1, &err); g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 @@ -174,7 +174,7 @@ static void test_socket_fd_pass_num_good(void) fd =3D socket_connect(&addr, &error_abort); g_assert_cmpint(fd, =3D=3D, sfd); =20 - fd =3D socket_listen(&addr, &error_abort); + fd =3D socket_listen(&addr, 1, &error_abort); g_assert_cmpint(fd, =3D=3D, sfd); =20 g_free(addr.u.fd.str); @@ -197,7 +197,7 @@ static void test_socket_fd_pass_num_bad(void) g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 - fd =3D socket_listen(&addr, &err); + fd =3D socket_listen(&addr, 1, &err); g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 @@ -220,7 +220,7 @@ static void test_socket_fd_pass_num_nocli(void) g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 - fd =3D socket_listen(&addr, &err); + fd =3D socket_listen(&addr, 1, &err); g_assert_cmpint(fd, =3D=3D, -1); error_free_or_abort(&err); =20 diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index e3a1666578..98ff3a1cce 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -31,6 +31,7 @@ #include "qapi/qobject-input-visitor.h" #include "qapi/qobject-output-visitor.h" #include "qemu/cutils.h" +#include "trace.h" =20 #ifndef AI_ADDRCONFIG # define AI_ADDRCONFIG 0 @@ -207,6 +208,7 @@ static int try_bind(int socket, InetSocketAddress *sadd= r, struct addrinfo *e) =20 static int inet_listen_saddr(InetSocketAddress *saddr, int port_offset, + int num, Error **errp) { struct addrinfo ai,*res,*e; @@ -309,7 +311,7 @@ static int inet_listen_saddr(InetSocketAddress *saddr, goto listen_failed; } } else { - if (!listen(slisten, 1)) { + if (!listen(slisten, num)) { goto listen_ok; } if (errno !=3D EADDRINUSE) { @@ -774,6 +776,7 @@ static int vsock_connect_saddr(VsockSocketAddress *vadd= r, Error **errp) } =20 static int vsock_listen_saddr(VsockSocketAddress *vaddr, + int num, Error **errp) { struct sockaddr_vm svm; @@ -795,7 +798,7 @@ static int vsock_listen_saddr(VsockSocketAddress *vaddr, return -1; } =20 - if (listen(slisten, 1) !=3D 0) { + if (listen(slisten, num) !=3D 0) { error_setg_errno(errp, errno, "Failed to listen on socket"); closesocket(slisten); return -1; @@ -836,6 +839,7 @@ static int vsock_connect_saddr(VsockSocketAddress *vadd= r, Error **errp) } =20 static int vsock_listen_saddr(VsockSocketAddress *vaddr, + int num, Error **errp) { vsock_unsupported(errp); @@ -853,6 +857,7 @@ static int vsock_parse(VsockSocketAddress *addr, const = char *str, #ifndef _WIN32 =20 static int unix_listen_saddr(UnixSocketAddress *saddr, + int num, Error **errp) { struct sockaddr_un un; @@ -914,7 +919,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, error_setg_errno(errp, errno, "Failed to bind socket to %s", path); goto err; } - if (listen(sock, 1) < 0) { + if (listen(sock, num) < 0) { error_setg_errno(errp, errno, "Failed to listen on socket"); goto err; } @@ -981,6 +986,7 @@ static int unix_connect_saddr(UnixSocketAddress *saddr,= Error **errp) #else =20 static int unix_listen_saddr(UnixSocketAddress *saddr, + int num, Error **errp) { error_setg(errp, "unix sockets are not available on windows"); @@ -1004,7 +1010,7 @@ int unix_listen(const char *str, Error **errp) =20 saddr =3D g_new0(UnixSocketAddress, 1); saddr->path =3D g_strdup(str); - sock =3D unix_listen_saddr(saddr, errp); + sock =3D unix_listen_saddr(saddr, 1, errp); qapi_free_UnixSocketAddress(saddr); return sock; } @@ -1061,9 +1067,13 @@ fail: return NULL; } =20 -static int socket_get_fd(const char *fdstr, Error **errp) +static int socket_get_fd(const char *fdstr, int num, Error **errp) { int fd; + if (num !=3D 1) { + error_setg_errno(errp, EINVAL, "socket_get_fd: too many connection= s"); + return -1; + } if (cur_mon) { fd =3D monitor_get_fd(cur_mon, fdstr, errp); if (fd < 0) { @@ -1099,7 +1109,7 @@ int socket_connect(SocketAddress *addr, Error **errp) break; =20 case SOCKET_ADDRESS_TYPE_FD: - fd =3D socket_get_fd(addr->u.fd.str, errp); + fd =3D socket_get_fd(addr->u.fd.str, 1, errp); break; =20 case SOCKET_ADDRESS_TYPE_VSOCK: @@ -1112,25 +1122,26 @@ int socket_connect(SocketAddress *addr, Error **err= p) return fd; } =20 -int socket_listen(SocketAddress *addr, Error **errp) +int socket_listen(SocketAddress *addr, int num, Error **errp) { int fd; =20 + trace_socket_listen(num); switch (addr->type) { case SOCKET_ADDRESS_TYPE_INET: - fd =3D inet_listen_saddr(&addr->u.inet, 0, errp); + fd =3D inet_listen_saddr(&addr->u.inet, 0, num, errp); break; =20 case SOCKET_ADDRESS_TYPE_UNIX: - fd =3D unix_listen_saddr(&addr->u.q_unix, errp); + fd =3D unix_listen_saddr(&addr->u.q_unix, num, errp); break; =20 case SOCKET_ADDRESS_TYPE_FD: - fd =3D socket_get_fd(addr->u.fd.str, errp); + fd =3D socket_get_fd(addr->u.fd.str, num, errp); break; =20 case SOCKET_ADDRESS_TYPE_VSOCK: - fd =3D vsock_listen_saddr(&addr->u.vsock, errp); + fd =3D vsock_listen_saddr(&addr->u.vsock, num, errp); break; =20 default: diff --git a/util/trace-events b/util/trace-events index 9dbd237dad..83b6639018 100644 --- a/util/trace-events +++ b/util/trace-events @@ -64,6 +64,9 @@ lockcnt_futex_wait(const void *lockcnt, int val) "lockcnt= %p waiting on %d" lockcnt_futex_wait_resume(const void *lockcnt, int new) "lockcnt %p after = wait: %d" lockcnt_futex_wake(const void *lockcnt) "lockcnt %p waking up one waiter" =20 +# qemu-sockets.c +socket_listen(int num) "backlog: %d" + # qemu-thread-common.h qemu_mutex_lock(void *mutex, const char *file, const int line) "waiting on= mutex %p (%s:%d)" qemu_mutex_locked(void *mutex, const char *file, const int line) "taken mu= tex %p (%s:%d)" --=20 2.21.0 From nobody Sat May 18 08:46:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566298241; cv=none; d=zoho.com; s=zohoarc; b=VFVgVqh81gy+WAp0Wa7CZeAqfEpwJixswUM7U52HCANbPdkjQklLvIXmUDByEgx9VxONUjyBz40Wlpr05m+U0j2mi3j7glhi5HodcaZTqUXURpv+5A30us33lguEqnnK02hcLzkgvKu1yFZ49QOzxC8mlDAw4qSvNONZt3rB7k4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566298241; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=WtIoIp8b4F1Ed5kWvqVZqQAWG0eQ4VNVK+cNLeOwgT0=; b=TYoMQIrusBoZWYPnRCEMM0M2awmAhzXxud6XQqDTxFCkwEbvva6U42zTpmXsVjo4joFD3P6tB+2F5i8b/ENxRMNbTEOm5Exf3eWPJSF8pEbwmNYAw/qkdvIplN6EU128H7HC669VFw54IE29C1wIk/VmJxCLffXDGn2tj+hZEIQ= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1566298241515432.85402854860956; Tue, 20 Aug 2019 03:50:41 -0700 (PDT) Received: from localhost ([::1]:35950 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01iq-0007hg-75 for importer@patchew.org; Tue, 20 Aug 2019 06:50:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48743) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01hF-00060g-EY for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i01hC-0004fp-QV for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37282) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i01h9-0004aN-Lv; Tue, 20 Aug 2019 06:48:55 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EC036300BCE9; Tue, 20 Aug 2019 10:48:54 +0000 (UTC) Received: from secure.mitica (unknown [10.36.118.42]) by smtp.corp.redhat.com (Postfix) with ESMTP id E92CA5D9CD; Tue, 20 Aug 2019 10:48:51 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Tue, 20 Aug 2019 12:48:33 +0200 Message-Id: <20190820104836.3093-3-quintela@redhat.com> In-Reply-To: <20190820104836.3093-1-quintela@redhat.com> References: <20190820104836.3093-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Tue, 20 Aug 2019 10:48:55 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v3 2/5] socket: Add num connections to qio_channel_socket_sync() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , Michael Roth , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Max Reitz , Stefan Berger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Juan Quintela --- include/io/channel-socket.h | 2 ++ io/channel-socket.c | 7 ++++--- io/net-listener.c | 2 +- io/trace-events | 2 +- scsi/qemu-pr-helper.c | 3 ++- tests/test-char.c | 4 ++-- tests/test-io-channel-socket.c | 2 +- tests/tpm-emu.c | 2 +- 8 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/io/channel-socket.h b/include/io/channel-socket.h index d7134d2cd6..ed88e5b8c1 100644 --- a/include/io/channel-socket.h +++ b/include/io/channel-socket.h @@ -123,6 +123,7 @@ void qio_channel_socket_connect_async(QIOChannelSocket = *ioc, * qio_channel_socket_listen_sync: * @ioc: the socket channel object * @addr: the address to listen to + * @num: the expected ammount of connections * @errp: pointer to a NULL-initialized error object * * Attempt to listen to the address @addr. This method @@ -132,6 +133,7 @@ void qio_channel_socket_connect_async(QIOChannelSocket = *ioc, */ int qio_channel_socket_listen_sync(QIOChannelSocket *ioc, SocketAddress *addr, + int num, Error **errp); =20 /** diff --git a/io/channel-socket.c b/io/channel-socket.c index a533c8bc11..6258c25983 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -197,12 +197,13 @@ void qio_channel_socket_connect_async(QIOChannelSocke= t *ioc, =20 int qio_channel_socket_listen_sync(QIOChannelSocket *ioc, SocketAddress *addr, + int num, Error **errp) { int fd; =20 - trace_qio_channel_socket_listen_sync(ioc, addr); - fd =3D socket_listen(addr, 1, errp); + trace_qio_channel_socket_listen_sync(ioc, addr, num); + fd =3D socket_listen(addr, num, errp); if (fd < 0) { trace_qio_channel_socket_listen_fail(ioc); return -1; @@ -226,7 +227,7 @@ static void qio_channel_socket_listen_worker(QIOTask *t= ask, SocketAddress *addr =3D opaque; Error *err =3D NULL; =20 - qio_channel_socket_listen_sync(ioc, addr, &err); + qio_channel_socket_listen_sync(ioc, addr, 1, &err); =20 qio_task_set_error(task, err); } diff --git a/io/net-listener.c b/io/net-listener.c index d8cfe52673..dc81150318 100644 --- a/io/net-listener.c +++ b/io/net-listener.c @@ -82,7 +82,7 @@ int qio_net_listener_open_sync(QIONetListener *listener, for (i =3D 0; i < nresaddrs; i++) { QIOChannelSocket *sioc =3D qio_channel_socket_new(); =20 - if (qio_channel_socket_listen_sync(sioc, resaddrs[i], + if (qio_channel_socket_listen_sync(sioc, resaddrs[i], 1, err ? NULL : &err) =3D=3D 0) { success =3D true; =20 diff --git a/io/trace-events b/io/trace-events index 378390521e..2e6aa1d749 100644 --- a/io/trace-events +++ b/io/trace-events @@ -17,7 +17,7 @@ qio_channel_socket_connect_sync(void *ioc, void *addr) "S= ocket connect sync ioc=3D qio_channel_socket_connect_async(void *ioc, void *addr) "Socket connect as= ync ioc=3D%p addr=3D%p" qio_channel_socket_connect_fail(void *ioc) "Socket connect fail ioc=3D%p" qio_channel_socket_connect_complete(void *ioc, int fd) "Socket connect com= plete ioc=3D%p fd=3D%d" -qio_channel_socket_listen_sync(void *ioc, void *addr) "Socket listen sync = ioc=3D%p addr=3D%p" +qio_channel_socket_listen_sync(void *ioc, void *addr, int num) "Socket lis= ten sync ioc=3D%p addr=3D%p num=3D%d" qio_channel_socket_listen_async(void *ioc, void *addr) "Socket listen asyn= c ioc=3D%p addr=3D%p" qio_channel_socket_listen_fail(void *ioc) "Socket listen fail ioc=3D%p" qio_channel_socket_listen_complete(void *ioc, int fd) "Socket listen compl= ete ioc=3D%p fd=3D%d" diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c index a256ce490b..a8a74d1dba 100644 --- a/scsi/qemu-pr-helper.c +++ b/scsi/qemu-pr-helper.c @@ -1005,7 +1005,8 @@ int main(int argc, char **argv) .u.q_unix.path =3D socket_path, }; server_ioc =3D qio_channel_socket_new(); - if (qio_channel_socket_listen_sync(server_ioc, &saddr, &local_err)= < 0) { + if (qio_channel_socket_listen_sync(server_ioc, &saddr, + 1, &local_err) < 0) { object_unref(OBJECT(server_ioc)); error_report_err(local_err); return 1; diff --git a/tests/test-char.c b/tests/test-char.c index f9440cdcfd..af131fc850 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -666,7 +666,7 @@ char_socket_addr_to_opt_str(SocketAddress *addr, bool f= d_pass, char *optstr; g_assert(!reconnect); if (is_listen) { - qio_channel_socket_listen_sync(ioc, addr, &error_abort); + qio_channel_socket_listen_sync(ioc, addr, 1, &error_abort); } else { qio_channel_socket_connect_sync(ioc, addr, &error_abort); } @@ -891,7 +891,7 @@ static void char_socket_client_test(gconstpointer opaqu= e) */ ioc =3D qio_channel_socket_new(); g_assert_nonnull(ioc); - qio_channel_socket_listen_sync(ioc, config->addr, &error_abort); + qio_channel_socket_listen_sync(ioc, config->addr, 1, &error_abort); addr =3D qio_channel_socket_get_local_address(ioc, &error_abort); g_assert_nonnull(addr); =20 diff --git a/tests/test-io-channel-socket.c b/tests/test-io-channel-socket.c index d2053c464c..6eebcee115 100644 --- a/tests/test-io-channel-socket.c +++ b/tests/test-io-channel-socket.c @@ -57,7 +57,7 @@ static void test_io_channel_setup_sync(SocketAddress *lis= ten_addr, QIOChannelSocket *lioc; =20 lioc =3D qio_channel_socket_new(); - qio_channel_socket_listen_sync(lioc, listen_addr, &error_abort); + qio_channel_socket_listen_sync(lioc, listen_addr, 1, &error_abort); =20 if (listen_addr->type =3D=3D SOCKET_ADDRESS_TYPE_INET) { SocketAddress *laddr =3D qio_channel_socket_get_local_address( diff --git a/tests/tpm-emu.c b/tests/tpm-emu.c index 125e697181..c43ac4aef8 100644 --- a/tests/tpm-emu.c +++ b/tests/tpm-emu.c @@ -76,7 +76,7 @@ void *tpm_emu_ctrl_thread(void *data) QIOChannelSocket *lioc =3D qio_channel_socket_new(); QIOChannel *ioc; =20 - qio_channel_socket_listen_sync(lioc, s->addr, &error_abort); + qio_channel_socket_listen_sync(lioc, s->addr, 1, &error_abort); =20 g_mutex_lock(&s->data_mutex); s->data_cond_signal =3D true; --=20 2.21.0 From nobody Sat May 18 08:46:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566298317; cv=none; d=zoho.com; s=zohoarc; b=BAUuMA/wHr06zToqa2ebBVfkFLWJ+O4bSLhGiED4lpMhCgjIUHyEhnxfeHs/kLGIQZiT5pB2v+eqpNGaswhQnVAH84gjyprSH6xbKdcJ2CT7D2tm9lTCi3hgqRJ14P3nwiZ822pdbyLriR8YaBfzPkx1bJOVXRlEsNiTSgolcLA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566298317; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=LxOYZ9LZCoSWMoj09zudFBVUCrykmYYqLseQZ7nLbK4=; b=ZMty3NTuf5Tdt+HtKVZBfO94QNcS4MXIScbSMhphL2SdaAuEha+EBQAC2gfb8fwZ8TgqWkX/BIpRTSjJyKK9652HSNMCSpvDU2mBHdjC34jgqJ5sBf4Rz8SiMG0ZsReSm2hs/DQsQhhXdxrD3ZXWZiYGJAH2hgchUOaMYj9zVbY= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 156629831742833.866849528675175; Tue, 20 Aug 2019 03:51:57 -0700 (PDT) Received: from localhost ([::1]:35986 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01k4-0001R8-CE for importer@patchew.org; Tue, 20 Aug 2019 06:51:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48848) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01hT-0006DA-KY for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i01hR-0004rA-DO for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42863) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i01hN-0004jB-79; Tue, 20 Aug 2019 06:49:09 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9BEA4155E0; Tue, 20 Aug 2019 10:49:07 +0000 (UTC) Received: from secure.mitica (unknown [10.36.118.42]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4CFBE5D9CD; Tue, 20 Aug 2019 10:48:55 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Tue, 20 Aug 2019 12:48:34 +0200 Message-Id: <20190820104836.3093-4-quintela@redhat.com> In-Reply-To: <20190820104836.3093-1-quintela@redhat.com> References: <20190820104836.3093-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Tue, 20 Aug 2019 10:49:07 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v3 3/5] socket: Add num connections to qio_channel_socket_async() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , Michael Roth , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Max Reitz , Stefan Berger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Juan Quintela --- include/io/channel-socket.h | 2 ++ io/channel-socket.c | 30 +++++++++++++++++++++++------- io/trace-events | 2 +- tests/test-io-channel-socket.c | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/include/io/channel-socket.h b/include/io/channel-socket.h index ed88e5b8c1..777ff5954e 100644 --- a/include/io/channel-socket.h +++ b/include/io/channel-socket.h @@ -140,6 +140,7 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *io= c, * qio_channel_socket_listen_async: * @ioc: the socket channel object * @addr: the address to listen to + * @num: the expected ammount of connections * @callback: the function to invoke on completion * @opaque: user data to pass to @callback * @destroy: the function to free @opaque @@ -155,6 +156,7 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *io= c, */ void qio_channel_socket_listen_async(QIOChannelSocket *ioc, SocketAddress *addr, + int num, QIOTaskFunc callback, gpointer opaque, GDestroyNotify destroy, diff --git a/io/channel-socket.c b/io/channel-socket.c index 6258c25983..b74f5b92a0 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -220,14 +220,27 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *= ioc, } =20 =20 +struct QIOChannelListenWorkerData { + SocketAddress *addr; + int num; /* amount of expected connections */ +}; + +static void qio_channel_listen_worker_free(gpointer opaque) +{ + struct QIOChannelListenWorkerData *data =3D opaque; + + qapi_free_SocketAddress(data->addr); + g_free(data); +} + static void qio_channel_socket_listen_worker(QIOTask *task, gpointer opaque) { QIOChannelSocket *ioc =3D QIO_CHANNEL_SOCKET(qio_task_get_source(task)= ); - SocketAddress *addr =3D opaque; + struct QIOChannelListenWorkerData *data =3D opaque; Error *err =3D NULL; =20 - qio_channel_socket_listen_sync(ioc, addr, 1, &err); + qio_channel_socket_listen_sync(ioc, data->addr, data->num, &err); =20 qio_task_set_error(task, err); } @@ -235,6 +248,7 @@ static void qio_channel_socket_listen_worker(QIOTask *t= ask, =20 void qio_channel_socket_listen_async(QIOChannelSocket *ioc, SocketAddress *addr, + int num, QIOTaskFunc callback, gpointer opaque, GDestroyNotify destroy, @@ -242,16 +256,18 @@ void qio_channel_socket_listen_async(QIOChannelSocket= *ioc, { QIOTask *task =3D qio_task_new( OBJECT(ioc), callback, opaque, destroy); - SocketAddress *addrCopy; + struct QIOChannelListenWorkerData *data; =20 - addrCopy =3D QAPI_CLONE(SocketAddress, addr); + data =3D g_new0(struct QIOChannelListenWorkerData, 1); + data->addr =3D QAPI_CLONE(SocketAddress, addr); + data->num =3D num; =20 /* socket_listen() blocks in DNS lookups, so we must use a thread */ - trace_qio_channel_socket_listen_async(ioc, addr); + trace_qio_channel_socket_listen_async(ioc, addr, num); qio_task_run_in_thread(task, qio_channel_socket_listen_worker, - addrCopy, - (GDestroyNotify)qapi_free_SocketAddress, + data, + qio_channel_listen_worker_free, context); } =20 diff --git a/io/trace-events b/io/trace-events index 2e6aa1d749..d7bc70b966 100644 --- a/io/trace-events +++ b/io/trace-events @@ -18,7 +18,7 @@ qio_channel_socket_connect_async(void *ioc, void *addr) "= Socket connect async io qio_channel_socket_connect_fail(void *ioc) "Socket connect fail ioc=3D%p" qio_channel_socket_connect_complete(void *ioc, int fd) "Socket connect com= plete ioc=3D%p fd=3D%d" qio_channel_socket_listen_sync(void *ioc, void *addr, int num) "Socket lis= ten sync ioc=3D%p addr=3D%p num=3D%d" -qio_channel_socket_listen_async(void *ioc, void *addr) "Socket listen asyn= c ioc=3D%p addr=3D%p" +qio_channel_socket_listen_async(void *ioc, void *addr, int num) "Socket li= sten async ioc=3D%p addr=3D%p num=3D%d" qio_channel_socket_listen_fail(void *ioc) "Socket listen fail ioc=3D%p" qio_channel_socket_listen_complete(void *ioc, int fd) "Socket listen compl= ete ioc=3D%p fd=3D%d" qio_channel_socket_dgram_sync(void *ioc, void *localAddr, void *remoteAddr= ) "Socket dgram sync ioc=3D%p localAddr=3D%p remoteAddr=3D%p" diff --git a/tests/test-io-channel-socket.c b/tests/test-io-channel-socket.c index 6eebcee115..50235c1547 100644 --- a/tests/test-io-channel-socket.c +++ b/tests/test-io-channel-socket.c @@ -113,7 +113,7 @@ static void test_io_channel_setup_async(SocketAddress *= listen_addr, =20 lioc =3D qio_channel_socket_new(); qio_channel_socket_listen_async( - lioc, listen_addr, + lioc, listen_addr, 1, test_io_channel_complete, &data, NULL, NULL); =20 g_main_loop_run(data.loop); --=20 2.21.0 From nobody Sat May 18 08:46:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566298319; cv=none; d=zoho.com; s=zohoarc; b=XowNX+Bm5UnYDMsSwDIe3Fpmv9sbAbbyx5PxXAhUFw/Ywlhkm24k86+KVSHxuKGDKGXKHVEhxuawPAgHqJIm5MkwZtIn6thqkPfUzKEDRGf5LHzHn/hHKjSPfILXoggiTG1CgsVHVAdqSK/D+AF7Xr+Hv35MwKzAs2I9Z2EfcAs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566298319; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=AtRJEUEMXfZYMHdXefv675KYMgguOiFjYpQgjOR33qQ=; b=K9L9ihuK2ZhHy+n9jCX1005KxgrcyZpvAT2eEFzpx+KQ1vOWBY1WFwbPuWFHmxodhwMUqVsTR0tJ016LgITyTk0OojaULnWLflkHdBJmDepTE9K5MlVxnHMIEY6K9Tx2UxC2eJ9Fqonp1hCKg0PmeZy3FfNtPBJ8qMaQAHIG5sE= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1566298319062602.0408708937296; Tue, 20 Aug 2019 03:51:59 -0700 (PDT) Received: from localhost ([::1]:35988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01k6-0001UO-1o for importer@patchew.org; Tue, 20 Aug 2019 06:51:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48903) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01hX-0006Ed-IC for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i01hV-0004wU-He for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56190) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i01hR-0004nh-BF; Tue, 20 Aug 2019 06:49:13 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 063E3300895A; Tue, 20 Aug 2019 10:49:11 +0000 (UTC) Received: from secure.mitica (unknown [10.36.118.42]) by smtp.corp.redhat.com (Postfix) with ESMTP id EF73A5D9CD; Tue, 20 Aug 2019 10:49:07 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Tue, 20 Aug 2019 12:48:35 +0200 Message-Id: <20190820104836.3093-5-quintela@redhat.com> In-Reply-To: <20190820104836.3093-1-quintela@redhat.com> References: <20190820104836.3093-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Tue, 20 Aug 2019 10:49:11 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v3 4/5] socket: Add num connections to qio_net_listener_open_sync() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , Michael Roth , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Max Reitz , Stefan Berger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Juan Quintela --- blockdev-nbd.c | 2 +- chardev/char-socket.c | 2 +- include/io/net-listener.h | 2 ++ io/net-listener.c | 3 ++- migration/socket.c | 2 +- qemu-nbd.c | 2 +- ui/vnc.c | 4 ++-- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/blockdev-nbd.c b/blockdev-nbd.c index 7a71da447f..c621686131 100644 --- a/blockdev-nbd.c +++ b/blockdev-nbd.c @@ -101,7 +101,7 @@ void nbd_server_start(SocketAddress *addr, const char *= tls_creds, qio_net_listener_set_name(nbd_server->listener, "nbd-listener"); =20 - if (qio_net_listener_open_sync(nbd_server->listener, addr, errp) < 0) { + if (qio_net_listener_open_sync(nbd_server->listener, addr, 1, errp) < = 0) { goto error; } =20 diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 7ca5d97af3..8c7c9da567 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1160,7 +1160,7 @@ static int qmp_chardev_open_socket_server(Chardev *ch= r, qio_net_listener_set_name(s->listener, name); g_free(name); =20 - if (qio_net_listener_open_sync(s->listener, s->addr, errp) < 0) { + if (qio_net_listener_open_sync(s->listener, s->addr, 1, errp) < 0) { object_unref(OBJECT(s->listener)); s->listener =3D NULL; return -1; diff --git a/include/io/net-listener.h b/include/io/net-listener.h index 8081ac58a2..fb101703e3 100644 --- a/include/io/net-listener.h +++ b/include/io/net-listener.h @@ -95,6 +95,7 @@ void qio_net_listener_set_name(QIONetListener *listener, * qio_net_listener_open_sync: * @listener: the network listener object * @addr: the address to listen on + * @num: the amount of expected connections * @errp: pointer to a NULL initialized error object * * Synchronously open a listening connection on all @@ -104,6 +105,7 @@ void qio_net_listener_set_name(QIONetListener *listener, */ int qio_net_listener_open_sync(QIONetListener *listener, SocketAddress *addr, + int num, Error **errp); =20 /** diff --git a/io/net-listener.c b/io/net-listener.c index dc81150318..5d8a226872 100644 --- a/io/net-listener.c +++ b/io/net-listener.c @@ -62,6 +62,7 @@ static gboolean qio_net_listener_channel_func(QIOChannel = *ioc, =20 int qio_net_listener_open_sync(QIONetListener *listener, SocketAddress *addr, + int num, Error **errp) { QIODNSResolver *resolver =3D qio_dns_resolver_get_instance(); @@ -82,7 +83,7 @@ int qio_net_listener_open_sync(QIONetListener *listener, for (i =3D 0; i < nresaddrs; i++) { QIOChannelSocket *sioc =3D qio_channel_socket_new(); =20 - if (qio_channel_socket_listen_sync(sioc, resaddrs[i], 1, + if (qio_channel_socket_listen_sync(sioc, resaddrs[i], num, err ? NULL : &err) =3D=3D 0) { success =3D true; =20 diff --git a/migration/socket.c b/migration/socket.c index 98efdc0286..e63f5e1612 100644 --- a/migration/socket.c +++ b/migration/socket.c @@ -181,7 +181,7 @@ static void socket_start_incoming_migration(SocketAddre= ss *saddr, =20 qio_net_listener_set_name(listener, "migration-socket-listener"); =20 - if (qio_net_listener_open_sync(listener, saddr, errp) < 0) { + if (qio_net_listener_open_sync(listener, saddr, 1, errp) < 0) { object_unref(OBJECT(listener)); return; } diff --git a/qemu-nbd.c b/qemu-nbd.c index 049645491d..83b6c32d73 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -1054,7 +1054,7 @@ int main(int argc, char **argv) server =3D qio_net_listener_new(); if (socket_activation =3D=3D 0) { saddr =3D nbd_build_socket_address(sockpath, bindto, port); - if (qio_net_listener_open_sync(server, saddr, &local_err) < 0) { + if (qio_net_listener_open_sync(server, saddr, 1, &local_err) < 0) { object_unref(OBJECT(server)); error_report_err(local_err); exit(EXIT_FAILURE); diff --git a/ui/vnc.c b/ui/vnc.c index 4812ed29d0..258461f814 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3762,7 +3762,7 @@ static int vnc_display_listen(VncDisplay *vd, qio_net_listener_set_name(vd->listener, "vnc-listen"); for (i =3D 0; i < nsaddr; i++) { if (qio_net_listener_open_sync(vd->listener, - saddr[i], + saddr[i], 1, errp) < 0) { return -1; } @@ -3777,7 +3777,7 @@ static int vnc_display_listen(VncDisplay *vd, qio_net_listener_set_name(vd->wslistener, "vnc-ws-listen"); for (i =3D 0; i < nwsaddr; i++) { if (qio_net_listener_open_sync(vd->wslistener, - wsaddr[i], + wsaddr[i], 1, errp) < 0) { return -1; } --=20 2.21.0 From nobody Sat May 18 08:46:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566298388; cv=none; d=zoho.com; s=zohoarc; b=fV3lbpcauTj+blU1VTTkMF2vg6QIQg/WMIDHLAnMswUV0U7FDwjzsaL7lVJUkqFbN1pCdDEds88lBYVIuL+HJiOjpjuT8fPkEv72WX+TBqUtOZmmLrgh1gDYIieKJu8sd714raiwYMf0kX/zbruIx1CBpB7L6p+yzZYjzPZcG5I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566298388; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=CmW4egQdxDBrJes3A800sus+RkWEba3CctDHMVKOwQk=; b=fR6WLavN6HOykcVwDO7LOspoKTq8ZOD7iebsXF3v4dWGV900N9xsifO+NmjFPn/vIDQ2ATYwHRXv9Gk5DnDleNKwjrWLcUqTTPaFdYEMLgBtakFz28KM2ChXiR4eFzgjD/A3j722MeIC9wQesPMv6FNWHoZi8+Gt0RkC7DbwDtI= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1566298388798641.2232184349692; Tue, 20 Aug 2019 03:53:08 -0700 (PDT) Received: from localhost ([::1]:36002 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01lD-0003gP-Lh for importer@patchew.org; Tue, 20 Aug 2019 06:53:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48921) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i01hY-0006GO-HF for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i01hX-0004xe-GW for qemu-devel@nongnu.org; Tue, 20 Aug 2019 06:49:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55624) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i01hT-0004tF-H8; Tue, 20 Aug 2019 06:49:15 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5ED543CA0B; Tue, 20 Aug 2019 10:49:14 +0000 (UTC) Received: from secure.mitica (unknown [10.36.118.42]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5BE1D5D9CD; Tue, 20 Aug 2019 10:49:11 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Tue, 20 Aug 2019 12:48:36 +0200 Message-Id: <20190820104836.3093-6-quintela@redhat.com> In-Reply-To: <20190820104836.3093-1-quintela@redhat.com> References: <20190820104836.3093-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 20 Aug 2019 10:49:14 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v3 5/5] multifd: Use number of channels as listen backlog X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , Michael Roth , "Dr. David Alan Gilbert" , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Max Reitz , Stefan Berger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Juan Quintela --- migration/socket.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/migration/socket.c b/migration/socket.c index e63f5e1612..97c9efde59 100644 --- a/migration/socket.c +++ b/migration/socket.c @@ -178,10 +178,15 @@ static void socket_start_incoming_migration(SocketAdd= ress *saddr, { QIONetListener *listener =3D qio_net_listener_new(); size_t i; + int num =3D 1; =20 qio_net_listener_set_name(listener, "migration-socket-listener"); =20 - if (qio_net_listener_open_sync(listener, saddr, 1, errp) < 0) { + if (migrate_use_multifd()) { + num =3D migrate_multifd_channels(); + } + + if (qio_net_listener_open_sync(listener, saddr, num, errp) < 0) { object_unref(OBJECT(listener)); return; } --=20 2.21.0