2017-11-18 17:09:20 +01:00
|
|
|
/* SPDX-License-Identifier: LGPL-2.1+ */
|
2015-08-27 13:59:06 +02:00
|
|
|
#pragma once
|
|
|
|
|
2018-05-22 13:10:17 +02:00
|
|
|
#include "conf-parser.h"
|
2019-02-28 08:30:14 +01:00
|
|
|
#include "hash-funcs.h"
|
2015-08-27 13:59:06 +02:00
|
|
|
#include "macro.h"
|
|
|
|
|
|
|
|
typedef enum AddressFamilyBoolean {
|
|
|
|
/* This is a bitmask, though it usually doesn't feel that way! */
|
2019-02-19 04:34:53 +01:00
|
|
|
ADDRESS_FAMILY_NO = 0,
|
|
|
|
ADDRESS_FAMILY_IPV4 = 1 << 0,
|
|
|
|
ADDRESS_FAMILY_IPV6 = 1 << 1,
|
|
|
|
ADDRESS_FAMILY_YES = ADDRESS_FAMILY_IPV4 | ADDRESS_FAMILY_IPV6,
|
2015-08-27 13:59:06 +02:00
|
|
|
_ADDRESS_FAMILY_BOOLEAN_MAX,
|
|
|
|
_ADDRESS_FAMILY_BOOLEAN_INVALID = -1,
|
|
|
|
} AddressFamilyBoolean;
|
|
|
|
|
2019-02-28 08:30:14 +01:00
|
|
|
typedef struct NetworkConfigSection {
|
|
|
|
unsigned line;
|
|
|
|
char filename[];
|
|
|
|
} NetworkConfigSection;
|
|
|
|
|
2018-05-22 13:10:17 +02:00
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_address_family_boolean);
|
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_address_family_boolean_with_kernel);
|
2015-08-27 13:59:06 +02:00
|
|
|
|
|
|
|
const char *address_family_boolean_to_string(AddressFamilyBoolean b) _const_;
|
|
|
|
AddressFamilyBoolean address_family_boolean_from_string(const char *s) _const_;
|
2018-02-26 15:33:16 +01:00
|
|
|
|
|
|
|
int kernel_route_expiration_supported(void);
|
2019-02-28 08:30:14 +01:00
|
|
|
|
|
|
|
int network_config_section_new(const char *filename, unsigned line, NetworkConfigSection **s);
|
|
|
|
void network_config_section_free(NetworkConfigSection *network);
|
|
|
|
DEFINE_TRIVIAL_CLEANUP_FUNC(NetworkConfigSection*, network_config_section_free);
|
|
|
|
extern const struct hash_ops network_config_hash_ops;
|