chiark / gitweb /
networkd: bond - explicitly map to kernel mode values
[elogind.git] / src / network / networkd-veth.c
index 3584981cbcf5afd08d2553489fb4a23aea05243b..50a5b676b1898f8223f8bc1e9bd6b837919f92da 100644 (file)
@@ -122,6 +122,7 @@ int netdev_create_veth(NetDev *netdev, sd_rtnl_message_handler_t callback) {
         assert(netdev->ifname);
         assert(netdev->manager);
         assert(netdev->manager->rtnl);
+        assert(netdev->kind == NETDEV_KIND_VETH);
 
         r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0);
         if (r < 0) {
@@ -131,9 +132,6 @@ int netdev_create_veth(NetDev *netdev, sd_rtnl_message_handler_t callback) {
                 return r;
         }
 
-        if(netdev->kind != NETDEV_KIND_VETH)
-                return -ENOTSUP;
-
         r = netdev_fill_veth_rtnl_message(netdev, m);
         if(r < 0)
                 return r;
@@ -145,6 +143,8 @@ int netdev_create_veth(NetDev *netdev, sd_rtnl_message_handler_t callback) {
                 return r;
         }
 
+        netdev_ref(netdev);
+
         log_debug_netdev(netdev, "Creating veth netdev: %s",
                          netdev_kind_to_string(netdev->kind));