summaryrefslogtreecommitdiffstats
path: root/plugins/check_icmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/check_icmp.c')
-rw-r--r--plugins/check_icmp.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/plugins/check_icmp.c b/plugins/check_icmp.c
index 45bfcc5..361e924 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;
70extern int optind, opterr; 66extern 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) */
1278int recvfrom_wto(int sock, char *buf, int len, struct sockaddr *saddr, int timo) 1273int 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 */