[Olsr-dev] [PATCH] dyn gw plugin - add PingCmd parameter

Ferry Huberts (spam-protected)
Tue Oct 7 10:46:10 CEST 2014


>From d04ee8dd44b4a0c8cca80d85c3d76eccc9fba6e7 Mon Sep 17 00:00:00 2001
From: Ferry Huberts <(spam-protected)>
Date: Tue, 7 Oct 2014 10:40:09 +0200
Subject: [PATCH] fixups

---
 lib/dyn_gw/src/olsrd_dyn_gw.c | 9 +++------
 lib/dyn_gw/src/olsrd_dyn_gw.h | 4 ++--
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/lib/dyn_gw/src/olsrd_dyn_gw.c b/lib/dyn_gw/src/olsrd_dyn_gw.c
index e283d71..d5883d9 100644
--- a/lib/dyn_gw/src/olsrd_dyn_gw.c
+++ b/lib/dyn_gw/src/olsrd_dyn_gw.c
@@ -129,7 +129,7 @@ static bool check_gw(union olsr_ip_addr *, uint8_t, struct ping_list *);
 
 static int ping_is_possible(struct ping_list *);
 
-static char ping_cmd[PING_CMD_MAX_LEN] = { DEFAULT_PING_CHECK_INTERVAL };
+static char ping_cmd[PING_CMD_MAX_LEN] = { DEFAULT_PING_CMD };
 
 /* Event function to register with the scheduler */
 static void olsr_event_doing_hna(void *);
@@ -214,13 +214,10 @@ set_plugin_cmd(const char *value, void *data __attribute__ ((unused)), set_plugi
   size_t len = strlen(value);
 
   if (len < PING_CMD_MAX_LEN) {
-    memcpy(ping_cmd, value, len);
-    OLSR_PRINTF(2, "Set ping command to: %s\n", ping_cmd);
+    strncpy(ping_cmd, value, sizeof(ping_cmd));
     return 0;
   }
 
-  OLSR_PRINTF(0, "Ping command exceed max length: %d > %zu", PING_CMD_MAX_LEN, len);
-
   return 1;
 }
 
@@ -556,7 +553,7 @@ ping_is_possible(struct ping_list *the_ping_list)
 {
   struct ping_list *list;
   for (list = the_ping_list; list; list = list->next) {
-    char ping_command[96];
+    char ping_command[sizeof(ping_cmd) + INET6_ADDRSTRLEN];
     snprintf(ping_command, sizeof(ping_command), ping_cmd, list->ping_address);
     olsr_printf(1, "\nDo ping on (%s) %s ...\n", ping_cmd, list->ping_address);
     if (system(ping_command) == 0) {
diff --git a/lib/dyn_gw/src/olsrd_dyn_gw.h b/lib/dyn_gw/src/olsrd_dyn_gw.h
index bdca978..5174c63 100644
--- a/lib/dyn_gw/src/olsrd_dyn_gw.h
+++ b/lib/dyn_gw/src/olsrd_dyn_gw.h
@@ -54,8 +54,8 @@
 
 #define DEFAULT_HNA_CHECK_INTERVAL	1000
 #define DEFAULT_PING_CHECK_INTERVAL	5
-#define DEFAULT_PING_CMD                "ping -c 1 -q %s"
-#define PING_CMD_MAX_LEN                64
+#define DEFAULT_PING_CMD            "ping -c 1 -q %s"
+#define PING_CMD_MAX_LEN            64
 
 int olsrd_plugin_init(void);
 
-- 
1.9.3





More information about the Olsr-dev mailing list