aboutgitcodebugslistschat
path: root/conf.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2023-08-03 17:19:41 +1000
committerStefano Brivio <sbrivio@redhat.com>2023-08-04 01:24:52 +0200
commiteff3bcb24547e671e63df9b70157c3ff9bb9f95a (patch)
treea5525772899f39b4fe48644b567a5bca937231fa /conf.c
parente96182e9c28197a8f868df5d2a9975bc51a090e9 (diff)
downloadpasst-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.tar
passt-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.tar.gz
passt-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.tar.bz2
passt-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.tar.lz
passt-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.tar.xz
passt-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.tar.zst
passt-eff3bcb24547e671e63df9b70157c3ff9bb9f95a.zip
netlink: Split nl_addr() into separate operation functions
nl_addr() can perform three quite different operations based on the 'op' parameter, each of which uses a different subset of the parameters. Split them up into a function for each operation. This does use more lines of code, but the overlap wasn't that great, and the separated logic is much easier to follow. It's also clearer in the callers what we expect the netlink operations to do, and what information it uses. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Minor formatting fixes in pasta_ns_conf()] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'conf.c')
-rw-r--r--conf.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/conf.c b/conf.c
index 8fa5322..2c2eb05 100644
--- a/conf.c
+++ b/conf.c
@@ -651,10 +651,8 @@ static unsigned int conf_ip4(unsigned int ifi,
if (IN4_IS_ADDR_UNSPECIFIED(&ip4->gw))
nl_route(NL_GET, ifi, 0, AF_INET, &ip4->gw);
- if (IN4_IS_ADDR_UNSPECIFIED(&ip4->addr)) {
- nl_addr(NL_GET, ifi, 0, AF_INET,
- &ip4->addr, &ip4->prefix_len, NULL);
- }
+ if (IN4_IS_ADDR_UNSPECIFIED(&ip4->addr))
+ nl_addr_get(ifi, AF_INET, &ip4->addr, &ip4->prefix_len, NULL);
if (!ip4->prefix_len) {
in_addr_t addr = ntohl(ip4->addr.s_addr);
@@ -704,9 +702,9 @@ static unsigned int conf_ip6(unsigned int ifi,
if (IN6_IS_ADDR_UNSPECIFIED(&ip6->gw))
nl_route(NL_GET, ifi, 0, AF_INET6, &ip6->gw);
- nl_addr(NL_GET, ifi, 0, AF_INET6,
- IN6_IS_ADDR_UNSPECIFIED(&ip6->addr) ? &ip6->addr : NULL,
- &prefix_len, &ip6->addr_ll);
+ nl_addr_get(ifi, AF_INET6,
+ IN6_IS_ADDR_UNSPECIFIED(&ip6->addr) ? &ip6->addr : NULL,
+ &prefix_len, &ip6->addr_ll);
memcpy(&ip6->addr_seen, &ip6->addr, sizeof(ip6->addr));
memcpy(&ip6->addr_ll_seen, &ip6->addr_ll, sizeof(ip6->addr_ll));