Skip to content

Commit

Permalink
refactor(parse): reuse handle_generic_bool function
Browse files Browse the repository at this point in the history
  • Loading branch information
KhooHaoYit committed May 11, 2024
1 parent 1b6d60e commit f5571cc
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 18 deletions.
26 changes: 12 additions & 14 deletions src/parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -543,29 +543,27 @@ handle_generic_datalist(NetplanParser *npp, yaml_node_t* node, const char* key_p
* @data: offset into entryptr struct where the use-domains field to write is located
*/
STATIC gboolean
handle_generic_use_domains(NetplanParser* npp, yaml_node_t* node, const void* entryptr, const void* data, GError** error)
handle_generic_use_domains(NetplanParser* npp, yaml_node_t* node, void* entryptr, const void* data, GError** error)
{
g_assert(entryptr);
NetplanUseDomainMode v;
guint offset = GPOINTER_TO_UINT(data);
NetplanUseDomainMode* dest = ((void*) entryptr + offset);

if (g_ascii_strcasecmp(scalar(node), "false") == 0 ||
g_ascii_strcasecmp(scalar(node), "off") == 0 ||
g_ascii_strcasecmp(scalar(node), "no") == 0 ||
g_ascii_strcasecmp(scalar(node), "n") == 0)
v = NETPLAN_USE_DOMAIN_MODE_FALSE;
else if (g_ascii_strcasecmp(scalar(node), "true") == 0 ||
g_ascii_strcasecmp(scalar(node), "on") == 0 ||
g_ascii_strcasecmp(scalar(node), "yes") == 0 ||
g_ascii_strcasecmp(scalar(node), "y") == 0)
v = NETPLAN_USE_DOMAIN_MODE_TRUE;
else if (g_ascii_strcasecmp(scalar(node), "route") == 0)
gboolean ret = handle_generic_bool(npp, node, entryptr, data, error);

if (ret) {
if (*dest) {
v = NETPLAN_USE_DOMAIN_MODE_TRUE;
} else {
v = NETPLAN_USE_DOMAIN_MODE_FALSE;
}
} else if (g_ascii_strcasecmp(scalar(node), "route") == 0) {
v = NETPLAN_USE_DOMAIN_MODE_ROUTE;
else
} else {
return yaml_error(npp, node, error,
"Invalid use-domains options '%s', must be a boolean, or the special value 'route'.",
scalar(node));
}

*dest = v;
mark_data_as_dirty(npp, dest);
Expand Down
8 changes: 4 additions & 4 deletions tests/generator/test_ipv6_ra_overrides.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ def assert_ipv6_ra_overrides_key_value(
self.assert_networkd({'engreen.network': networkd_config})

def test_ipv6_ra_overrides_use_dns(self):
self.assert_ipv6_ra_overrides_key_value('use-dns', 'no', 'UseDNS', 'false')
self.assert_ipv6_ra_overrides_key_value('use-dns', 'yes', 'UseDNS', 'true')
self.assert_ipv6_ra_overrides_key_value('use-dns', 'false', 'UseDNS', 'false')
self.assert_ipv6_ra_overrides_key_value('use-dns', 'true', 'UseDNS', 'true')

def test_ipv6_ra_overrides_use_domains(self):
self.assert_ipv6_ra_overrides_key_value('use-domains', 'n', 'UseDomains', 'false')
self.assert_ipv6_ra_overrides_key_value('use-domains', 'y', 'UseDomains', 'true')
self.assert_ipv6_ra_overrides_key_value('use-domains', 'false', 'UseDomains', 'false')
self.assert_ipv6_ra_overrides_key_value('use-domains', 'true', 'UseDomains', 'true')
self.assert_ipv6_ra_overrides_key_value('use-domains', 'route', 'UseDomains', 'route')

def test_ipv6_ra_overrides_table(self):
Expand Down

0 comments on commit f5571cc

Please sign in to comment.