diff mbox

[2/5] net: replace net_client_init1() netdev whitelist with blacklist

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

Commit Message

Stefan Hajnoczi May 27, 2015, 4:16 p.m. UTC
It's cumbersome to keep the whitelist up-to-date.  New netdev backends
should most likely be allowed so a blacklist makes more sense than a
whitelist.

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

Comments

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

> It's cumbersome to keep the whitelist up-to-date.  New netdev backends
> should most likely be allowed so a blacklist makes more sense than a
> whitelist.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  net/net.c | 28 +++-------------------------
>  1 file changed, 3 insertions(+), 25 deletions(-)
> 
> diff --git a/net/net.c b/net/net.c
> index c5349d2..3352b2b 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -905,31 +905,9 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)
>          opts = u.netdev->opts;
>          name = u.netdev->id;
>  
> -        switch (opts->kind) {
> -#ifdef CONFIG_SLIRP
> -        case NET_CLIENT_OPTIONS_KIND_USER:
> -#endif
> -        case NET_CLIENT_OPTIONS_KIND_TAP:
> -        case NET_CLIENT_OPTIONS_KIND_SOCKET:
> -#ifdef CONFIG_VDE
> -        case NET_CLIENT_OPTIONS_KIND_VDE:
> -#endif
> -#ifdef CONFIG_NETMAP
> -        case NET_CLIENT_OPTIONS_KIND_NETMAP:
> -#endif
> -#ifdef CONFIG_NET_BRIDGE
> -        case NET_CLIENT_OPTIONS_KIND_BRIDGE:
> -#endif
> -        case NET_CLIENT_OPTIONS_KIND_HUBPORT:
> -#ifdef CONFIG_VHOST_NET_USED
> -        case NET_CLIENT_OPTIONS_KIND_VHOST_USER:
> -#endif
> -#ifdef CONFIG_L2TPV3
> -        case NET_CLIENT_OPTIONS_KIND_L2TPV3:
> -#endif
> -            break;
> -
> -        default:
> +        if (opts->kind == NET_CLIENT_OPTIONS_KIND_DUMP ||
> +            opts->kind == NET_CLIENT_OPTIONS_KIND_NIC ||
> +            !net_client_init_fun[opts->kind]) {
>              error_set(errp, QERR_INVALID_PARAMETER_VALUE, "type",
>                        "a netdev backend type");
>              return -1;

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

Patch

diff --git a/net/net.c b/net/net.c
index c5349d2..3352b2b 100644
--- a/net/net.c
+++ b/net/net.c
@@ -905,31 +905,9 @@  static int net_client_init1(const void *object, int is_netdev, Error **errp)
         opts = u.netdev->opts;
         name = u.netdev->id;
 
-        switch (opts->kind) {
-#ifdef CONFIG_SLIRP
-        case NET_CLIENT_OPTIONS_KIND_USER:
-#endif
-        case NET_CLIENT_OPTIONS_KIND_TAP:
-        case NET_CLIENT_OPTIONS_KIND_SOCKET:
-#ifdef CONFIG_VDE
-        case NET_CLIENT_OPTIONS_KIND_VDE:
-#endif
-#ifdef CONFIG_NETMAP
-        case NET_CLIENT_OPTIONS_KIND_NETMAP:
-#endif
-#ifdef CONFIG_NET_BRIDGE
-        case NET_CLIENT_OPTIONS_KIND_BRIDGE:
-#endif
-        case NET_CLIENT_OPTIONS_KIND_HUBPORT:
-#ifdef CONFIG_VHOST_NET_USED
-        case NET_CLIENT_OPTIONS_KIND_VHOST_USER:
-#endif
-#ifdef CONFIG_L2TPV3
-        case NET_CLIENT_OPTIONS_KIND_L2TPV3:
-#endif
-            break;
-
-        default:
+        if (opts->kind == NET_CLIENT_OPTIONS_KIND_DUMP ||
+            opts->kind == NET_CLIENT_OPTIONS_KIND_NIC ||
+            !net_client_init_fun[opts->kind]) {
             error_set(errp, QERR_INVALID_PARAMETER_VALUE, "type",
                       "a netdev backend type");
             return -1;