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=141c36f254fc08f722cb329f1b58d2a213d0a184;hp=3ebd4d7d588180e897a837373322d0ef000f24f8;hb=dc75168823540076b354135f6e2de7a9a978fbca;hpb=e2acdb6b0f68d9b4152708a9f21bf9e11f8b9e7e diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 3ebd4d7d5..141c36f25 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -22,7 +22,6 @@ #include #include -#include "path-util.h" #include "conf-files.h" #include "conf-parser.h" #include "util.h" @@ -104,6 +103,7 @@ static int network_load_one(Manager *manager, const char *filename) { network->dhcp_routes = true; network->dhcp_sendhost = true; network->dhcp_route_metric = DHCP_ROUTE_METRIC; + network->dhcp_client_identifier = DHCP_CLIENT_ID_DUID; network->llmnr = LLMNR_SUPPORT_YES; @@ -196,10 +196,10 @@ void network_free(Network *network) { free(network->filename); free(network->match_mac); - free(network->match_path); - free(network->match_driver); - free(network->match_type); - free(network->match_name); + strv_free(network->match_path); + strv_free(network->match_driver); + strv_free(network->match_type); + strv_free(network->match_name); free(network->description); free(network->dhcp_vendor_class_identifier); @@ -209,6 +209,7 @@ void network_free(Network *network) { strv_free(network->ntp); strv_free(network->dns); strv_free(network->domains); + strv_free(network->bind_carrier); netdev_unref(network->bridge); @@ -293,7 +294,7 @@ int network_get(Manager *manager, struct udev_device *device, attr = udev_device_get_sysattr_value(device, "name_assign_type"); if (attr) - (void)safe_atou8(attr, &name_assign_type); + (void) safe_atou8(attr, &name_assign_type); if (name_assign_type == NET_NAME_ENUM) log_warning("%-*s: found matching network '%s', based on potentially unpredictable ifname", @@ -600,6 +601,14 @@ int config_parse_dhcp( return 0; } +static const char* const dhcp_client_identifier_table[_DHCP_CLIENT_ID_MAX] = { + [DHCP_CLIENT_ID_MAC] = "mac", + [DHCP_CLIENT_ID_DUID] = "duid" +}; + +DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING(dhcp_client_identifier, DCHPClientIdentifier); +DEFINE_CONFIG_PARSE_ENUM(config_parse_dhcp_client_identifier, dhcp_client_identifier, DCHPClientIdentifier, "Failed to parse client identifier type"); + static const char* const llmnr_support_table[_LLMNR_SUPPORT_MAX] = { [LLMNR_SUPPORT_NO] = "no", [LLMNR_SUPPORT_YES] = "yes", @@ -651,7 +660,7 @@ int config_parse_llmnr( return 0; } -int config_parse_token( +int config_parse_ipv6token( const char* unit, const char *filename, unsigned line,