diff options
Diffstat (limited to 'plugins/check_icmp.c')
| -rw-r--r-- | plugins/check_icmp.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/plugins/check_icmp.c b/plugins/check_icmp.c index 45bfcc5e..361e924e 100644 --- a/plugins/check_icmp.c +++ b/plugins/check_icmp.c | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * check_icmp - A hack of fping2 to work with nagios. | 2 | * $Id$ |
| 3 | * This way we don't have to use the output parser. | 3 | * |
| 4 | * This is a hack of fping2 made to work with nagios. | ||
| 5 | * It's fast and removes the necessity of parsing another programs output. | ||
| 4 | * | 6 | * |
| 5 | * VIEWING NOTES: | 7 | * VIEWING NOTES: |
| 6 | * This file was formatted with tab indents at a tab stop of 4. | 8 | * This file was formatted with tab indents at a tab stop of 4. |
| @@ -40,14 +42,8 @@ | |||
| 40 | #include <netinet/in_systm.h> | 42 | #include <netinet/in_systm.h> |
| 41 | #include <netinet/in.h> | 43 | #include <netinet/in.h> |
| 42 | 44 | ||
| 43 | /* Linux has bizarre ip.h and ip_icmp.h */ | ||
| 44 | /* Taken from the fping distro. Thank you. */ | ||
| 45 | #if defined( __linux__ ) | ||
| 46 | #include "linux.h" | ||
| 47 | #else | ||
| 48 | #include <netinet/ip.h> | 45 | #include <netinet/ip.h> |
| 49 | #include <netinet/ip_icmp.h> | 46 | #include <netinet/ip_icmp.h> |
| 50 | #endif /* defined(__linux__) */ | ||
| 51 | 47 | ||
| 52 | #include <arpa/inet.h> | 48 | #include <arpa/inet.h> |
| 53 | #include <netdb.h> | 49 | #include <netdb.h> |
| @@ -70,9 +66,8 @@ extern char *optarg; | |||
| 70 | extern int optind, opterr; | 66 | extern int optind, opterr; |
| 71 | 67 | ||
| 72 | /*** Constants ***/ | 68 | /*** Constants ***/ |
| 73 | #define REV_DATE "2004-09-06" | ||
| 74 | #define EMAIL "ae@op5.se" | 69 | #define EMAIL "ae@op5.se" |
| 75 | #define VERSION "0.8" | 70 | #define VERSION "0.8.1" |
| 76 | 71 | ||
| 77 | #ifndef INADDR_NONE | 72 | #ifndef INADDR_NONE |
| 78 | # define INADDR_NONE 0xffffffU | 73 | # define INADDR_NONE 0xffffffU |
| @@ -441,7 +436,7 @@ int main(int argc, char **argv) | |||
| 441 | break; | 436 | break; |
| 442 | 437 | ||
| 443 | case 'v': | 438 | case 'v': |
| 444 | printf("%s: Version %s $Date$\n", prog, VERSION, REV_DATE); | 439 | printf("%s: Version %s $Date$\n", prog, VERSION); |
| 445 | printf("%s: comments to %s\n", prog, EMAIL); | 440 | printf("%s: comments to %s\n", prog, EMAIL); |
| 446 | exit(STATE_OK); | 441 | exit(STATE_OK); |
| 447 | 442 | ||
| @@ -1275,7 +1270,7 @@ void u_sleep(int u_sec) | |||
| 1275 | * crash on any other errrors | 1270 | * crash on any other errrors |
| 1276 | ************************************************************/ | 1271 | ************************************************************/ |
| 1277 | /* TODO: add MSG_DONTWAIT to recvfrom flags (currently 0) */ | 1272 | /* TODO: add MSG_DONTWAIT to recvfrom flags (currently 0) */ |
| 1278 | int recvfrom_wto(int sock, char *buf, int len, struct sockaddr *saddr, int timo) | 1273 | int recvfrom_wto(int lsock, char *buf, int len, struct sockaddr *saddr, int timo) |
| 1279 | { | 1274 | { |
| 1280 | int nfound = 0, slen, n; | 1275 | int nfound = 0, slen, n; |
| 1281 | struct timeval to; | 1276 | struct timeval to; |
| @@ -1289,8 +1284,8 @@ int recvfrom_wto(int sock, char *buf, int len, struct sockaddr *saddr, int timo) | |||
| 1289 | 1284 | ||
| 1290 | FD_ZERO(&readset); | 1285 | FD_ZERO(&readset); |
| 1291 | FD_ZERO(&writeset); | 1286 | FD_ZERO(&writeset); |
| 1292 | FD_SET(sock, &readset); | 1287 | FD_SET(lsock, &readset); |
| 1293 | nfound = select(sock + 1, &readset, &writeset, NULL, &to); | 1288 | nfound = select(lsock + 1, &readset, &writeset, NULL, &to); |
| 1294 | if(nfound < 0) crash("select() in recvfrom_wto"); | 1289 | if(nfound < 0) crash("select() in recvfrom_wto"); |
| 1295 | 1290 | ||
| 1296 | if(nfound == 0) return -1; /* timeout */ | 1291 | if(nfound == 0) return -1; /* timeout */ |
