libnm/keyfile: replace dummy writer implementation with flag to skip writing

This commit is contained in:
Thomas Haller
2018-04-16 11:28:54 +02:00
parent 3695d5273a
commit a5c026f90e

View File

@@ -1672,15 +1672,6 @@ addr_writer (KeyfileWriterInfo *info,
write_ip_values (info->keyfile, setting_name, array, gateway, FALSE); write_ip_values (info->keyfile, setting_name, array, gateway, FALSE);
} }
static void
gateway_writer (KeyfileWriterInfo *info,
NMSetting *setting,
const char *key,
const GValue *value)
{
/* skip */
}
static void static void
route_writer (KeyfileWriterInfo *info, route_writer (KeyfileWriterInfo *info,
NMSetting *setting, NMSetting *setting,
@@ -2005,15 +1996,6 @@ cert_writer (KeyfileWriterInfo *info,
cert_writer_default (info->connection, info->keyfile, &type_data); cert_writer_default (info->connection, info->keyfile, &type_data);
} }
static void
null_writer (KeyfileWriterInfo *info,
NMSetting *setting,
const char *key,
const GValue *value)
{
/* skip */
}
/*****************************************************************************/ /*****************************************************************************/
typedef struct { typedef struct {
@@ -2025,7 +2007,8 @@ typedef struct {
NMSetting *setting, NMSetting *setting,
const char *key, const char *key,
const GValue *value); const GValue *value);
gboolean check_for_key; bool check_for_key:1;
bool writer_skip:1;
} ParseInfoProperty; } ParseInfoProperty;
#define PARSE_INFO_PROPERTY(_property_name, ...) \ #define PARSE_INFO_PROPERTY(_property_name, ...) \
@@ -2168,7 +2151,7 @@ static const ParseInfoSetting parse_infos[] = {
.writer = dns_writer, .writer = dns_writer,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_GATEWAY, PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_GATEWAY,
.writer = gateway_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_ROUTES, PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_ROUTES,
.parser = ip_address_or_route_parser, .parser = ip_address_or_route_parser,
@@ -2191,7 +2174,7 @@ static const ParseInfoSetting parse_infos[] = {
.writer = dns_writer, .writer = dns_writer,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_GATEWAY, PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_GATEWAY,
.writer = gateway_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_ROUTES, PARSE_INFO_PROPERTY (NM_SETTING_IP_CONFIG_ROUTES,
.parser = ip_address_or_route_parser, .parser = ip_address_or_route_parser,
@@ -2226,49 +2209,49 @@ static const ParseInfoSetting parse_infos[] = {
.parser = team_config_parser, .parser = team_config_parser,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_LINK_WATCHERS, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_LINK_WATCHERS,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_MCAST_REJOIN_COUNT, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_MCAST_REJOIN_COUNT,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_NOTIFY_PEERS_COUNT, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_NOTIFY_PEERS_COUNT,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_ACTIVE, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_ACTIVE,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_FAST_RATE, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_FAST_RATE,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_MIN_PORTS, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_MIN_PORTS,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_SYS_PRIO, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_SYS_PRIO,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_TX_BALANCER, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_TX_BALANCER,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_TX_HASH, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_RUNNER_TX_HASH,
.writer = null_writer, .writer_skip = TRUE,
), ),
), ),
), ),
@@ -2279,22 +2262,22 @@ static const ParseInfoSetting parse_infos[] = {
.parser = team_config_parser, .parser = team_config_parser,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_LACP_KEY, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_LACP_KEY,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_LACP_PRIO, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_LACP_PRIO,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_LINK_WATCHERS, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_LINK_WATCHERS,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_PRIO, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_PRIO,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_QUEUE_ID, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_QUEUE_ID,
.writer = null_writer, .writer_skip = TRUE,
), ),
PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_STICKY, PARSE_INFO_PROPERTY (NM_SETTING_TEAM_PORT_STICKY,
.writer = null_writer, .writer_skip = TRUE,
), ),
), ),
), ),
@@ -2852,9 +2835,13 @@ write_setting_value (NMSetting *setting,
} }
pip = _parse_info_find (setting_name, key); pip = _parse_info_find (setting_name, key);
if (pip && pip->writer) { if (pip) {
pip->writer (info, setting, key, value); if (pip->writer_skip)
return; return;
if (pip->writer) {
pip->writer (info, setting, key, value);
return;
}
} }
if (type == G_TYPE_STRING) { if (type == G_TYPE_STRING) {