📄 trace.lh
字号:
#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##char *icmpcode_v4(int);## 25 ##src/traceroute/trace.h##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## 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 "ip6.h" /* should be <netinet/ip6.h> */## 45 ##src/traceroute/trace.h###include "icmp6.h" /* should be <netinet/icmp6.h> */## 46 ##src/traceroute/trace.h###endif## 47 ##src/traceroute/trace.h##
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -