Commit a6c76285 authored by Markus Armbruster's avatar Markus Armbruster Committed by Max Reitz
Browse files

io vnc sockets: Clean up SocketAddressKind switches



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.

Improve a few error messages while there.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
Message-id: 1490895797-29094-4-git-send-email-armbru@redhat.com
Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
parent d2e49aad
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -164,9 +164,12 @@ int qio_dns_resolver_lookup_sync(QIODNSResolver *resolver,
                                                addrs,
                                                errp);

    default:
        error_setg(errp, "Unknown socket address kind");
    case SOCKET_ADDRESS_KIND_FD:
        error_setg(errp, "Unsupported socket address type 'fd'");
        return -1;

    default:
        abort();
    }
}

+12 −6
Original line number Diff line number Diff line
@@ -129,10 +129,13 @@ static void vnc_init_basic_info(SocketAddress *addr,
        info->family = NETWORK_ADDRESS_FAMILY_UNIX;
        break;

    default:
        error_setg(errp, "Unsupported socket kind %d",
                   addr->type);
    case SOCKET_ADDRESS_KIND_VSOCK:
    case SOCKET_ADDRESS_KIND_FD:
        error_setg(errp, "Unsupported socket address type %s",
                   SocketAddressKind_lookup[addr->type]);
        break;
    default:
        abort();
    }

    return;
@@ -411,10 +414,13 @@ VncInfo *qmp_query_vnc(Error **errp)
            info->family = NETWORK_ADDRESS_FAMILY_UNIX;
            break;

        default:
            error_setg(errp, "Unsupported socket kind %d",
                       addr->type);
        case SOCKET_ADDRESS_KIND_VSOCK:
        case SOCKET_ADDRESS_KIND_FD:
            error_setg(errp, "Unsupported socket address type %s",
                       SocketAddressKind_lookup[addr->type]);
            goto out_error;
        default:
            abort();
        }

        info->has_host = true;
+1 −3
Original line number Diff line number Diff line
@@ -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;
}