From nobody Mon May 6 04:38:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.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 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1513077246402846.0236998833234; Tue, 12 Dec 2017 03:14:06 -0800 (PST) Received: from localhost ([::1]:57670 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eOiVY-0003lY-9u for importer@patchew.org; Tue, 12 Dec 2017 06:13:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39451) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eOiUD-0002bS-5l for qemu-devel@nongnu.org; Tue, 12 Dec 2017 06:12:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eOiU9-0008U0-WF for qemu-devel@nongnu.org; Tue, 12 Dec 2017 06:12:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:57646) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eOiU9-0008Te-NT for qemu-devel@nongnu.org; Tue, 12 Dec 2017 06:12:29 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EA5BB356F7 for ; Tue, 12 Dec 2017 11:12:28 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.42.22.189]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5E79160621; Tue, 12 Dec 2017 11:12:25 +0000 (UTC) From: "Daniel P. Berrange" To: qemu-devel@nongnu.org Date: Tue, 12 Dec 2017 11:12:19 +0000 Message-Id: <20171212111219.32601-1-berrange@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Tue, 12 Dec 2017 11:12:28 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH] sockets: remove obsolete code that updated listen address X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" When listening on unix/tcp sockets there was optional code that would update the original SocketAddress struct with the info about the actual address th= at was listened on. Since the conversion of everything to QIOChannelSocket, no remaining caller made use of this feature. It has been replaced with the ab= ility to query the listen address after the fact using the function qio_channel_socket_get_local_address. This is a better model when the input address can result in listening on multiple distinct sockets. Signed-off-by: Daniel P. Berrange Reviewed-by: Peter Xu --- include/qemu/sockets.h | 2 +- qga/channel-posix.c | 2 +- util/qemu-sockets.c | 31 +++++-------------------------- 3 files changed, 7 insertions(+), 28 deletions(-) diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h index 4f7311b52a..8889bcb1ec 100644 --- a/include/qemu/sockets.h +++ b/include/qemu/sockets.h @@ -35,7 +35,7 @@ int inet_connect_saddr(InetSocketAddress *saddr, Error **= errp); =20 NetworkAddressFamily inet_netfamily(int family); =20 -int unix_listen(const char *path, char *ostr, int olen, Error **errp); +int unix_listen(const char *path, Error **errp); int unix_connect(const char *path, Error **errp); =20 SocketAddress *socket_parse(const char *str, Error **errp); diff --git a/qga/channel-posix.c b/qga/channel-posix.c index 3f34465159..b812bf4d51 100644 --- a/qga/channel-posix.c +++ b/qga/channel-posix.c @@ -190,7 +190,7 @@ static gboolean ga_channel_open(GAChannel *c, const gch= ar *path, if (fd < 0) { Error *local_err =3D NULL; =20 - fd =3D unix_listen(path, NULL, strlen(path), &local_err); + fd =3D unix_listen(path, &local_err); if (local_err !=3D NULL) { g_critical("%s", error_get_pretty(local_err)); error_free(local_err); diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index a1cf47e625..703ce8ad8e 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -199,7 +199,6 @@ static int try_bind(int socket, InetSocketAddress *sadd= r, struct addrinfo *e) =20 static int inet_listen_saddr(InetSocketAddress *saddr, int port_offset, - bool update_addr, Error **errp) { struct addrinfo ai,*res,*e; @@ -327,15 +326,6 @@ listen_failed: return -1; =20 listen_ok: - if (update_addr) { - g_free(saddr->host); - saddr->host =3D g_strdup(uaddr); - g_free(saddr->port); - saddr->port =3D g_strdup_printf("%d", - inet_getport(e) - port_offset); - saddr->has_ipv6 =3D saddr->ipv6 =3D e->ai_family =3D=3D PF_INET6; - saddr->has_ipv4 =3D saddr->ipv4 =3D e->ai_family !=3D PF_INET6; - } freeaddrinfo(res); return slisten; } @@ -791,7 +781,6 @@ static int vsock_parse(VsockSocketAddress *addr, const = char *str, #ifndef _WIN32 =20 static int unix_listen_saddr(UnixSocketAddress *saddr, - bool update_addr, Error **errp) { struct sockaddr_un un; @@ -856,12 +845,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, goto err; } =20 - if (update_addr && pathbuf) { - g_free(saddr->path); - saddr->path =3D pathbuf; - } else { - g_free(pathbuf); - } + g_free(pathbuf); return sock; =20 err: @@ -921,7 +905,6 @@ static int unix_connect_saddr(UnixSocketAddress *saddr,= Error **errp) #else =20 static int unix_listen_saddr(UnixSocketAddress *saddr, - bool update_addr, Error **errp) { error_setg(errp, "unix sockets are not available on windows"); @@ -938,7 +921,7 @@ static int unix_connect_saddr(UnixSocketAddress *saddr,= Error **errp) #endif =20 /* compatibility wrapper */ -int unix_listen(const char *str, char *ostr, int olen, Error **errp) +int unix_listen(const char *str, Error **errp) { char *path, *optstr; int sock, len; @@ -958,11 +941,7 @@ int unix_listen(const char *str, char *ostr, int olen,= Error **errp) saddr->path =3D g_strdup(str); } =20 - sock =3D unix_listen_saddr(saddr, true, errp); - - if (sock !=3D -1 && ostr) { - snprintf(ostr, olen, "%s%s", saddr->path, optstr ? optstr : ""); - } + sock =3D unix_listen_saddr(saddr, errp); =20 qapi_free_UnixSocketAddress(saddr); return sock; @@ -1053,11 +1032,11 @@ int socket_listen(SocketAddress *addr, Error **errp) =20 switch (addr->type) { case SOCKET_ADDRESS_TYPE_INET: - fd =3D inet_listen_saddr(&addr->u.inet, 0, false, errp); + fd =3D inet_listen_saddr(&addr->u.inet, 0, errp); break; =20 case SOCKET_ADDRESS_TYPE_UNIX: - fd =3D unix_listen_saddr(&addr->u.q_unix, false, errp); + fd =3D unix_listen_saddr(&addr->u.q_unix, errp); break; =20 case SOCKET_ADDRESS_TYPE_FD: --=20 2.14.3