trace.lh 3.3 KB

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