]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
chardev: Reuse channel's cached local address
authorEric Blake <eblake@redhat.com>
Thu, 13 Nov 2025 01:11:33 +0000 (19:11 -0600)
committerEric Blake <eblake@redhat.com>
Thu, 13 Nov 2025 16:01:19 +0000 (10:01 -0600)
Directly accessing the fd member of a QIOChannelSocket is an
undesirable leaky abstraction.  What's more, grabbing that fd merely
to force an eventual call to getsockname() can be wasteful, since the
channel is often able to return its cached local name.

Reported-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-ID: <20251113011625.878876-23-eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
chardev/char-socket.c

index 62852e3caf5f269ae9a9a96cce67428fcc80667e..ec4116ade4d1e24582401fcfa93d6dc3e82a7ff4 100644 (file)
@@ -1255,7 +1255,7 @@ static int qmp_chardev_open_socket_server(Chardev *chr,
     }
 
     qapi_free_SocketAddress(s->addr);
-    s->addr = socket_local_address(s->listener->sioc[0]->fd, errp);
+    s->addr = qio_channel_socket_get_local_address(s->listener->sioc[0], errp);
 
 skip_listen:
     update_disconnected_filename(s);