#define MAXWAIT 10 /* max seconds to wait for response */ #define OPT_FLOOD 0x001 #define OPT_INTERVAL 0x002 #define OPT_NUMERIC 0x004 #define OPT_QUIET 0x008 #define OPT_RROUTE 0x010 #define OPT_VERBOSE 0x020 #define PING_TIMING(s) (s >= PING_HEADER_LEN) #define PING_HEADER_LEN sizeof (struct timeval) #define PING_DATALEN (64 - PING_HEADER_LEN) /* default data length */ #define PING_MAX_DATALEN (65535 - MAXIPLEN - MAXICMPLEN) struct ping_stat { double tmin; /* minimum round trip time */ double tmax; /* maximum round trip time */ double tsum; /* sum of all times, for doing average */ double tsumsq; /* sum of all times squared, for std. dev. */ }; extern unsigned options; extern PING *ping; extern int is_root; extern unsigned long preload; extern u_char *data_buffer; extern size_t data_length; extern int ping_run (PING *ping, int (*finish)()); extern int ping_finish (void); extern void print_icmp_header (struct sockaddr_in *from, struct ip *ip, icmphdr_t *icmp, int len);