| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include "unp.h"
- #include <netinet/in_systm.h>
- #include <netinet/ip.h>
- #include <netinet/ip_icmp.h>
- #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 <netinet/ip6.h>
- #include <netinet/icmp6.h>
- #endif
|