]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: introduce netdev_get_create_type() helper function
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 11 Mar 2019 06:49:09 +0000 (15:49 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 14 Mar 2019 01:57:41 +0000 (10:57 +0900)
src/network/netdev/netdev.c
src/network/netdev/netdev.h

index 7d949fe5bb91f49264b98a428fcb6f74cd075eaf..33d646edd8604e992f8a83e1470bbe8edf7594ea 100644 (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) {
index a82c674dfdfc08cbf6190f48da7b005e86f0b501..fb02ef67057d9ad3d6f20867903905c857a491ea 100644 (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 */