$NetBSD$ --- gkrellm_snmp.c.orig 2003-04-16 13:27:46.000000000 +0200 +++ gkrellm_snmp.c @@ -33,16 +33,10 @@ #include #include -#include -#include -#include - -#include -#include -#include -#include /* special ASN types */ +#include +#include #ifdef DEBUG_SNMP -#include +#include #endif /* DEBUG_SNMP */ #include @@ -342,7 +336,8 @@ retry: if (response->errstat == SNMP_ERR_NOERROR){ /* just render all vars */ for(vars = response->variables; vars; vars = vars->next_variable) { - sprint_variable(textbuf, vars->name, vars->name_length, vars); + snprint_variable(textbuf, 1023, vars->name, vars->name_length, vars); + textbuf[1023] = '\0'; if (result) { tmp = result; result = g_strdup_printf("%s\n%s\n", tmp, textbuf); @@ -440,7 +435,7 @@ snmp_input(int op, u_long time = 0; Reader *reader = NULL; - if (op == RECEIVED_MESSAGE) { + if (op == NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE) { if (pdu->errstat == SNMP_ERR_NOERROR) { @@ -480,7 +475,7 @@ snmp_input(int op, } - } else if (op == TIMED_OUT){ + } else if (op == NETSNMP_CALLBACK_OP_TIMED_OUT){ error = g_strdup_printf("Error! SNMP Timeout."); } /* we use session's callback magic to pass back data */ @@ -884,16 +879,19 @@ load_plugin_config(gchar *arg) 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; 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(arg, "%s %[^:]://%[^@]@%[^:]:%[^:]:%d/%s %s %d %d %d %d", + bufl, 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); @@ -949,6 +947,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); @@ -956,6 +955,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);