jsoninfo: simplify /plugins
authorFerry Huberts <ferry.huberts@pelagic.nl>
Sun, 6 Mar 2016 11:38:58 +0000 (12:38 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Sun, 6 Mar 2016 16:30:51 +0000 (17:30 +0100)
Treat all plugin parameters as strings, just like the
plugin loader does and just like in the configuration
file.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/jsoninfo/src/olsrd_jsoninfo.c

index a800eff..bfb3e50 100644 (file)
@@ -941,31 +941,20 @@ void ipc_print_config(struct autobuf *abuf) {
 }
 
 void ipc_print_plugins(struct autobuf *abuf) {
-  struct plugin_entry *pentry;
-  struct plugin_param *pparam;
   abuf_json_mark_object(true, true, abuf, "plugins");
-  if (olsr_cnf->plugins)
-    for (pentry = olsr_cnf->plugins; pentry; pentry = pentry->next) {
+  if (olsr_cnf->plugins) {
+    struct plugin_entry *plugin;
+
+    for (plugin = olsr_cnf->plugins; plugin; plugin = plugin->next) {
+      struct plugin_param *param;
+
       abuf_json_mark_array_entry(true, abuf);
-      abuf_json_string(abuf, "plugin", pentry->name);
-      for (pparam = pentry->params; pparam; pparam = pparam->next) {
-        int i, keylen = strlen(pparam->key);
-        char key[keylen + 1];
-        long value;
-        char valueTest[256];
-        strcpy(key, pparam->key);
-        for (i = 0; i < keylen; i++)
-          key[i] = tolower(key[i]);
-
-        // test if a int/long and set as such in JSON
-        value = atol(pparam->value);
-        snprintf(valueTest, 255, "%li", value);
-        if (!strcmp(valueTest, pparam->value))
-          abuf_json_int(abuf, key, value);
-        else
-          abuf_json_string(abuf, key, pparam->value);
+      abuf_json_string(abuf, "plugin", plugin->name);
+      for (param = plugin->params; param; param = param->next) {
+        abuf_json_string(abuf, param->key, param->value);
       }
       abuf_json_mark_array_entry(false, abuf);
     }
+  }
   abuf_json_mark_object(false, true, abuf, NULL);
 }