From: Yu Watanabe Date: Mon, 11 Mar 2019 06:49:09 +0000 (+0900) Subject: network: introduce netdev_get_create_type() helper function X-Git-Tag: v242-rc1~137^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=859e9c048707d19fae08a2c6865676b945741e68;p=thirdparty%2Fsystemd.git network: introduce netdev_get_create_type() helper function --- diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index 7d949fe5bb9..33d646edd86 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -605,9 +605,8 @@ int netdev_join(NetDev *netdev, Link *link, link_netlink_message_handler_t callb assert(netdev); assert(netdev->manager); assert(netdev->manager->rtnl); - assert(NETDEV_VTABLE(netdev)); - switch (NETDEV_VTABLE(netdev)->create_type) { + switch (netdev_get_create_type(netdev)) { case NETDEV_CREATE_MASTER: r = netdev_enslave(netdev, link, callback); if (r < 0) @@ -740,16 +739,10 @@ int netdev_load_one(Manager *manager, const char *filename) { log_netdev_debug(netdev, "loaded %s", netdev_kind_to_string(netdev->kind)); - switch (NETDEV_VTABLE(netdev)->create_type) { - case NETDEV_CREATE_MASTER: - case NETDEV_CREATE_INDEPENDENT: + if (IN_SET(netdev_get_create_type(netdev), NETDEV_CREATE_MASTER, NETDEV_CREATE_INDEPENDENT)) { r = netdev_create(netdev, NULL, NULL); if (r < 0) return r; - - break; - default: - break; } switch (netdev->kind) { diff --git a/src/network/netdev/netdev.h b/src/network/netdev/netdev.h index a82c674dfdf..fb02ef67057 100644 --- a/src/network/netdev/netdev.h +++ b/src/network/netdev/netdev.h @@ -166,6 +166,14 @@ int netdev_join(NetDev *netdev, Link *link, link_netlink_message_handler_t cb); const char *netdev_kind_to_string(NetDevKind d) _const_; NetDevKind netdev_kind_from_string(const char *d) _pure_; +static inline NetDevCreateType netdev_get_create_type(NetDev *netdev) { + assert(netdev); + assert(NETDEV_VTABLE(netdev)); + + return NETDEV_VTABLE(netdev)->create_type; +} + + CONFIG_PARSER_PROTOTYPE(config_parse_netdev_kind); /* gperf */