#include "unp.h" #include #include #include #define BUFSIZE 1500 /* globals */ char sendbuf[BUFSIZE]; int datalen; /* # bytes of data following ICMP header */ char *host; int nsent; /* add 1 for each sendto() */ pid_t pid; /* our PID */ int sockfd; int verbose; /* function prototypes */ void init_v6(void); void proc_v4(char *, ssize_t, struct msghdr *, struct timeval *); void proc_v6(char *, ssize_t, struct msghdr *, struct timeval *); void send_v4(void); void send_v6(void); void readloop(void); void sig_alrm(int); void tv_sub(struct timeval *, struct timeval *); struct proto { void (*fproc)(char *, ssize_t, struct msghdr *, struct timeval *); void (*fsend)(void); void (*finit)(void); struct sockaddr *sasend; /* sockaddr{} for send, from getaddrinfo */ struct sockaddr *sarecv; /* sockaddr{} for receiving */ socklen_t salen; /* length of sockaddr{}s */ int icmpproto; /* IPPROTO_xxx value for ICMP */ } *pr; #ifdef IPV6 #include #include #endif