qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [for-2.9 3/8] io vnc sockets: Clean up SocketAddressKin


From: Max Reitz
Subject: Re: [Qemu-devel] [for-2.9 3/8] io vnc sockets: Clean up SocketAddressKind switches
Date: Wed, 29 Mar 2017 21:13:24 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

On 29.03.2017 18:45, Markus Armbruster wrote:
> We have quite a few switches over SocketAddressKind.  Some have case
> labels for all enumeration values, others rely on a default label.
> Some abort when the value isn't a valid SocketAddressKind, others
> report an error then.
> 
> Unify as follows.  Always provide case labels for all enumeration
> values, to clarify intent.  Abort when the value isn't a valid
> SocketAddressKind, because the program state is messed up then.
> 
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
>  io/dns-resolver.c   |  6 ++++--
>  ui/vnc.c            | 10 ++++++++--
>  util/qemu-sockets.c |  4 +---
>  3 files changed, 13 insertions(+), 7 deletions(-)

Reviewed-by: Max Reitz <address@hidden>

Nit-picks below, as can be expected of me.

> diff --git a/io/dns-resolver.c b/io/dns-resolver.c
> index 0ac6b23..00fb575 100644
> --- a/io/dns-resolver.c
> +++ b/io/dns-resolver.c
> @@ -164,9 +164,11 @@ int qio_dns_resolver_lookup_sync(QIODNSResolver 
> *resolver,
>                                                  addrs,
>                                                  errp);
>  
> +    case SOCKET_ADDRESS_KIND_FD:
> +        error_setg(errp, "Unsupported socket address type 'fd'");
> +        return -1;

Could do with an empty line here like the other cases have.

>      default:
> -        error_setg(errp, "Unknown socket address kind");
> -        return -1;
> +        abort();
>      }
>  }
>  
> diff --git a/ui/vnc.c b/ui/vnc.c
> index fe0a46a..b6b58c4 100644
> --- a/ui/vnc.c
> +++ b/ui/vnc.c
> @@ -129,10 +129,13 @@ static void vnc_init_basic_info(SocketAddress *addr,
>          info->family = NETWORK_ADDRESS_FAMILY_UNIX;
>          break;
>  
> -    default:
> +    case SOCKET_ADDRESS_KIND_VSOCK:
> +    case SOCKET_ADDRESS_KIND_FD:
>          error_setg(errp, "Unsupported socket kind %d",
>                     addr->type);

Pre-existing, but: %s and SocketAddressKind_lookup[addr->type] would be
nicer.

>          break;
> +    default:
> +        abort();
>      }
>  
>      return;
> @@ -411,10 +414,13 @@ VncInfo *qmp_query_vnc(Error **errp)
>              info->family = NETWORK_ADDRESS_FAMILY_UNIX;
>              break;
>  
> -        default:
> +        case SOCKET_ADDRESS_KIND_VSOCK:
> +        case SOCKET_ADDRESS_KIND_FD:
>              error_setg(errp, "Unsupported socket kind %d",
>                         addr->type);

Same here.

Max

>              goto out_error;
> +        default:
> +            abort();
>          }
>  
>          info->has_host = true;
> diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
> index 9b73681..4ae37bd 100644
> --- a/util/qemu-sockets.c
> +++ b/util/qemu-sockets.c
> @@ -1337,9 +1337,7 @@ char *socket_address_to_string(struct SocketAddress 
> *addr, Error **errp)
>          break;
>  
>      default:
> -        error_setg(errp, "socket family %d unsupported",
> -                   addr->type);
> -        return NULL;
> +        abort();
>      }
>      return buf;
>  }
> 


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]