Hi
On Tue, Feb 25, 2025 at 2:47 PM Haoqian He <haoqian.he@smartx.com> wrote:
>
> If the chardev is client, the socket file path in localAddr may be NULL.
> This is because the socket path comes from getsockname(), according
> to man page, getsockname() returns the current address bound by the
> socket sockfd. If the chardev is client, it's socket is unbound sockfd.
>
> Therefore, when computing the client chardev socket file path, using
> remoteAddr is more appropriate.
>
> Signed-off-by: Haoqian He <haoqian.he@smartx.com>
> ---
> chardev/char-socket.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 91496ceda9..2f842f9f88 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -571,9 +571,13 @@ static char *qemu_chr_compute_filename(SocketChardev *s)
>
> switch (ss->ss_family) {
> case AF_UNIX:
> - return g_strdup_printf("unix:%s%s",
> - ((struct sockaddr_un *)(ss))->sun_path,
> - s->is_listen ? ",server=on" : "");
> + if (s->is_listen) {
> + return g_strdup_printf("unix:%s,server=on",
> + ((struct sockaddr_un *)(ss))->sun_path);
> + } else {
> + return g_strdup_printf("unix:%s",
> + ((struct sockaddr_un *)(ps))->sun_path);
> + }
> case AF_INET6:
> left = "[";
> right = "]";
> --
> 2.48.1
>
>
This patch doesn't change anything, and I don't understand the problem
you are trying to fix.
Can you provide more details or a test scenario?
thanks
--
Marc-André Lureau