From 86ec963b18cd2aae3fe470093c03a2a4f7e48ddb Mon Sep 17 00:00:00 2001 From: taesub kim Date: Mon, 20 Nov 2017 18:37:59 +0900 Subject: [PATCH] Added gateway argument for route execute file #2 Change-Id: I5fb48e490039661255d7b2f7d1ca8435cccb060f Signed-off-by: Taesub Kim --- include/ip-conflict-detect.h | 0 src/ip-conflict-detect.c | 0 src/network-state.c | 26 ++++++++++---------------- 3 files changed, 10 insertions(+), 16 deletions(-) mode change 100644 => 100755 include/ip-conflict-detect.h mode change 100644 => 100755 src/ip-conflict-detect.c diff --git a/include/ip-conflict-detect.h b/include/ip-conflict-detect.h old mode 100644 new mode 100755 diff --git a/src/ip-conflict-detect.c b/src/ip-conflict-detect.c old mode 100644 new mode 100755 diff --git a/src/network-state.c b/src/network-state.c index 17179e4..794db9f 100755 --- a/src/network-state.c +++ b/src/network-state.c @@ -1206,14 +1206,11 @@ static gboolean handle_add_route( gchar *interface, gchar *gateway, gint address_family) { const gchar *path = ROUTE_EXEC_PATH; - - 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 gw_str[64] = {0,}; + if (gateway != NULL && strlen(gateway) > 1) + g_snprintf(gw_str, 64, "gw %s", gateway); + gchar *const args[] = { "/sbin/route", "add", "-net", ip_addr, gw_str, + "netmask", netmask, "dev", interface, NULL }; gchar *const envs[] = { NULL }; const gchar* buf = NULL; gchar* ch = NULL; @@ -1279,14 +1276,11 @@ static gboolean handle_remove_route( gchar *interface, gchar *gateway, gint address_family) { const char *path = ROUTE_EXEC_PATH; - - 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 }; - + gchar gw_str[64] = {0,}; + if (gateway != NULL && strlen(gateway) > 1) + g_snprintf(gw_str, 64, "gw %s", gateway); + gchar *const args[] = { "/sbin/route", "del", "-net", ip_addr, gw_str, + "netmask", netmask, "dev", interface, NULL }; char *const envs[] = { NULL }; const char* buf = NULL; char* ch = NULL; -- 2.7.4