aboutsummaryrefslogtreecommitdiff
path: root/net/net.c
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2015-05-27 17:16:49 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2015-06-24 16:30:29 +0100
commit1322629b4f25730aed973d51983e7a3b021fe9c9 (patch)
tree6fe11f66f05b95a4c1e7da5810cec09c893eee6c /net/net.c
parent027a247bbf703e94258d07e38948946d7b85e91c (diff)
net: replace net_client_init1() netdev whitelist with blacklist
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> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-id: 1432743412-15943-3-git-send-email-stefanha@redhat.com
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/net/net.c b/net/net.c
index f43af97af3..63450c0300 100644
--- a/net/net.c
+++ b/net/net.c
@@ -925,31 +925,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_setg(errp, QERR_INVALID_PARAMETER_VALUE, "type",
"a netdev backend type");
return -1;