diff mbox series

[1/9] service: Refactor 'nameserver_del_routes'.

Message ID 20231216082805.2221938-2-gerickson@nuovations.com (mailing list archive)
State Accepted, archived
Headers show
Series inet: Add Missing Gateway Parameter to Host Route Deletion Interfaces | expand

Commit Message

Grant Erickson Dec. 16, 2023, 8:27 a.m. UTC
This refactors 'nameserver_del_routes' into a second, helper function
'del_nameserver_route' such that host route deletion is separated from
nameserver iteration.

In addition, the structure now mirrors that of 'nameserver_add_routes'
and 'add_nameserver_route'. This is beneficial since route addition
and deletion should be symmetric.
---
 src/service.c | 41 ++++++++++++++++++++++++++---------------
 1 file changed, 26 insertions(+), 15 deletions(-)
diff mbox series

Patch

diff --git a/src/service.c b/src/service.c
index 1f2c9f54db9a..54c12532e9ca 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1367,6 +1367,27 @@  static void add_nameserver_route(int family, int index, char *nameserver,
 	}
 }
 
+static void del_nameserver_route(int family, int index, const char *nameserver,
+				const char *gw,
+				enum connman_ipconfig_type type)
+{
+	DBG("family %d index %d nameserver %s gw %s",
+		family, index, nameserver, gw);
+
+	switch (family) {
+	case AF_INET:
+		if (type != CONNMAN_IPCONFIG_TYPE_IPV6)
+			connman_inet_del_host_route(index,
+						nameserver);
+		break;
+	case AF_INET6:
+		if (type != CONNMAN_IPCONFIG_TYPE_IPV4)
+			connman_inet_del_ipv6_host_route(index,
+						nameserver);
+		break;
+	}
+}
+
 static void nameserver_add_routes(int index, char **nameservers,
 					const char *gw)
 {
@@ -1388,25 +1409,15 @@  static void nameserver_add_routes(int index, char **nameservers,
 static void nameserver_del_routes(int index, char **nameservers,
 				enum connman_ipconfig_type type)
 {
-	int i, family;
+	int i, ns_family;
 
 	for (i = 0; nameservers[i]; i++) {
-		family = connman_inet_check_ipaddress(nameservers[i]);
-		if (family < 0)
+		ns_family = connman_inet_check_ipaddress(nameservers[i]);
+		if (ns_family < 0)
 			continue;
 
-		switch (family) {
-		case AF_INET:
-			if (type != CONNMAN_IPCONFIG_TYPE_IPV6)
-				connman_inet_del_host_route(index,
-							nameservers[i]);
-			break;
-		case AF_INET6:
-			if (type != CONNMAN_IPCONFIG_TYPE_IPV4)
-				connman_inet_del_ipv6_host_route(index,
-							nameservers[i]);
-			break;
-		}
+		del_nameserver_route(ns_family, index, nameservers[i],
+			NULL, type);
 	}
 }