};
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(dhcp_use_domains, DHCPUseDomains, DHCP_USE_DOMAINS_YES);
+
+static const char * const dhcp_option_data_type_table[_DHCP_OPTION_DATA_MAX] = {
+ [DHCP_OPTION_DATA_UINT8] = "uint8",
+ [DHCP_OPTION_DATA_UINT16] = "uint16",
+ [DHCP_OPTION_DATA_UINT32] = "uint32",
+ [DHCP_OPTION_DATA_STRING] = "string",
+ [DHCP_OPTION_DATA_IPV4ADDRESS] = "ipv4address",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(dhcp_option_data_type, DHCPOptionDataType);
_DHCP_USE_DOMAINS_INVALID = -1,
} DHCPUseDomains;
+typedef enum DHCPOptionDataType {
+ DHCP_OPTION_DATA_UINT8,
+ DHCP_OPTION_DATA_UINT16,
+ DHCP_OPTION_DATA_UINT32,
+ DHCP_OPTION_DATA_STRING,
+ DHCP_OPTION_DATA_IPV4ADDRESS,
+ _DHCP_OPTION_DATA_MAX,
+ _DHCP_OPTION_DATA_INVALID,
+} DHCPOptionDataType;
+
typedef struct DUID {
/* Value of Type in [DHCP] section */
DUIDType type;
const char* dhcp_use_domains_to_string(DHCPUseDomains p) _const_;
DHCPUseDomains dhcp_use_domains_from_string(const char *s) _pure_;
+const char *dhcp_option_data_type_to_string(DHCPOptionDataType d) _const_;
+DHCPOptionDataType dhcp_option_data_type_from_string(const char *d) _pure_;
+
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp);
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_use_dns);
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_use_domains);
}
}
-static const char * const dhcp_raw_option_data_type_table[_DHCP_RAW_OPTION_DATA_MAX] = {
- [DHCP_RAW_OPTION_DATA_UINT8] = "uint8",
- [DHCP_RAW_OPTION_DATA_UINT16] = "uint16",
- [DHCP_RAW_OPTION_DATA_UINT32] = "uint32",
- [DHCP_RAW_OPTION_DATA_STRING] = "string",
- [DHCP_RAW_OPTION_DATA_IPV4ADDRESS] = "ipv4address",
-};
-
-DEFINE_STRING_TABLE_LOOKUP(dhcp_raw_option_data_type, DHCPRawOption);
-
int config_parse_dhcp_server_raw_option_data(
const char *unit,
const char *filename,
_cleanup_(sd_dhcp_raw_option_unrefp) sd_dhcp_raw_option *opt = NULL, *old = NULL;
_cleanup_free_ char *word = NULL, *q = NULL;
union in_addr_union addr;
+ DHCPOptionDataType type;
Network *network = data;
uint16_t uint16_data;
uint32_t uint32_data;
uint8_t uint8_data;
- DHCPRawOption type;
const char *p;
void *udata;
ssize_t sz;
return 0;
}
- type = dhcp_raw_option_data_type_from_string(word);
+ type = dhcp_option_data_type_from_string(word);
if (type < 0) {
log_syntax(unit, LOG_ERR, filename, line, 0,
"Invalid DHCP server send data type, ignoring assignment: %s", p);
}
switch(type) {
- case DHCP_RAW_OPTION_DATA_UINT8:{
+ case DHCP_OPTION_DATA_UINT8:{
r = safe_atou8(p, &uint8_data);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, r,
sz = sizeof(uint8_t);
break;
}
- case DHCP_RAW_OPTION_DATA_UINT16:{
+ case DHCP_OPTION_DATA_UINT16:{
r = safe_atou16(p, &uint16_data);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, r,
sz = sizeof(uint16_t);
break;
}
- case DHCP_RAW_OPTION_DATA_UINT32: {
+ case DHCP_OPTION_DATA_UINT32: {
r = safe_atou32(p, &uint32_data);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, r,
break;
}
- case DHCP_RAW_OPTION_DATA_IPV4ADDRESS: {
+ case DHCP_OPTION_DATA_IPV4ADDRESS: {
r = in_addr_from_string(AF_INET, p, &addr);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, r,
sz = sizeof(addr.in.s_addr);
break;
}
- case DHCP_RAW_OPTION_DATA_STRING:
+ case DHCP_OPTION_DATA_STRING:
sz = cunescape(p, 0, &q);
if (sz < 0) {
log_syntax(unit, LOG_ERR, filename, line, sz,
typedef struct Link Link;
-typedef enum DHCPRawOption {
- DHCP_RAW_OPTION_DATA_UINT8,
- DHCP_RAW_OPTION_DATA_UINT16,
- DHCP_RAW_OPTION_DATA_UINT32,
- DHCP_RAW_OPTION_DATA_STRING,
- DHCP_RAW_OPTION_DATA_IPV4ADDRESS,
- _DHCP_RAW_OPTION_DATA_MAX,
- _DHCP_RAW_OPTION_DATA_INVALID,
-} DHCPRawOption;
-
-const char *dhcp_raw_option_data_type_to_string(DHCPRawOption d) _const_;
-DHCPRawOption dhcp_raw_option_data_type_from_string(const char *d) _pure_;
-
int dhcp4_server_configure(Link *link);
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_dns);