| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #include "unp.h"## 1 ##src/traceroute/trace.h##
- #include <netinet/in_systm.h>## 2 ##src/traceroute/trace.h##
- #include <netinet/ip.h>## 3 ##src/traceroute/trace.h##
- #include <netinet/ip_icmp.h>## 4 ##src/traceroute/trace.h##
- #include <netinet/udp.h>## 5 ##src/traceroute/trace.h##
- #define BUFSIZE 1500## 6 ##src/traceroute/trace.h##
- struct rec { /* of outgoing UDP data */## 7 ##src/traceroute/trace.h##
- u_short rec_seq; /* sequence number */## 8 ##src/traceroute/trace.h##
- u_short rec_ttl; /* TTL packet left with */## 9 ##src/traceroute/trace.h##
- struct timeval rec_tv; /* time packet left */## 10 ##src/traceroute/trace.h##
- };## 11 ##src/traceroute/trace.h##
- /* globals */## 12 ##src/traceroute/trace.h##
- char recvbuf[BUFSIZE];## 13 ##src/traceroute/trace.h##
- char sendbuf[BUFSIZE];## 14 ##src/traceroute/trace.h##
- int datalen; /* #bytes of data, following ICMP header */## 15 ##src/traceroute/trace.h##
- char *host;## 16 ##src/traceroute/trace.h##
- u_short sport, dport;## 17 ##src/traceroute/trace.h##
- int nsent; /* add 1 for each sendto() */## 18 ##src/traceroute/trace.h##
- pid_t pid; /* our PID */## 19 ##src/traceroute/trace.h##
- int probe, nprobes;## 20 ##src/traceroute/trace.h##
- int sendfd, recvfd; /* send on UDP sock, read on raw ICMP sock */## 21 ##src/traceroute/trace.h##
- int ttl, max_ttl;## 22 ##src/traceroute/trace.h##
- int verbose;## 23 ##src/traceroute/trace.h##
- /* function prototypes */## 24 ##src/traceroute/trace.h##
- const char *icmpcode_v4(int);## 25 ##src/traceroute/trace.h##
- const char *icmpcode_v6(int);## 26 ##src/traceroute/trace.h##
- int recv_v4(int, struct timeval *);## 27 ##src/traceroute/trace.h##
- int recv_v6(int, struct timeval *);## 28 ##src/traceroute/trace.h##
- void sig_alrm(int);## 29 ##src/traceroute/trace.h##
- void traceloop(void);## 30 ##src/traceroute/trace.h##
- void tv_sub(struct timeval *, struct timeval *);## 31 ##src/traceroute/trace.h##
- struct proto {## 32 ##src/traceroute/trace.h##
- const char *(*icmpcode) (int);## 33 ##src/traceroute/trace.h##
- int (*recv) (int, struct timeval *);## 34 ##src/traceroute/trace.h##
- struct sockaddr *sasend; /* sockaddr{} for send, from getaddrinfo */## 35 ##src/traceroute/trace.h##
- struct sockaddr *sarecv; /* sockaddr{} for receiving */## 36 ##src/traceroute/trace.h##
- struct sockaddr *salast; /* last sockaddr{} for receiving */## 37 ##src/traceroute/trace.h##
- struct sockaddr *sabind; /* sockaddr{} for binding source port */## 38 ##src/traceroute/trace.h##
- socklen_t salen; /* length of sockaddr{}s */## 39 ##src/traceroute/trace.h##
- int icmpproto; /* IPPROTO_xxx value for ICMP */## 40 ##src/traceroute/trace.h##
- int ttllevel; /* setsockopt() level to set TTL */## 41 ##src/traceroute/trace.h##
- int ttloptname; /* setsockopt() name to set TTL */## 42 ##src/traceroute/trace.h##
- } *pr;## 43 ##src/traceroute/trace.h##
- #ifdef IPV6## 44 ##src/traceroute/trace.h##
- #include <netinet/ip6.h>## 45 ##src/traceroute/trace.h##
- #include <netinet/icmp6.h>## 46 ##src/traceroute/trace.h##
- #endif## 47 ##src/traceroute/trace.h##
|