Commit ca7eb184 authored by Markus Armbruster's avatar Markus Armbruster Committed by Stefan Hajnoczi
Browse files

net: Improve error message for -net hubport a bit



Type "hubport" is valid only with -netdev.  Unfortunately, that's
detected late and the error message doesn't explain why:

    $ qemu-system-i386 -net hubport,id=foo,hubid=0
    qemu-system-i386: -net hubport,id=foo,hubid=0: Device 'hubport' could not be initialized

Improve the error message to "Parameter 'type' expects a net type".

Not fixed: -net hubport without the parameters required by -netdev
hubport still asks for those parameters:

    $ qemu-system-i386 -net hubport
    qemu-system-i386: -net hubport: Parameter 'hubid' is missing

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Message-id: 1431691143-1015-2-git-send-email-armbru@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 6a8b4a5b
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -286,12 +286,9 @@ int net_init_hubport(const NetClientOptions *opts, const char *name,
    const NetdevHubPortOptions *hubport;

    assert(opts->kind == NET_CLIENT_OPTIONS_KIND_HUBPORT);
    assert(!peer);
    hubport = opts->hubport;

    if (peer) {
        return -EINVAL;
    }

    net_hub_add_port(hubport->hubid, name);
    return 0;
}
+5 −0
Original line number Diff line number Diff line
@@ -882,6 +882,11 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)
    } else {
        u.net = object;
        opts = u.net->opts;
        if (opts->kind == NET_CLIENT_OPTIONS_KIND_HUBPORT) {
            error_set(errp, QERR_INVALID_PARAMETER_VALUE, "type",
                      "a net type");
            return -1;
        }
        /* missing optional values have been initialized to "all bits zero" */
        name = u.net->has_id ? u.net->id : u.net->name;
    }