diff options
Diffstat (limited to 'web/attachments/221749-check_snmp_sourceip.patch')
| -rw-r--r-- | web/attachments/221749-check_snmp_sourceip.patch | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/web/attachments/221749-check_snmp_sourceip.patch b/web/attachments/221749-check_snmp_sourceip.patch new file mode 100644 index 0000000..2bba2f4 --- /dev/null +++ b/web/attachments/221749-check_snmp_sourceip.patch | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | --- check_snmp.c.orig 2007-03-22 15:24:22.000000000 +0100 | ||
| 2 | +++ check_snmp.c 2007-03-22 15:23:00.000000000 +0100 | ||
| 3 | @@ -103,6 +103,7 @@ | ||
| 4 | int errcode, excode; | ||
| 5 | |||
| 6 | char *server_address = NULL; | ||
| 7 | +char *client_address = NULL; | ||
| 8 | char *community = NULL; | ||
| 9 | char *authpriv = NULL; | ||
| 10 | char *proto = NULL; | ||
| 11 | @@ -183,11 +184,22 @@ | ||
| 12 | |||
| 13 | /* create the command line to execute */ | ||
| 14 | if(usesnmpgetnext == TRUE) { | ||
| 15 | + if (client_address != NULL) | ||
| 16 | + asprintf(&command_line, "%s --clientaddr=%s -t %d -r %d -m %s -v %s %s %s:%s %s", | ||
| 17 | + PATH_TO_SNMPGETNEXT, client_address, timeout_interval, retries, miblist, proto, | ||
| 18 | + authpriv, server_address, port, oid); | ||
| 19 | + if (client_address == NULL) | ||
| 20 | asprintf(&command_line, "%s -t %d -r %d -m %s -v %s %s %s:%s %s", | ||
| 21 | PATH_TO_SNMPGETNEXT, timeout_interval, retries, miblist, proto, | ||
| 22 | authpriv, server_address, port, oid); | ||
| 23 | }else{ | ||
| 24 | |||
| 25 | + if (client_address != NULL) | ||
| 26 | + asprintf (&command_line, "%s --clientaddr=%s -t %d -r %d -m %s -v %s %s %s:%s %s", | ||
| 27 | + PATH_TO_SNMPGET, client_address, timeout_interval, retries, miblist, proto, | ||
| 28 | + authpriv, server_address, port, oid); | ||
| 29 | + | ||
| 30 | + if (client_address == NULL) | ||
| 31 | asprintf (&command_line, "%s -t %d -r %d -m %s -v %s %s %s:%s %s", | ||
| 32 | PATH_TO_SNMPGET, timeout_interval, retries, miblist, proto, | ||
| 33 | authpriv, server_address, port, oid); | ||
| 34 | @@ -398,6 +410,7 @@ | ||
| 35 | static struct option longopts[] = { | ||
| 36 | STD_LONG_OPTS, | ||
| 37 | {"community", required_argument, 0, 'C'}, | ||
| 38 | + {"source", required_argument, 0, 'S'}, | ||
| 39 | {"oid", required_argument, 0, 'o'}, | ||
| 40 | {"object", required_argument, 0, 'o'}, | ||
| 41 | {"delimiter", required_argument, 0, 'd'}, | ||
| 42 | @@ -436,7 +449,7 @@ | ||
| 43 | } | ||
| 44 | |||
| 45 | while (1) { | ||
| 46 | - c = getopt_long (argc, argv, "nhvVt:c:w:H:C:o:e:E:d:D:s:t:R:r:l:u:p:m:P:L:U:a:A:X:", | ||
| 47 | + c = getopt_long (argc, argv, "nhvVt:c:w:H:S:C:o:e:E:d:D:s:t:R:r:l:u:p:m:P:L:U:a:A:X:", | ||
| 48 | longopts, &option); | ||
| 49 | |||
| 50 | if (c == -1 || c == EOF) | ||
| 51 | @@ -462,6 +475,9 @@ | ||
| 52 | case 'H': /* Host or server */ | ||
| 53 | server_address = optarg; | ||
| 54 | break; | ||
| 55 | + case 'S': /* Client source address */ | ||
| 56 | + client_address = optarg; | ||
| 57 | + break; | ||
| 58 | case 'p': /* TCP port number */ | ||
| 59 | port = optarg; | ||
| 60 | break; | ||
| 61 | @@ -919,6 +935,8 @@ | ||
| 62 | /* SNMP and Authentication Protocol */ | ||
| 63 | printf (" %s\n", "-n, --next"); | ||
| 64 | printf (" %s\n", _("Use SNMP GETNEXT instead of SNMP GET")); | ||
| 65 | + printf (" %s\n", "-S, --source=ADDRESS"); | ||
| 66 | + printf (" %s\n", _("Specify SNMP client source address")); | ||
| 67 | printf (" %s\n", "-P, --protocol=[1|2c|3]"); | ||
| 68 | printf (" %s\n", _("SNMP protocol version")); | ||
| 69 | printf (" %s\n", "-L, --seclevel=[noAuthNoPriv|authNoPriv|authPriv]"); | ||
| 70 | @@ -1005,7 +1023,7 @@ | ||
| 71 | print_usage (void) | ||
| 72 | { | ||
| 73 | printf (_("Usage:")); | ||
| 74 | - printf ("%s -H <ip_address> -o <OID> [-w warn_range] [-c crit_range]\n",progname); | ||
| 75 | + printf ("%s -H <ip_address> -o <OID> [-S source_ip_address] [-w warn_range] [-c crit_range]\n",progname); | ||
| 76 | printf ("[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]\n"); | ||
| 77 | printf ("[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]\n"); | ||
| 78 | printf ("[-m miblist] [-P snmp version] [-L seclevel] [-U secname] [-a authproto]\n"); | ||
