[Spice-devel] [PATCH] Log actual address spice-server binds to

Hans de Goede hdegoede at redhat.com
Tue May 21 05:56:38 PDT 2013


ACK.

On 05/21/2013 02:27 PM, Christophe Fergeau wrote:
> It's not always obvious what address spice-server will bind to,
> in particular when the 'addr' parameter is omitted on QEMU
> commandline. The decision of what address to bind to is made
> in reds_init_socket with a call to getaddrinfo. Surprisingly,
> that function had a call to getnameinfo() already, but it does
> not seem to be using the result of that call in any way.
> This commit moves this call after the socket is successfully bound
> and add a log message to indicate which address it's bound to.
> ---
>   server/reds.c | 15 ++++++++++-----
>   1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/server/reds.c b/server/reds.c
> index f6a1ce9..ae02e09 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -2994,8 +2994,6 @@ static int reds_init_socket(const char *addr, int portnr, int family)
>       static const int on=1, off=0;
>       struct addrinfo ai,*res,*e;
>       char port[33];
> -    char uaddr[INET6_ADDRSTRLEN+1];
> -    char uport[33];
>       int slisten,rc;
>
>       memset(&ai,0, sizeof(ai));
> @@ -3012,9 +3010,6 @@ static int reds_init_socket(const char *addr, int portnr, int family)
>       }
>
>       for (e = res; e != NULL; e = e->ai_next) {
> -        getnameinfo((struct sockaddr*)e->ai_addr,e->ai_addrlen,
> -                    uaddr,INET6_ADDRSTRLEN, uport,32,
> -                    NI_NUMERICHOST | NI_NUMERICSERV);
>           slisten = socket(e->ai_family, e->ai_socktype, e->ai_protocol);
>           if (slisten < 0) {
>               continue;
> @@ -3029,6 +3024,16 @@ static int reds_init_socket(const char *addr, int portnr, int family)
>           }
>   #endif
>           if (bind(slisten, e->ai_addr, e->ai_addrlen) == 0) {
> +            char uaddr[INET6_ADDRSTRLEN+1];
> +            char uport[33];
> +            rc = getnameinfo((struct sockaddr*)e->ai_addr,e->ai_addrlen,
> +                             uaddr,INET6_ADDRSTRLEN, uport,32,
> +                             NI_NUMERICHOST | NI_NUMERICSERV);
> +            if (rc == 0) {
> +                spice_info("bound to %s:%s", uaddr, uport);
> +            } else {
> +                spice_info("cannot resolve address spice-server is bound to");
> +            }
>               goto listen;
>           }
>           close(slisten);
>


More information about the Spice-devel mailing list