X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-netdev.c;h=05f21fa87426272c08c51c695063ec73569a597e;hb=bdd13f6be4b588568683a1ab54f421fc6a636dbb;hp=8c9fa625014817b5fc2383e9d2a9bd5465d5a656;hpb=cf6a8911738fe2635a5210769d5348b05b166691;p=elogind.git diff --git a/src/network/networkd-netdev.c b/src/network/networkd-netdev.c index 8c9fa6250..05f21fa87 100644 --- a/src/network/networkd-netdev.c +++ b/src/network/networkd-netdev.c @@ -89,10 +89,13 @@ static int netdev_enslave_ready(NetDev *netdev, Link* link, sd_rtnl_message_hand assert(netdev); assert(netdev->state == NETDEV_STATE_READY); + assert(netdev->manager); + assert(netdev->manager->rtnl); assert(link); assert(callback); - r = sd_rtnl_message_link_new(RTM_SETLINK, link->ifindex, &req); + r = sd_rtnl_message_new_link(netdev->manager->rtnl, &req, + RTM_SETLINK, link->ifindex); if (r < 0) { log_error_netdev(netdev, "Could not allocate RTM_SETLINK message: %s", @@ -163,12 +166,13 @@ static int netdev_create(NetDev *netdev, Link *link, sd_rtnl_message_handler_t c int r; assert(netdev); - assert(!(netdev->kind == NETDEV_KIND_VLAN) || (link && callback && netdev->vlanid <= VLANID_MAX)); + assert(!(netdev->kind == NETDEV_KIND_VLAN) || + (link && callback && netdev->vlanid <= VLANID_MAX)); assert(netdev->name); assert(netdev->manager); assert(netdev->manager->rtnl); - r = sd_rtnl_message_link_new(RTM_NEWLINK, 0, &req); + r = sd_rtnl_message_new_link(netdev->manager->rtnl, &req, RTM_NEWLINK, 0); if (r < 0) { log_error_netdev(netdev, "Could not allocate RTM_NEWLINK message: %s", @@ -333,8 +337,8 @@ static int netdev_load_one(Manager *manager, const char *filename) { netdev->kind = _NETDEV_KIND_INVALID; netdev->vlanid = VLANID_MAX + 1; - r = config_parse(NULL, filename, file, "NetDev\0VLAN\0", config_item_perf_lookup, - (void*) network_gperf_lookup, false, false, netdev); + r = config_parse(NULL, filename, file, "Match\0NetDev\0VLAN\0", config_item_perf_lookup, + (void*) network_netdev_gperf_lookup, false, false, netdev); if (r < 0) { log_warning("Could not parse config file %s: %s", filename, strerror(-r)); return r; @@ -359,6 +363,12 @@ static int netdev_load_one(Manager *manager, const char *filename) { if (!netdev->filename) return log_oom(); + if (net_match_config(NULL, NULL, NULL, NULL, NULL, + netdev->match_host, netdev->match_virt, + netdev->match_kernel, netdev->match_arch, + NULL, NULL, NULL, NULL, NULL, NULL) <= 0) + return 0; + r = hashmap_put(netdev->manager->netdevs, netdev->name, netdev); if (r < 0) return r;