From nobody Wed Nov 12 01:54:15 2025 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=1567578916; cv=none; d=zoho.com; s=zohoarc; b=RVisAcu4iWoiKpvJLeae4+UjzefRXZe/CMFawBCLWLhe9FjLvvLxjWaX2KurrxhjD9tWSpOpuOoATXXVDjiU3n6fZsYkp4Ske3zRZj5UHFopFBsg+kFd4VG/A3pbdn+dZH3gIniFqdRNPFUSz9cojitK1n1HHN3rHYIk80EPCco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567578916; 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=j7HXN+rFiU11vCB7MxVHBcqLHIGcsEVqBqj6vhjp9Rc=; b=DnLgKsKF3frlU64OexAhFHthmsUM9ooCvTw3vwEm+3feXcUaSRZMWTTfbCZoajxnccfxwdwpMXAw5an0z4OS9B9zbjq/EnE26E9hK00ZTnHOOW7uVFN+/pgU0h61KoJ8PLcnEc7YHoBv9Efq82CERoENgemwlMMy44ZVFHYY+ow= 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 1567578916979976.0176500046236; Tue, 3 Sep 2019 23:35:16 -0700 (PDT) Received: from localhost ([::1]:53800 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Oso-0000L4-Ac for importer@patchew.org; Wed, 04 Sep 2019 02:35:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42896) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Onl-0006Te-SM for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:29:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i5Onj-0003rX-VS for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:29:57 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50346) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i5OnV-0003K1-HI; Wed, 04 Sep 2019 02:29:42 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0C4704E924; Wed, 4 Sep 2019 06:29:28 +0000 (UTC) Received: from secure.mitica (ovpn-116-17.ams2.redhat.com [10.36.116.17]) by smtp.corp.redhat.com (Postfix) with ESMTP id CEBC719D70; Wed, 4 Sep 2019 06:29:24 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Wed, 4 Sep 2019 08:29:11 +0200 Message-Id: <20190904062915.6488-2-quintela@redhat.com> In-Reply-To: <20190904062915.6488-1-quintela@redhat.com> References: <20190904062915.6488-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Wed, 04 Sep 2019 06:29:28 +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] [PULL 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: Fam Zheng , Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , "Dr. David Alan Gilbert" , Michael Roth , 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 e2a3a8a093..8ce55efe70 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 Wed Nov 12 01:54:15 2025 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=1567579088; cv=none; d=zoho.com; s=zohoarc; b=Ee3AU56FO7MUUvCB1qu1FKAW35Xjd1LI5iFPl+seUFuZzmnO0YphLti0b6i8C+hMDY0cZkwyBpN8+RUgVheGyqbc2fBgRAtlX3d45dDINxcp9lnQCCXtXHXxpYneokWXU9x+3KNC5zUx1c0t82pFIGyQ3Xb9K1PjUTpWfNVBIRU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567579088; 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=ES8fqPnHyGbdjelSUuOgl9xQl29DKRbUBWLyJtXUkqM=; b=UDRScYt4dH/sDsjLRnmjKLh+mgtiU8bye4VyUPwpVHLxygGCXX+IDL9ycpZss+sHdGdvUkI5LSub07whDSiJFTDUfYkGmeYXmL2JeYfdiVBZ+V/sAp8szfx5klEpUarfleo7nN4dxt7m+MLIl+A6Hnm0f3eWTqRJxMqPwbdHOjI= 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 1567579088810878.9469117316055; Tue, 3 Sep 2019 23:38:08 -0700 (PDT) Received: from localhost ([::1]:53830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Ovd-0003Dx-NW for importer@patchew.org; Wed, 04 Sep 2019 02:38:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42853) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Onk-0006S9-0x for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:29:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i5Ong-0003oD-ME for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:29:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53896) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i5OnT-0003OJ-Rj; Wed, 04 Sep 2019 02:29:40 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 63BAD18C8937; Wed, 4 Sep 2019 06:29:31 +0000 (UTC) Received: from secure.mitica (ovpn-116-17.ams2.redhat.com [10.36.116.17]) by smtp.corp.redhat.com (Postfix) with ESMTP id 606D919C4F; Wed, 4 Sep 2019 06:29:28 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Wed, 4 Sep 2019 08:29:12 +0200 Message-Id: <20190904062915.6488-3-quintela@redhat.com> In-Reply-To: <20190904062915.6488-1-quintela@redhat.com> References: <20190904062915.6488-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.70]); Wed, 04 Sep 2019 06:29:31 +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] [PULL 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: Fam Zheng , Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , "Dr. David Alan Gilbert" , Michael Roth , 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 b56e43c1eb..f3ebdffd87 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -667,7 +667,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); } @@ -892,7 +892,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 d172f3070f..613ada32c0 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 Wed Nov 12 01:54:15 2025 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=1567578934; cv=none; d=zoho.com; s=zohoarc; b=N9moYQ0eWlH9d4BXH57qEVoHgml4P6JOkuAHEaYhdx4OMhvefUrWovEsWb7Fn6IDmAFMIZEIB/q7v3Sfhmk+3vGaHAco6nSYf4AdnYdOnlUcD+3vhYPxuPhOA9kuQ1oRAEWJRT5Jcwroa6A8lQrsBilly5CfFszoa9FdRhF+pO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567578934; 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=reEROzSNQf3d7GYpz/f6o79pdZb219RYkbddulX0wNk=; b=WXTSUIFv5TokW4b8nB9CMmBjXaK4t4kFylt9m6IZip4/YTPwB46kHwoIbbt95coVyIWQfBMqvYZaruPQyyJ3hAFQ/wiziW8+Xv59+B8PsQpCxc9QYEmkkCNt9KH9Vftni7NzWPAz09Dhr9+9CliKOSDWptPZ/p0gowsLWxQTYW8= 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 15675789347975.154386108330073; Tue, 3 Sep 2019 23:35:34 -0700 (PDT) Received: from localhost ([::1]:53806 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5OtB-0000h0-6p for importer@patchew.org; Wed, 04 Sep 2019 02:35:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42941) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Ono-0006Vs-Jt for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:30:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i5Onn-0003tt-5u for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:30:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48678) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i5Onh-0003TZ-64; Wed, 04 Sep 2019 02:29:53 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BA7EB806D1; Wed, 4 Sep 2019 06:29:34 +0000 (UTC) Received: from secure.mitica (ovpn-116-17.ams2.redhat.com [10.36.116.17]) by smtp.corp.redhat.com (Postfix) with ESMTP id B764219C4F; Wed, 4 Sep 2019 06:29:31 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Wed, 4 Sep 2019 08:29:13 +0200 Message-Id: <20190904062915.6488-4-quintela@redhat.com> In-Reply-To: <20190904062915.6488-1-quintela@redhat.com> References: <20190904062915.6488-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 04 Sep 2019 06:29:34 +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] [PULL 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: Fam Zheng , Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , "Dr. David Alan Gilbert" , Michael Roth , 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 613ada32c0..d43083a766 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 Wed Nov 12 01:54:15 2025 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=1567579046; cv=none; d=zoho.com; s=zohoarc; b=N9VrPwCkBSxQz5NpuRtXzqQDY3mUdmoXtEF2FOcL2tZkyUm8MlkK8ruV8DwvK6ILM8wg2iYsIGqqhT6OUuPmZyKbSFA4V/TU8IOrJOiVXeG08u8bahPHt7+rrVP+MZ9IXyTbGs8jyr0LkmLF9TEY4LUTZtqQPW+cr9cExQTT7Qs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567579046; 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=OwYA1DYeop3Ai/yyAd5F7Br8NGnU4WXFUq54liFGlpU=; b=nK3RhFIU9YsLbJo1kQYvY+wXUnDdCvOjRpI8U+Kb3d7/P/c87UrDXW4j+0GT+mapw8PKVdHH8YdgIeb9udnw8RqiijuK1/iSEjMvBQbjmYydwvFx5P5x/DTZFMCuaPMYybscYGuAg8ZNyLWz1XxVM45S4HpJbNUPa+rPxRI6bew= 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 1567579046878512.0551543082634; Tue, 3 Sep 2019 23:37:26 -0700 (PDT) Received: from localhost ([::1]:53826 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Ouz-0002ow-O3 for importer@patchew.org; Wed, 04 Sep 2019 02:37:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42937) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Ono-0006Vn-IM for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:30:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i5Onn-0003tV-21 for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:30:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50064) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i5One-0003cG-3w; Wed, 04 Sep 2019 02:29:51 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F2AFF10F23F3; Wed, 4 Sep 2019 06:29:42 +0000 (UTC) Received: from secure.mitica (ovpn-116-17.ams2.redhat.com [10.36.116.17]) by smtp.corp.redhat.com (Postfix) with ESMTP id 177CD19C4F; Wed, 4 Sep 2019 06:29:34 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Wed, 4 Sep 2019 08:29:14 +0200 Message-Id: <20190904062915.6488-5-quintela@redhat.com> In-Reply-To: <20190904062915.6488-1-quintela@redhat.com> References: <20190904062915.6488-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.66]); Wed, 04 Sep 2019 06:29:43 +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] [PULL 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: Fam Zheng , Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , "Dr. David Alan Gilbert" , Michael Roth , 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 03f03407b0..185fe38dda 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1170,7 +1170,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 649ce93cd2..bd16746022 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3765,7 +3765,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; } @@ -3780,7 +3780,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 Wed Nov 12 01:54:15 2025 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=1567579283; cv=none; d=zoho.com; s=zohoarc; b=dY25FcpuLyQFVgEcrlR/VGKBTaje7YbS0+i6Ci5fogejw7zBos4WuCh5dbomr1D2I4yK47V7zmhJoNkII1yDtUavXWLx5QOIX47zbQUx/7fpoueuCo62xhzysaVO+R87UtglKVD1+rN6s/oZzznwDGQMDzjRrUxyBsmYrtkqztw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567579283; 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=bdxaikVK2LBlmkOtZRKgE78N8R3iYbSvwGiIbym8XvnCUBdU0iXkNWysTx1YO3oWnoOKo5c/J/nql17bt3rFr8Aczc4ltokxbH29HN4VopNsV2CNfz4YZfh/vY5vrKmQkMnIpvaD1bXtsRqJ/kD1LnfVnUm/8ryYN2RuMFjD3vk= 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 1567579283242882.7237867405267; Tue, 3 Sep 2019 23:41:23 -0700 (PDT) Received: from localhost ([::1]:53844 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Oyi-00053z-Vi for importer@patchew.org; Wed, 04 Sep 2019 02:41:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42936) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Ono-0006Vm-I1 for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:30:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i5Onn-0003to-5A for qemu-devel@nongnu.org; Wed, 04 Sep 2019 02:30:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47498) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i5Onj-0003gi-Vq; Wed, 04 Sep 2019 02:29:56 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5577410A8123; Wed, 4 Sep 2019 06:29:46 +0000 (UTC) Received: from secure.mitica (ovpn-116-17.ams2.redhat.com [10.36.116.17]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5363A19C4F; Wed, 4 Sep 2019 06:29:43 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Wed, 4 Sep 2019 08:29:15 +0200 Message-Id: <20190904062915.6488-6-quintela@redhat.com> In-Reply-To: <20190904062915.6488-1-quintela@redhat.com> References: <20190904062915.6488-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.64]); Wed, 04 Sep 2019 06:29:46 +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] [PULL 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: Fam Zheng , Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Juan Quintela , "Dr. David Alan Gilbert" , Michael Roth , 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