diff options
Diffstat (limited to 'net/gkrellm-snmp/patches/patch-ab')
-rw-r--r-- | net/gkrellm-snmp/patches/patch-ab | 109 |
1 files changed, 101 insertions, 8 deletions
diff --git a/net/gkrellm-snmp/patches/patch-ab b/net/gkrellm-snmp/patches/patch-ab index 8293ef1016e..505070eeeef 100644 --- a/net/gkrellm-snmp/patches/patch-ab +++ b/net/gkrellm-snmp/patches/patch-ab @@ -1,12 +1,105 @@ -$NetBSD: patch-ab,v 1.1.1.1 2001/10/31 00:28:26 damon Exp $ +$NetBSD: patch-ab,v 1.2 2004/02/24 23:34:11 cube Exp $ ---- gkrellm_snmp.c.orig Thu Sep 6 22:15:30 2001 +--- gkrellm_snmp.c.orig 2003-09-21 14:49:36.000000000 +0200 +++ gkrellm_snmp.c -@@ -88,6 +88,7 @@ - GtkTooltips *tooltip; - }; +@@ -59,7 +59,7 @@ -+oid *snmp_parse_oid(const char *argv, oid *root, size_t *rootlen); + #include <gkrellm2/gkrellm.h> - /* - * caller needs to free the returned gchar* +-/* #define STREAM /* test for Lou Cephyr */ ++/* #define STREAM -- test for Lou Cephyr */ + + + #define SNMP_PLUGIN_MAJOR_VERSION 0 +@@ -67,6 +67,7 @@ + + #define PLUGIN_CONFIG_NAME "SNMP" + #define PLUGIN_CONFIG_KEYWORD "snmp_monitor" ++#define PLUGIN_MONITOR_KEYWORD "monitor" + + + typedef struct Reader Reader; +@@ -967,13 +968,16 @@ save_plugin_config(FILE *f) + unit = g_strdelimit(g_strdup(reader->unit), STR_DELIMITERS, '_'); + if (label[0] == '\0') label = strdup("_"); + if (unit[0] == '\0') unit = strdup("_"); +- fprintf(f, "%s %s snmp://%s@%s:%d/%s %s %d %d %d %d\n", ++ fprintf(f, "%s %s %s snmp://%s@%s:%d/%s %s %d %d %d %d\n", + PLUGIN_CONFIG_KEYWORD, ++ PLUGIN_MONITOR_KEYWORD, + label, reader->community, + reader->peer, reader->port, + reader->oid_str, unit, + reader->delay, reader->delta, + reader->divisor, reader->scale); ++ gkrellm_save_chartconfig(f, reader->chart_config, PLUGIN_CONFIG_KEYWORD, ++ label); + g_free(label); + g_free(unit); + } +@@ -984,19 +988,43 @@ load_plugin_config(gchar *arg) + { + Reader *reader, *nreader; + ++ gchar config[32], item[CFG_BUFSIZE]; + gchar proto[CFG_BUFSIZE], bufl[CFG_BUFSIZE]; + gchar bufc[CFG_BUFSIZE], bufp[CFG_BUFSIZE]; + gchar bufo[CFG_BUFSIZE], bufu[CFG_BUFSIZE]; ++ gchar bufpr[CFG_BUFSIZE], bufpeer[CFG_BUFSIZE]; + gint n; + ++ n = sscanf(arg, "%31s %s %[^\n]", config, bufl, item); ++ if (n != 3) ++ return; ++ ++ if (!strcmp(config, GKRELLM_CHARTCONFIG_KEYWORD)) ++ { ++ for (nreader = readers; nreader; nreader = nreader->next) ++ { ++ if (!strcmp(bufl, nreader->label)) ++ { ++ gkrellm_load_chartconfig(&nreader->chart_config, item, 1); ++ break; ++ } ++ } ++ return; ++ } ++ ++ if (strcmp(config, PLUGIN_MONITOR_KEYWORD)) ++ return; ++ + reader = g_new0(Reader, 1); + +- n = sscanf(arg, "%s %[^:]://%[^@]@%[^:]:%d/%s %s %d %d %d %d", +- bufl, proto, bufc, bufp, &reader->port, bufo, bufu, ++ n = sscanf(item, "%[^:]://%[^@]@%[^:]:%[^:]:%d/%s %s %d %d %d %d", ++ proto, bufc, bufpr, bufpeer, &reader->port, bufo, bufu, + &reader->delay, &reader->delta, + &reader->divisor, &reader->scale); + if (n >= 6) + { ++ g_snprintf(bufp, CFG_BUFSIZE, "%s:%s", bufpr, bufpeer); ++ bufp[CFG_BUFSIZE-1] = '\0'; + if (g_strcasecmp(proto, "snmp") == 0) { + gkrellm_dup_string(&reader->label, bufl); + gkrellm_dup_string(&reader->community, bufc); +@@ -1055,6 +1083,7 @@ apply_plugin_config() + for (row = 0; row < GTK_CLIST(reader_clist)->rows; ++row) + { + gint i; ++ gchar peername[MAXHOSTNAMELEN+1]; + i = 0; + reader = g_new0(Reader, 1); + +@@ -1062,6 +1091,11 @@ apply_plugin_config() + gkrellm_dup_string(&reader->label, name); + + gtk_clist_get_text(GTK_CLIST(reader_clist), row, i++, &name); ++ if (strncasecmp(name, "tcp:", 4) && strncasecmp(name, "udp:", 4)) ++ { ++ g_snprintf(peername, MAXHOSTNAMELEN, "udp:%s", name); ++ name = peername; ++ } + gkrellm_dup_string(&reader->peer, name); + + gtk_clist_get_text(GTK_CLIST(reader_clist), row, i++, &name); |