diff mbox series

[29/90] connection: Leverage 'unset_default_gateway' in 'del_gateway_routes'.

Message ID 20231206235056.322578-30-gerickson@nuovations.com (mailing list archive)
State Not Applicable, archived
Headers show
Series Add Gateway Low-priority Default Routes for Non-default Services | expand

Commit Message

Grant Erickson Dec. 6, 2023, 11:49 p.m. UTC
From: Grant Erickson <erick205@umn.edu>

Much of the logic in 'del_gateway_routes' is otherwise identical to
that of 'unset_default_gateway'. However, it side steps managing the
gateway state, type, and flags state, potentially leaving
inconsistencies.

Rather than this separate-but-equal existence, simply leverage
'unset_default_gateway' in 'del_gateway_routes'.
---
 src/connection.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)
diff mbox series

Patch

diff --git a/src/connection.c b/src/connection.c
index 179649a714bd..702e08dbe37c 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -203,6 +203,10 @@  struct mutate_default_gateway_ops {
 				struct gateway_config *config);
 };
 
+static int unset_default_gateway(struct gateway_data *data,
+				enum connman_ipconfig_type type,
+				const char *function);
+
 /*
  * These are declared as 'const char *const' to effect an immutable
  * pointer to an immutable null-terminated character string such that
@@ -958,15 +962,12 @@  static int del_gateway_routes(struct gateway_data *data,
 						data->index,
 						data->ipv4_config->vpn_ip);
 
-		} else if (is_ipv4_addr_any_str(data->ipv4_config->gateway)) {
-			status4 = connman_inet_clear_gateway_interface(
-								data->index);
 		} else {
 			connman_inet_del_host_route(data->index,
 						data->ipv4_config->gateway);
-			status4 = connman_inet_clear_gateway_address(
-						data->index,
-						data->ipv4_config->gateway);
+
+			status4 = UNSET_DEFAULT_GATEWAY(data, type);
+
 		}
 	}
 
@@ -976,15 +977,12 @@  static int del_gateway_routes(struct gateway_data *data,
 						data->index,
 						data->ipv6_config->vpn_ip);
 
-		} else if (is_ipv6_addr_any_str(data->ipv6_config->gateway)) {
-			status6 = connman_inet_clear_ipv6_gateway_interface(
-								data->index);
 		} else {
 			connman_inet_del_ipv6_host_route(data->index,
 						data->ipv6_config->gateway);
-			status6 = connman_inet_clear_ipv6_gateway_address(
-						data->index,
-						data->ipv6_config->gateway);
+
+			status6 = UNSET_DEFAULT_GATEWAY(data, type);
+
 		}
 	}