network: introduce netdev_get_create_type() helper function

This commit is contained in:
Yu Watanabe
2019-03-14 10:57:41 +09:00
parent 2b6db913e2
commit 859e9c0487
2 changed files with 10 additions and 9 deletions
+2 -9
View File
@@ -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) {
+8
View File
@@ -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 */