From d5bbc8385a942504bceabe1b06a2aa5934e86c73 Mon Sep 17 00:00:00 2001 From: taesub kim Date: Mon, 20 Nov 2017 10:35:42 +0900 Subject: [PATCH] Added gateway argument for route execute file Change-Id: I15023b93111d66b2c2f6958d5e9c2d85182b0d7f Signed-off-by: Taesub Kim --- src/network-state.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/network-state.c b/src/network-state.c index 2aad402..17179e4 100755 --- a/src/network-state.c +++ b/src/network-state.c @@ -1206,8 +1206,14 @@ static gboolean handle_add_route( gchar *interface, gchar *gateway, gint address_family) { const gchar *path = ROUTE_EXEC_PATH; - gchar *const args[] = { "/sbin/route", "add", "-net", ip_addr, - "netmask", netmask, "dev", interface, NULL }; + + if (gateway == NULL || strcmp(gateway, "") == 0) + gchar *const args[] = { "/sbin/route", "add", "-net", ip_addr, + "netmask", netmask, "dev", interface, NULL }; + else + gchar *const args[] = { "/sbin/route", "add", "-net", ip_addr, "gw", gateway, + "netmask", netmask, "dev", interface, NULL }; + gchar *const envs[] = { NULL }; const gchar* buf = NULL; gchar* ch = NULL; @@ -1273,8 +1279,14 @@ static gboolean handle_remove_route( gchar *interface, gchar *gateway, gint address_family) { const char *path = ROUTE_EXEC_PATH; - gchar *const args[] = { "/sbin/route", "del", "-net", ip_addr, - "netmask", netmask, "dev", interface, NULL }; + + if (gateway == NULL || strcmp(gateway, "") == 0) + gchar *const args[] = { "/sbin/route", "del", "-net", ip_addr, + "netmask", netmask, "dev", interface, NULL }; + else + gchar *const args[] = { "/sbin/route", "del", "-net", ip_addr, "gw", gateway, + "netmask", netmask, "dev", interface, NULL }; + char *const envs[] = { NULL }; const char* buf = NULL; char* ch = NULL; -- 2.7.4