X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-network.c;h=cb111382f51f85718bb1ebea894d0575a2c4bb40;hp=fc62395217fd5032a8ae8f331514a4ae8b08c9e6;hb=7eb08da4b388b920c8a894b1500c9cc7dc1f31ef;hpb=2c36be2f4ba38f9097cdcdcd1e724ffa46da12c7 diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index fc6239521..cb111382f 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -63,15 +63,15 @@ static int network_load_one(Manager *manager, const char *filename) { LIST_HEAD_INIT(network->static_addresses); LIST_HEAD_INIT(network->static_routes); - network->stacked_netdevs = hashmap_new(string_hash_func, string_compare_func); + network->stacked_netdevs = hashmap_new(&string_hash_ops); if (!network->stacked_netdevs) return log_oom(); - network->addresses_by_section = hashmap_new(NULL, NULL); + network->addresses_by_section = hashmap_new(NULL); if (!network->addresses_by_section) return log_oom(); - network->routes_by_section = hashmap_new(NULL, NULL); + network->routes_by_section = hashmap_new(NULL); if (!network->routes_by_section) return log_oom(); @@ -85,11 +85,12 @@ static int network_load_one(Manager *manager, const char *filename) { network->dhcp_hostname = true; network->dhcp_routes = true; network->dhcp_sendhost = true; + network->dhcp_route_metric = DHCP_ROUTE_METRIC; network->llmnr = LLMNR_SUPPORT_YES; r = config_parse(NULL, filename, file, - "Match\0Network\0Address\0Route\0DHCP\0DHCPv4\0", + "Match\0Network\0Address\0Route\0DHCP\0DHCPv4\0BridgePort\0", config_item_perf_lookup, network_network_gperf_lookup, false, false, true, network); if (r < 0) @@ -130,10 +131,8 @@ int network_load(Manager *manager) { network_free(network); r = conf_files_list_strv(&files, ".network", NULL, network_dirs); - if (r < 0) { - log_error("Failed to enumerate network files: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to enumerate network files: %m"); STRV_FOREACH_BACKWARDS(f, files) { r = network_load_one(manager, *f); @@ -217,7 +216,7 @@ int network_get(Manager *manager, struct udev_device *device, udev_device_get_driver(udev_device_get_parent(device)), udev_device_get_property_value(device, "ID_NET_DRIVER"), udev_device_get_devtype(device), - ifname)) { + ifname, false)) { log_debug("%-*s: found matching network '%s'", IFNAMSIZ, ifname, network->filename); *ret = network;