network: use DEFINE_STRING_TABLE_LOOKUP() macro for AddressFamilyBoolean
This commit is contained in:
@@ -51,7 +51,7 @@ Network.Tunnel, config_parse_stacked_netdev,
|
||||
Network.VRF, config_parse_ifname, 0, offsetof(Network, vrf_name)
|
||||
Network.DHCP, config_parse_dhcp, 0, offsetof(Network, dhcp)
|
||||
Network.DHCPServer, config_parse_bool, 0, offsetof(Network, dhcp_server)
|
||||
Network.LinkLocalAddressing, config_parse_address_family_boolean, 0, offsetof(Network, link_local)
|
||||
Network.LinkLocalAddressing, config_parse_link_local_address_family_boolean, 0, offsetof(Network, link_local)
|
||||
Network.IPv4LLRoute, config_parse_bool, 0, offsetof(Network, ipv4ll_route)
|
||||
Network.IPv6Token, config_parse_ipv6token, 0, offsetof(Network, ipv6_token)
|
||||
Network.LLDP, config_parse_lldp_mode, 0, offsetof(Network, lldp_mode)
|
||||
|
||||
+18
-38
@@ -8,46 +8,26 @@
|
||||
#include "string-util.h"
|
||||
#include "util.h"
|
||||
|
||||
const char *address_family_boolean_to_string(AddressFamilyBoolean b) {
|
||||
if (IN_SET(b, ADDRESS_FAMILY_YES, ADDRESS_FAMILY_NO))
|
||||
return yes_no(b == ADDRESS_FAMILY_YES);
|
||||
static const char * const address_family_boolean_table[_ADDRESS_FAMILY_BOOLEAN_MAX] = {
|
||||
[ADDRESS_FAMILY_NO] = "no",
|
||||
[ADDRESS_FAMILY_YES] = "yes",
|
||||
[ADDRESS_FAMILY_IPV4] = "ipv4",
|
||||
[ADDRESS_FAMILY_IPV6] = "ipv6",
|
||||
};
|
||||
|
||||
if (b == ADDRESS_FAMILY_IPV4)
|
||||
return "ipv4";
|
||||
if (b == ADDRESS_FAMILY_IPV6)
|
||||
return "ipv6";
|
||||
if (b == ADDRESS_FAMILY_FALLBACK)
|
||||
return "fallback";
|
||||
if (b == ADDRESS_FAMILY_FALLBACK)
|
||||
return "ipv4-fallback";
|
||||
static const char * const link_local_address_family_boolean_table[_ADDRESS_FAMILY_BOOLEAN_MAX] = {
|
||||
[ADDRESS_FAMILY_NO] = "no",
|
||||
[ADDRESS_FAMILY_YES] = "yes",
|
||||
[ADDRESS_FAMILY_IPV4] = "ipv4",
|
||||
[ADDRESS_FAMILY_IPV6] = "ipv6",
|
||||
[ADDRESS_FAMILY_FALLBACK] = "fallback",
|
||||
[ADDRESS_FAMILY_FALLBACK_IPV4] = "ipv4-fallback",
|
||||
};
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
AddressFamilyBoolean address_family_boolean_from_string(const char *s) {
|
||||
int r;
|
||||
|
||||
/* Make this a true superset of a boolean */
|
||||
|
||||
r = parse_boolean(s);
|
||||
if (r > 0)
|
||||
return ADDRESS_FAMILY_YES;
|
||||
if (r == 0)
|
||||
return ADDRESS_FAMILY_NO;
|
||||
|
||||
if (streq(s, "ipv4"))
|
||||
return ADDRESS_FAMILY_IPV4;
|
||||
if (streq(s, "ipv6"))
|
||||
return ADDRESS_FAMILY_IPV6;
|
||||
if (streq(s, "fallback"))
|
||||
return ADDRESS_FAMILY_FALLBACK;
|
||||
if (streq(s, "ipv4-fallback"))
|
||||
return ADDRESS_FAMILY_FALLBACK_IPV4;
|
||||
|
||||
return _ADDRESS_FAMILY_BOOLEAN_INVALID;
|
||||
}
|
||||
|
||||
DEFINE_CONFIG_PARSE_ENUM(config_parse_address_family_boolean, address_family_boolean, AddressFamilyBoolean, "Failed to parse option");
|
||||
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(address_family_boolean, AddressFamilyBoolean, ADDRESS_FAMILY_YES);
|
||||
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(link_local_address_family_boolean, AddressFamilyBoolean, ADDRESS_FAMILY_YES);
|
||||
DEFINE_CONFIG_PARSE_ENUM(config_parse_link_local_address_family_boolean, link_local_address_family_boolean,
|
||||
AddressFamilyBoolean, "Failed to parse option");
|
||||
|
||||
int config_parse_address_family_boolean_with_kernel(
|
||||
const char* unit,
|
||||
|
||||
@@ -23,11 +23,14 @@ typedef struct NetworkConfigSection {
|
||||
char filename[];
|
||||
} NetworkConfigSection;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_address_family_boolean);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_link_local_address_family_boolean);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_address_family_boolean_with_kernel);
|
||||
|
||||
const char *address_family_boolean_to_string(AddressFamilyBoolean b) _const_;
|
||||
AddressFamilyBoolean address_family_boolean_from_string(const char *s) _const_;
|
||||
AddressFamilyBoolean address_family_boolean_from_string(const char *s) _pure_;
|
||||
|
||||
const char *link_local_address_family_boolean_to_string(AddressFamilyBoolean b) _const_;
|
||||
AddressFamilyBoolean link_local_address_family_boolean_from_string(const char *s) _pure_;
|
||||
|
||||
int kernel_route_expiration_supported(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user