diff mbox

[3/5] net: raise an error if -net type is invalid

Message ID 1432743412-15943-4-git-send-email-stefanha@redhat.com
State New
Headers show

Commit Message

Stefan Hajnoczi May 27, 2015, 4:16 p.m. UTC
When a -net type is used that was not compiled into the binary there
should be an error message.

Note the special case for -net none, which is a no-op.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 net/net.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Thomas Huth May 27, 2015, 7:13 p.m. UTC | #1
On Wed, 27 May 2015 17:16:50 +0100
Stefan Hajnoczi <stefanha@redhat.com> wrote:

> When a -net type is used that was not compiled into the binary there
> should be an error message.
> 
> Note the special case for -net none, which is a no-op.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  net/net.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/net/net.c b/net/net.c
> index 3352b2b..85a9ddb 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -922,6 +922,17 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)
>          }
>          /* missing optional values have been initialized to "all bits zero" */
>          name = u.net->has_id ? u.net->id : u.net->name;
> +
> +        if (opts->kind == NET_CLIENT_OPTIONS_KIND_NONE) {
> +            return 0; /* nothing to do */
> +        }
> +
> +        if (!net_client_init_fun[opts->kind]) {
> +            error_set(errp, QERR_INVALID_PARAMETER_VALUE, "type",
> +                      "a net backend type (maybe it is not compiled "
> +                      "into this binary)");
> +            return -1;
> +        }
>      }
>  
>      if (net_client_init_fun[opts->kind]) {

Reviewed-by: Thomas Huth <thuth@redhat.com>
diff mbox

Patch

diff --git a/net/net.c b/net/net.c
index 3352b2b..85a9ddb 100644
--- a/net/net.c
+++ b/net/net.c
@@ -922,6 +922,17 @@  static int net_client_init1(const void *object, int is_netdev, Error **errp)
         }
         /* missing optional values have been initialized to "all bits zero" */
         name = u.net->has_id ? u.net->id : u.net->name;
+
+        if (opts->kind == NET_CLIENT_OPTIONS_KIND_NONE) {
+            return 0; /* nothing to do */
+        }
+
+        if (!net_client_init_fun[opts->kind]) {
+            error_set(errp, QERR_INVALID_PARAMETER_VALUE, "type",
+                      "a net backend type (maybe it is not compiled "
+                      "into this binary)");
+            return -1;
+        }
     }
 
     if (net_client_init_fun[opts->kind]) {