Commit 9634d9031c140b24c7ca0d8872632207f6ce7275
1 parent
31a60e22
Use const and static as needed, disable unused code
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3452 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
28 changed files
with
163 additions
and
221 deletions
slirp/bootp.c
@@ -149,7 +149,7 @@ static void bootp_reply(struct bootp_t *bp) | @@ -149,7 +149,7 @@ static void bootp_reply(struct bootp_t *bp) | ||
149 | 149 | ||
150 | if ((m = m_get()) == NULL) | 150 | if ((m = m_get()) == NULL) |
151 | return; | 151 | return; |
152 | - m->m_data += if_maxlinkhdr; | 152 | + m->m_data += IF_MAXLINKHDR; |
153 | rbp = (struct bootp_t *)m->m_data; | 153 | rbp = (struct bootp_t *)m->m_data; |
154 | m->m_data += sizeof(struct udpiphdr); | 154 | m->m_data += sizeof(struct udpiphdr); |
155 | memset(rbp, 0, sizeof(struct bootp_t)); | 155 | memset(rbp, 0, sizeof(struct bootp_t)); |
slirp/debug.c
@@ -92,9 +92,9 @@ ttystats(ttyp) | @@ -92,9 +92,9 @@ ttystats(ttyp) | ||
92 | 92 | ||
93 | lprint(" \r\n"); | 93 | lprint(" \r\n"); |
94 | 94 | ||
95 | - if (if_comp & IF_COMPRESS) | 95 | + if (IF_COMP & IF_COMPRESS) |
96 | strcpy(buff, "on"); | 96 | strcpy(buff, "on"); |
97 | - else if (if_comp & IF_NOCOMPRESS) | 97 | + else if (IF_COMP & IF_NOCOMPRESS) |
98 | strcpy(buff, "off"); | 98 | strcpy(buff, "off"); |
99 | else | 99 | else |
100 | strcpy(buff, "off (for now)"); | 100 | strcpy(buff, "off (for now)"); |
slirp/if.c
@@ -7,9 +7,6 @@ | @@ -7,9 +7,6 @@ | ||
7 | 7 | ||
8 | #include <slirp.h> | 8 | #include <slirp.h> |
9 | 9 | ||
10 | -int if_mtu, if_mru; | ||
11 | -int if_comp; | ||
12 | -int if_maxlinkhdr; | ||
13 | int if_queued = 0; /* Number of packets queued so far */ | 10 | int if_queued = 0; /* Number of packets queued so far */ |
14 | int if_thresh = 10; /* Number of packets queued before we start sending | 11 | int if_thresh = 10; /* Number of packets queued before we start sending |
15 | * (to prevent allocing too many mbufs) */ | 12 | * (to prevent allocing too many mbufs) */ |
@@ -41,23 +38,6 @@ ifs_remque(ifm) | @@ -41,23 +38,6 @@ ifs_remque(ifm) | ||
41 | void | 38 | void |
42 | if_init() | 39 | if_init() |
43 | { | 40 | { |
44 | -#if 0 | ||
45 | - /* | ||
46 | - * Set if_maxlinkhdr to 48 because it's 40 bytes for TCP/IP, | ||
47 | - * and 8 bytes for PPP, but need to have it on an 8byte boundary | ||
48 | - */ | ||
49 | -#ifdef USE_PPP | ||
50 | - if_maxlinkhdr = 48; | ||
51 | -#else | ||
52 | - if_maxlinkhdr = 40; | ||
53 | -#endif | ||
54 | -#else | ||
55 | - /* 2 for alignment, 14 for ethernet, 40 for TCP/IP */ | ||
56 | - if_maxlinkhdr = 2 + 14 + 40; | ||
57 | -#endif | ||
58 | - if_mtu = 1500; | ||
59 | - if_mru = 1500; | ||
60 | - if_comp = IF_AUTOCOMP; | ||
61 | if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq; | 41 | if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq; |
62 | if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq; | 42 | if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq; |
63 | // sl_compress_init(&comp_s); | 43 | // sl_compress_init(&comp_s); |
slirp/if.h
@@ -13,12 +13,25 @@ | @@ -13,12 +13,25 @@ | ||
13 | #define IF_AUTOCOMP 0x04 /* Autodetect (default) */ | 13 | #define IF_AUTOCOMP 0x04 /* Autodetect (default) */ |
14 | #define IF_NOCIDCOMP 0x08 /* CID compression */ | 14 | #define IF_NOCIDCOMP 0x08 /* CID compression */ |
15 | 15 | ||
16 | -/* Needed for FreeBSD */ | ||
17 | -#undef if_mtu | ||
18 | -extern int if_mtu; | ||
19 | -extern int if_mru; /* MTU and MRU */ | ||
20 | -extern int if_comp; /* Flags for compression */ | ||
21 | -extern int if_maxlinkhdr; | 16 | +#define IF_MTU 1500 |
17 | +#define IF_MRU 1500 | ||
18 | +#define IF_COMP IF_AUTOCOMP /* Flags for compression */ | ||
19 | + | ||
20 | +#if 0 | ||
21 | +/* | ||
22 | + * Set if_maxlinkhdr to 48 because it's 40 bytes for TCP/IP, | ||
23 | + * and 8 bytes for PPP, but need to have it on an 8byte boundary | ||
24 | + */ | ||
25 | +#ifdef USE_PPP | ||
26 | +#define IF_MAXLINKHDR 48 | ||
27 | +#else | ||
28 | +#define IF_MAXLINKHDR 40 | ||
29 | +#endif | ||
30 | +#else | ||
31 | + /* 2 for alignment, 14 for ethernet, 40 for TCP/IP */ | ||
32 | +#define IF_MAXLINKHDR (2 + 14 + 40) | ||
33 | +#endif | ||
34 | + | ||
22 | extern int if_queued; /* Number of packets queued so far */ | 35 | extern int if_queued; /* Number of packets queued so far */ |
23 | extern int if_thresh; /* Number of packets queued before we start sending | 36 | extern int if_thresh; /* Number of packets queued before we start sending |
24 | * (to prevent allocing too many mbufs) */ | 37 | * (to prevent allocing too many mbufs) */ |
slirp/ip.h
@@ -312,6 +312,4 @@ extern struct ipstat ipstat; | @@ -312,6 +312,4 @@ extern struct ipstat ipstat; | ||
312 | extern struct ipq ipq; /* ip reass. queue */ | 312 | extern struct ipq ipq; /* ip reass. queue */ |
313 | extern u_int16_t ip_id; /* ip packet ctr, for ids */ | 313 | extern u_int16_t ip_id; /* ip packet ctr, for ids */ |
314 | 314 | ||
315 | -extern int ip_defttl; /* default IP ttl */ | ||
316 | - | ||
317 | #endif | 315 | #endif |
slirp/ip_icmp.c
@@ -46,7 +46,7 @@ struct icmpstat icmpstat; | @@ -46,7 +46,7 @@ struct icmpstat icmpstat; | ||
46 | char icmp_ping_msg[] = "This is a psuedo-PING packet used by Slirp to emulate ICMP ECHO-REQUEST packets.\n"; | 46 | char icmp_ping_msg[] = "This is a psuedo-PING packet used by Slirp to emulate ICMP ECHO-REQUEST packets.\n"; |
47 | 47 | ||
48 | /* list of actions for icmp_error() on RX of an icmp message */ | 48 | /* list of actions for icmp_error() on RX of an icmp message */ |
49 | -static int icmp_flush[19] = { | 49 | +static const int icmp_flush[19] = { |
50 | /* ECHO REPLY (0) */ 0, | 50 | /* ECHO REPLY (0) */ 0, |
51 | 1, | 51 | 1, |
52 | 1, | 52 | 1, |
slirp/ip_input.c
@@ -45,14 +45,19 @@ | @@ -45,14 +45,19 @@ | ||
45 | #include <slirp.h> | 45 | #include <slirp.h> |
46 | #include "ip_icmp.h" | 46 | #include "ip_icmp.h" |
47 | 47 | ||
48 | -int ip_defttl; | ||
49 | - | ||
50 | #ifdef LOG_ENABLED | 48 | #ifdef LOG_ENABLED |
51 | struct ipstat ipstat; | 49 | struct ipstat ipstat; |
52 | #endif | 50 | #endif |
53 | 51 | ||
54 | struct ipq ipq; | 52 | struct ipq ipq; |
55 | 53 | ||
54 | +static struct ip *ip_reass(register struct ipasfrag *ip, | ||
55 | + register struct ipq *fp); | ||
56 | +static void ip_freef(struct ipq *fp); | ||
57 | +static void ip_enq(register struct ipasfrag *p, | ||
58 | + register struct ipasfrag *prev); | ||
59 | +static void ip_deq(register struct ipasfrag *p); | ||
60 | + | ||
56 | /* | 61 | /* |
57 | * IP initialization: fill in IP protocol switch table. | 62 | * IP initialization: fill in IP protocol switch table. |
58 | * All protocols not implemented in kernel go to raw IP protocol handler. | 63 | * All protocols not implemented in kernel go to raw IP protocol handler. |
@@ -64,7 +69,6 @@ ip_init() | @@ -64,7 +69,6 @@ ip_init() | ||
64 | ip_id = tt.tv_sec & 0xffff; | 69 | ip_id = tt.tv_sec & 0xffff; |
65 | udp_init(); | 70 | udp_init(); |
66 | tcp_init(); | 71 | tcp_init(); |
67 | - ip_defttl = IPDEFTTL; | ||
68 | } | 72 | } |
69 | 73 | ||
70 | /* | 74 | /* |
@@ -239,10 +243,8 @@ bad: | @@ -239,10 +243,8 @@ bad: | ||
239 | * reassembly of this datagram already exists, then it | 243 | * reassembly of this datagram already exists, then it |
240 | * is given as fp; otherwise have to make a chain. | 244 | * is given as fp; otherwise have to make a chain. |
241 | */ | 245 | */ |
242 | -struct ip * | ||
243 | -ip_reass(ip, fp) | ||
244 | - register struct ipasfrag *ip; | ||
245 | - register struct ipq *fp; | 246 | +static struct ip * |
247 | +ip_reass(register struct ipasfrag *ip, register struct ipq *fp) | ||
246 | { | 248 | { |
247 | register struct mbuf *m = dtom(ip); | 249 | register struct mbuf *m = dtom(ip); |
248 | register struct ipasfrag *q; | 250 | register struct ipasfrag *q; |
@@ -398,9 +400,8 @@ dropfrag: | @@ -398,9 +400,8 @@ dropfrag: | ||
398 | * Free a fragment reassembly header and all | 400 | * Free a fragment reassembly header and all |
399 | * associated datagrams. | 401 | * associated datagrams. |
400 | */ | 402 | */ |
401 | -void | ||
402 | -ip_freef(fp) | ||
403 | - struct ipq *fp; | 403 | +static void |
404 | +ip_freef(struct ipq *fp) | ||
404 | { | 405 | { |
405 | register struct ipasfrag *q, *p; | 406 | register struct ipasfrag *q, *p; |
406 | 407 | ||
@@ -418,9 +419,8 @@ ip_freef(fp) | @@ -418,9 +419,8 @@ ip_freef(fp) | ||
418 | * Put an ip fragment on a reassembly chain. | 419 | * Put an ip fragment on a reassembly chain. |
419 | * Like insque, but pointers in middle of structure. | 420 | * Like insque, but pointers in middle of structure. |
420 | */ | 421 | */ |
421 | -void | ||
422 | -ip_enq(p, prev) | ||
423 | - register struct ipasfrag *p, *prev; | 422 | +static void |
423 | +ip_enq(register struct ipasfrag *p, register struct ipasfrag *prev) | ||
424 | { | 424 | { |
425 | DEBUG_CALL("ip_enq"); | 425 | DEBUG_CALL("ip_enq"); |
426 | DEBUG_ARG("prev = %lx", (long)prev); | 426 | DEBUG_ARG("prev = %lx", (long)prev); |
@@ -433,9 +433,8 @@ ip_enq(p, prev) | @@ -433,9 +433,8 @@ ip_enq(p, prev) | ||
433 | /* | 433 | /* |
434 | * To ip_enq as remque is to insque. | 434 | * To ip_enq as remque is to insque. |
435 | */ | 435 | */ |
436 | -void | ||
437 | -ip_deq(p) | ||
438 | - register struct ipasfrag *p; | 436 | +static void |
437 | +ip_deq(register struct ipasfrag *p) | ||
439 | { | 438 | { |
440 | ((struct ipasfrag *)(p->ipf_prev))->ipf_next = p->ipf_next; | 439 | ((struct ipasfrag *)(p->ipf_prev))->ipf_next = p->ipf_next; |
441 | ((struct ipasfrag *)(p->ipf_next))->ipf_prev = p->ipf_prev; | 440 | ((struct ipasfrag *)(p->ipf_next))->ipf_prev = p->ipf_prev; |
slirp/ip_output.c
@@ -96,7 +96,7 @@ ip_output(so, m0) | @@ -96,7 +96,7 @@ ip_output(so, m0) | ||
96 | /* | 96 | /* |
97 | * If small enough for interface, can just send directly. | 97 | * If small enough for interface, can just send directly. |
98 | */ | 98 | */ |
99 | - if ((u_int16_t)ip->ip_len <= if_mtu) { | 99 | + if ((u_int16_t)ip->ip_len <= IF_MTU) { |
100 | ip->ip_len = htons((u_int16_t)ip->ip_len); | 100 | ip->ip_len = htons((u_int16_t)ip->ip_len); |
101 | ip->ip_off = htons((u_int16_t)ip->ip_off); | 101 | ip->ip_off = htons((u_int16_t)ip->ip_off); |
102 | ip->ip_sum = 0; | 102 | ip->ip_sum = 0; |
@@ -116,7 +116,7 @@ ip_output(so, m0) | @@ -116,7 +116,7 @@ ip_output(so, m0) | ||
116 | goto bad; | 116 | goto bad; |
117 | } | 117 | } |
118 | 118 | ||
119 | - len = (if_mtu - hlen) &~ 7; /* ip databytes per packet */ | 119 | + len = (IF_MTU - hlen) &~ 7; /* ip databytes per packet */ |
120 | if (len < 8) { | 120 | if (len < 8) { |
121 | error = -1; | 121 | error = -1; |
122 | goto bad; | 122 | goto bad; |
@@ -140,7 +140,7 @@ ip_output(so, m0) | @@ -140,7 +140,7 @@ ip_output(so, m0) | ||
140 | STAT(ipstat.ips_odropped++); | 140 | STAT(ipstat.ips_odropped++); |
141 | goto sendorfree; | 141 | goto sendorfree; |
142 | } | 142 | } |
143 | - m->m_data += if_maxlinkhdr; | 143 | + m->m_data += IF_MAXLINKHDR; |
144 | mhip = mtod(m, struct ip *); | 144 | mhip = mtod(m, struct ip *); |
145 | *mhip = *ip; | 145 | *mhip = *ip; |
146 | 146 |
slirp/main.h
@@ -42,7 +42,6 @@ extern char *username; | @@ -42,7 +42,6 @@ extern char *username; | ||
42 | extern char *socket_path; | 42 | extern char *socket_path; |
43 | extern int towrite_max; | 43 | extern int towrite_max; |
44 | extern int ppp_exit; | 44 | extern int ppp_exit; |
45 | -extern int so_options; | ||
46 | extern int tcp_keepintvl; | 45 | extern int tcp_keepintvl; |
47 | extern uint8_t client_ethaddr[6]; | 46 | extern uint8_t client_ethaddr[6]; |
48 | 47 |
slirp/mbuf.c
@@ -21,27 +21,20 @@ struct mbuf *mbutl; | @@ -21,27 +21,20 @@ struct mbuf *mbutl; | ||
21 | char *mclrefcnt; | 21 | char *mclrefcnt; |
22 | int mbuf_alloced = 0; | 22 | int mbuf_alloced = 0; |
23 | struct mbuf m_freelist, m_usedlist; | 23 | struct mbuf m_freelist, m_usedlist; |
24 | -int mbuf_thresh = 30; | 24 | +#define MBUF_THRESH 30 |
25 | int mbuf_max = 0; | 25 | int mbuf_max = 0; |
26 | -int msize; | 26 | + |
27 | +/* | ||
28 | + * Find a nice value for msize | ||
29 | + * XXX if_maxlinkhdr already in mtu | ||
30 | + */ | ||
31 | +#define MSIZE (IF_MTU + IF_MAXLINKHDR + sizeof(struct m_hdr ) + 6) | ||
27 | 32 | ||
28 | void | 33 | void |
29 | m_init() | 34 | m_init() |
30 | { | 35 | { |
31 | m_freelist.m_next = m_freelist.m_prev = &m_freelist; | 36 | m_freelist.m_next = m_freelist.m_prev = &m_freelist; |
32 | m_usedlist.m_next = m_usedlist.m_prev = &m_usedlist; | 37 | m_usedlist.m_next = m_usedlist.m_prev = &m_usedlist; |
33 | - msize_init(); | ||
34 | -} | ||
35 | - | ||
36 | -void | ||
37 | -msize_init() | ||
38 | -{ | ||
39 | - /* | ||
40 | - * Find a nice value for msize | ||
41 | - * XXX if_maxlinkhdr already in mtu | ||
42 | - */ | ||
43 | - msize = (if_mtu>if_mru?if_mtu:if_mru) + | ||
44 | - if_maxlinkhdr + sizeof(struct m_hdr ) + 6; | ||
45 | } | 38 | } |
46 | 39 | ||
47 | /* | 40 | /* |
@@ -61,10 +54,10 @@ m_get() | @@ -61,10 +54,10 @@ m_get() | ||
61 | DEBUG_CALL("m_get"); | 54 | DEBUG_CALL("m_get"); |
62 | 55 | ||
63 | if (m_freelist.m_next == &m_freelist) { | 56 | if (m_freelist.m_next == &m_freelist) { |
64 | - m = (struct mbuf *)malloc(msize); | 57 | + m = (struct mbuf *)malloc(MSIZE); |
65 | if (m == NULL) goto end_error; | 58 | if (m == NULL) goto end_error; |
66 | mbuf_alloced++; | 59 | mbuf_alloced++; |
67 | - if (mbuf_alloced > mbuf_thresh) | 60 | + if (mbuf_alloced > MBUF_THRESH) |
68 | flags = M_DOFREE; | 61 | flags = M_DOFREE; |
69 | if (mbuf_alloced > mbuf_max) | 62 | if (mbuf_alloced > mbuf_max) |
70 | mbuf_max = mbuf_alloced; | 63 | mbuf_max = mbuf_alloced; |
@@ -78,7 +71,7 @@ m_get() | @@ -78,7 +71,7 @@ m_get() | ||
78 | m->m_flags = (flags | M_USEDLIST); | 71 | m->m_flags = (flags | M_USEDLIST); |
79 | 72 | ||
80 | /* Initialise it */ | 73 | /* Initialise it */ |
81 | - m->m_size = msize - sizeof(struct m_hdr); | 74 | + m->m_size = MSIZE - sizeof(struct m_hdr); |
82 | m->m_data = m->m_dat; | 75 | m->m_data = m->m_dat; |
83 | m->m_len = 0; | 76 | m->m_len = 0; |
84 | m->m_nextpkt = 0; | 77 | m->m_nextpkt = 0; |
slirp/mbuf.h
@@ -135,7 +135,6 @@ extern struct mbuf m_freelist, m_usedlist; | @@ -135,7 +135,6 @@ extern struct mbuf m_freelist, m_usedlist; | ||
135 | extern int mbuf_max; | 135 | extern int mbuf_max; |
136 | 136 | ||
137 | void m_init _P((void)); | 137 | void m_init _P((void)); |
138 | -void msize_init _P((void)); | ||
139 | struct mbuf * m_get _P((void)); | 138 | struct mbuf * m_get _P((void)); |
140 | void m_free _P((struct mbuf *)); | 139 | void m_free _P((struct mbuf *)); |
141 | void m_cat _P((register struct mbuf *, register struct mbuf *)); | 140 | void m_cat _P((register struct mbuf *, register struct mbuf *)); |
slirp/misc.c
@@ -8,8 +8,7 @@ | @@ -8,8 +8,7 @@ | ||
8 | #define WANT_SYS_IOCTL_H | 8 | #define WANT_SYS_IOCTL_H |
9 | #include <slirp.h> | 9 | #include <slirp.h> |
10 | 10 | ||
11 | -u_int curtime, time_fasttimo, last_slowtimo, detach_time; | ||
12 | -u_int detach_wait = 600000; /* 10 minutes */ | 11 | +u_int curtime, time_fasttimo, last_slowtimo; |
13 | 12 | ||
14 | #if 0 | 13 | #if 0 |
15 | int x_port = -1; | 14 | int x_port = -1; |
@@ -214,10 +213,7 @@ strerror(error) | @@ -214,10 +213,7 @@ strerror(error) | ||
214 | #ifdef _WIN32 | 213 | #ifdef _WIN32 |
215 | 214 | ||
216 | int | 215 | int |
217 | -fork_exec(so, ex, do_pty) | ||
218 | - struct socket *so; | ||
219 | - char *ex; | ||
220 | - int do_pty; | 216 | +fork_exec(struct socket *so, const char *ex, int do_pty) |
221 | { | 217 | { |
222 | /* not implemented */ | 218 | /* not implemented */ |
223 | return 0; | 219 | return 0; |
@@ -225,6 +221,7 @@ fork_exec(so, ex, do_pty) | @@ -225,6 +221,7 @@ fork_exec(so, ex, do_pty) | ||
225 | 221 | ||
226 | #else | 222 | #else |
227 | 223 | ||
224 | +#ifndef CONFIG_QEMU | ||
228 | int | 225 | int |
229 | slirp_openpty(amaster, aslave) | 226 | slirp_openpty(amaster, aslave) |
230 | int *amaster, *aslave; | 227 | int *amaster, *aslave; |
@@ -289,6 +286,7 @@ slirp_openpty(amaster, aslave) | @@ -289,6 +286,7 @@ slirp_openpty(amaster, aslave) | ||
289 | return (-1); | 286 | return (-1); |
290 | #endif | 287 | #endif |
291 | } | 288 | } |
289 | +#endif | ||
292 | 290 | ||
293 | /* | 291 | /* |
294 | * XXX This is ugly | 292 | * XXX This is ugly |
@@ -302,23 +300,20 @@ slirp_openpty(amaster, aslave) | @@ -302,23 +300,20 @@ slirp_openpty(amaster, aslave) | ||
302 | * do_ptr = 2 Fork/exec using pty | 300 | * do_ptr = 2 Fork/exec using pty |
303 | */ | 301 | */ |
304 | int | 302 | int |
305 | -fork_exec(so, ex, do_pty) | ||
306 | - struct socket *so; | ||
307 | - char *ex; | ||
308 | - int do_pty; | 303 | +fork_exec(struct socket *so, const char *ex, int do_pty) |
309 | { | 304 | { |
310 | int s; | 305 | int s; |
311 | struct sockaddr_in addr; | 306 | struct sockaddr_in addr; |
312 | int addrlen = sizeof(addr); | 307 | int addrlen = sizeof(addr); |
313 | int opt; | 308 | int opt; |
314 | - int master; | 309 | + int master = -1; |
315 | char *argv[256]; | 310 | char *argv[256]; |
316 | #if 0 | 311 | #if 0 |
317 | char buff[256]; | 312 | char buff[256]; |
318 | #endif | 313 | #endif |
319 | /* don't want to clobber the original */ | 314 | /* don't want to clobber the original */ |
320 | char *bptr; | 315 | char *bptr; |
321 | - char *curarg; | 316 | + const char *curarg; |
322 | int c, i, ret; | 317 | int c, i, ret; |
323 | 318 | ||
324 | DEBUG_CALL("fork_exec"); | 319 | DEBUG_CALL("fork_exec"); |
@@ -327,10 +322,12 @@ fork_exec(so, ex, do_pty) | @@ -327,10 +322,12 @@ fork_exec(so, ex, do_pty) | ||
327 | DEBUG_ARG("do_pty = %lx", (long)do_pty); | 322 | DEBUG_ARG("do_pty = %lx", (long)do_pty); |
328 | 323 | ||
329 | if (do_pty == 2) { | 324 | if (do_pty == 2) { |
325 | +#if 0 | ||
330 | if (slirp_openpty(&master, &s) == -1) { | 326 | if (slirp_openpty(&master, &s) == -1) { |
331 | lprint("Error: openpty failed: %s\n", strerror(errno)); | 327 | lprint("Error: openpty failed: %s\n", strerror(errno)); |
332 | return 0; | 328 | return 0; |
333 | } | 329 | } |
330 | +#endif | ||
334 | } else { | 331 | } else { |
335 | addr.sin_family = AF_INET; | 332 | addr.sin_family = AF_INET; |
336 | addr.sin_port = 0; | 333 | addr.sin_port = 0; |
@@ -390,7 +387,7 @@ fork_exec(so, ex, do_pty) | @@ -390,7 +387,7 @@ fork_exec(so, ex, do_pty) | ||
390 | dup2(s, 0); | 387 | dup2(s, 0); |
391 | dup2(s, 1); | 388 | dup2(s, 1); |
392 | dup2(s, 2); | 389 | dup2(s, 2); |
393 | - for (s = 3; s <= 255; s++) | 390 | + for (s = getdtablesize() - 1; s >= 3; s--) |
394 | close(s); | 391 | close(s); |
395 | 392 | ||
396 | i = 0; | 393 | i = 0; |
slirp/misc.h
@@ -12,12 +12,12 @@ struct ex_list { | @@ -12,12 +12,12 @@ struct ex_list { | ||
12 | int ex_pty; /* Do we want a pty? */ | 12 | int ex_pty; /* Do we want a pty? */ |
13 | int ex_addr; /* The last byte of the address */ | 13 | int ex_addr; /* The last byte of the address */ |
14 | int ex_fport; /* Port to telnet to */ | 14 | int ex_fport; /* Port to telnet to */ |
15 | - char *ex_exec; /* Command line of what to exec */ | 15 | + const char *ex_exec; /* Command line of what to exec */ |
16 | struct ex_list *ex_next; | 16 | struct ex_list *ex_next; |
17 | }; | 17 | }; |
18 | 18 | ||
19 | extern struct ex_list *exec_list; | 19 | extern struct ex_list *exec_list; |
20 | -extern u_int curtime, time_fasttimo, last_slowtimo, detach_time, detach_wait; | 20 | +extern u_int curtime, time_fasttimo, last_slowtimo; |
21 | 21 | ||
22 | extern int (*lprint_print) _P((void *, const char *, va_list)); | 22 | extern int (*lprint_print) _P((void *, const char *, va_list)); |
23 | extern char *lprint_ptr, *lprint_ptr2, **lprint_arg; | 23 | extern char *lprint_ptr, *lprint_ptr2, **lprint_arg; |
@@ -74,7 +74,7 @@ inline void slirp_insque _P((void *, void *)); | @@ -74,7 +74,7 @@ inline void slirp_insque _P((void *, void *)); | ||
74 | inline void slirp_remque _P((void *)); | 74 | inline void slirp_remque _P((void *)); |
75 | int add_exec _P((struct ex_list **, int, char *, int, int)); | 75 | int add_exec _P((struct ex_list **, int, char *, int, int)); |
76 | int slirp_openpty _P((int *, int *)); | 76 | int slirp_openpty _P((int *, int *)); |
77 | -int fork_exec _P((struct socket *, char *, int)); | 77 | +int fork_exec(struct socket *so, const char *ex, int do_pty); |
78 | void snooze_hup _P((int)); | 78 | void snooze_hup _P((int)); |
79 | void snooze _P((void)); | 79 | void snooze _P((void)); |
80 | void relay _P((int)); | 80 | void relay _P((int)); |
slirp/sbuf.c
@@ -7,6 +7,8 @@ | @@ -7,6 +7,8 @@ | ||
7 | 7 | ||
8 | #include <slirp.h> | 8 | #include <slirp.h> |
9 | 9 | ||
10 | +static void sbappendsb(struct sbuf *sb, struct mbuf *m); | ||
11 | + | ||
10 | /* Done as a macro in socket.h */ | 12 | /* Done as a macro in socket.h */ |
11 | /* int | 13 | /* int |
12 | * sbspace(struct sockbuff *sb) | 14 | * sbspace(struct sockbuff *sb) |
@@ -133,10 +135,8 @@ sbappend(so, m) | @@ -133,10 +135,8 @@ sbappend(so, m) | ||
133 | * Copy the data from m into sb | 135 | * Copy the data from m into sb |
134 | * The caller is responsible to make sure there's enough room | 136 | * The caller is responsible to make sure there's enough room |
135 | */ | 137 | */ |
136 | -void | ||
137 | -sbappendsb(sb, m) | ||
138 | - struct sbuf *sb; | ||
139 | - struct mbuf *m; | 138 | +static void |
139 | +sbappendsb(struct sbuf *sb, struct mbuf *m) | ||
140 | { | 140 | { |
141 | int len, n, nn; | 141 | int len, n, nn; |
142 | 142 |
slirp/sbuf.h
@@ -25,7 +25,6 @@ void sbfree _P((struct sbuf *)); | @@ -25,7 +25,6 @@ void sbfree _P((struct sbuf *)); | ||
25 | void sbdrop _P((struct sbuf *, int)); | 25 | void sbdrop _P((struct sbuf *, int)); |
26 | void sbreserve _P((struct sbuf *, int)); | 26 | void sbreserve _P((struct sbuf *, int)); |
27 | void sbappend _P((struct socket *, struct mbuf *)); | 27 | void sbappend _P((struct socket *, struct mbuf *)); |
28 | -void sbappendsb _P((struct sbuf *, struct mbuf *)); | ||
29 | void sbcopy _P((struct sbuf *, int, int, char *)); | 28 | void sbcopy _P((struct sbuf *, int, int, char *)); |
30 | 29 | ||
31 | #endif | 30 | #endif |
slirp/slirp.c
@@ -12,7 +12,7 @@ struct in_addr special_addr; | @@ -12,7 +12,7 @@ struct in_addr special_addr; | ||
12 | /* virtual address alias for host */ | 12 | /* virtual address alias for host */ |
13 | struct in_addr alias_addr; | 13 | struct in_addr alias_addr; |
14 | 14 | ||
15 | -const uint8_t special_ethaddr[6] = { | 15 | +static const uint8_t special_ethaddr[6] = { |
16 | 0x52, 0x54, 0x00, 0x12, 0x35, 0x00 | 16 | 0x52, 0x54, 0x00, 0x12, 0x35, 0x00 |
17 | }; | 17 | }; |
18 | 18 | ||
@@ -130,7 +130,7 @@ static int get_dns_addr(struct in_addr *pdns_addr) | @@ -130,7 +130,7 @@ static int get_dns_addr(struct in_addr *pdns_addr) | ||
130 | #endif | 130 | #endif |
131 | 131 | ||
132 | #ifdef _WIN32 | 132 | #ifdef _WIN32 |
133 | -void slirp_cleanup(void) | 133 | +static void slirp_cleanup(void) |
134 | { | 134 | { |
135 | WSACleanup(); | 135 | WSACleanup(); |
136 | } | 136 | } |
slirp/slirp.h
@@ -280,6 +280,9 @@ extern int do_echo; | @@ -280,6 +280,9 @@ extern int do_echo; | ||
280 | 280 | ||
281 | #define DEFAULT_BAUD 115200 | 281 | #define DEFAULT_BAUD 115200 |
282 | 282 | ||
283 | +#define SO_OPTIONS DO_KEEPALIVE | ||
284 | +#define TCP_MAXIDLE (TCPTV_KEEPCNT * TCPTV_KEEPINTVL) | ||
285 | + | ||
283 | /* cksum.c */ | 286 | /* cksum.c */ |
284 | int cksum(struct mbuf *m, int len); | 287 | int cksum(struct mbuf *m, int len); |
285 | 288 | ||
@@ -290,10 +293,6 @@ void if_output _P((struct socket *, struct mbuf *)); | @@ -290,10 +293,6 @@ void if_output _P((struct socket *, struct mbuf *)); | ||
290 | /* ip_input.c */ | 293 | /* ip_input.c */ |
291 | void ip_init _P((void)); | 294 | void ip_init _P((void)); |
292 | void ip_input _P((struct mbuf *)); | 295 | void ip_input _P((struct mbuf *)); |
293 | -struct ip * ip_reass _P((register struct ipasfrag *, register struct ipq *)); | ||
294 | -void ip_freef _P((struct ipq *)); | ||
295 | -void ip_enq _P((register struct ipasfrag *, register struct ipasfrag *)); | ||
296 | -void ip_deq _P((register struct ipasfrag *)); | ||
297 | void ip_slowtimo _P((void)); | 296 | void ip_slowtimo _P((void)); |
298 | void ip_stripoptions _P((register struct mbuf *, struct mbuf *)); | 297 | void ip_stripoptions _P((register struct mbuf *, struct mbuf *)); |
299 | 298 | ||
@@ -301,10 +300,7 @@ void ip_stripoptions _P((register struct mbuf *, struct mbuf *)); | @@ -301,10 +300,7 @@ void ip_stripoptions _P((register struct mbuf *, struct mbuf *)); | ||
301 | int ip_output _P((struct socket *, struct mbuf *)); | 300 | int ip_output _P((struct socket *, struct mbuf *)); |
302 | 301 | ||
303 | /* tcp_input.c */ | 302 | /* tcp_input.c */ |
304 | -int tcp_reass _P((register struct tcpcb *, register struct tcpiphdr *, struct mbuf *)); | ||
305 | void tcp_input _P((register struct mbuf *, int, struct socket *)); | 303 | void tcp_input _P((register struct mbuf *, int, struct socket *)); |
306 | -void tcp_dooptions _P((struct tcpcb *, u_char *, int, struct tcpiphdr *)); | ||
307 | -void tcp_xmit_timer _P((register struct tcpcb *, int)); | ||
308 | int tcp_mss _P((register struct tcpcb *, u_int)); | 304 | int tcp_mss _P((register struct tcpcb *, u_int)); |
309 | 305 | ||
310 | /* tcp_output.c */ | 306 | /* tcp_output.c */ |
@@ -317,7 +313,6 @@ void tcp_template _P((struct tcpcb *)); | @@ -317,7 +313,6 @@ void tcp_template _P((struct tcpcb *)); | ||
317 | void tcp_respond _P((struct tcpcb *, register struct tcpiphdr *, register struct mbuf *, tcp_seq, tcp_seq, int)); | 313 | void tcp_respond _P((struct tcpcb *, register struct tcpiphdr *, register struct mbuf *, tcp_seq, tcp_seq, int)); |
318 | struct tcpcb * tcp_newtcpcb _P((struct socket *)); | 314 | struct tcpcb * tcp_newtcpcb _P((struct socket *)); |
319 | struct tcpcb * tcp_close _P((register struct tcpcb *)); | 315 | struct tcpcb * tcp_close _P((register struct tcpcb *)); |
320 | -void tcp_drain _P((void)); | ||
321 | void tcp_sockclosed _P((struct tcpcb *)); | 316 | void tcp_sockclosed _P((struct tcpcb *)); |
322 | int tcp_fconnect _P((struct socket *)); | 317 | int tcp_fconnect _P((struct socket *)); |
323 | void tcp_connect _P((struct socket *)); | 318 | void tcp_connect _P((struct socket *)); |
slirp/socket.c
@@ -13,12 +13,16 @@ | @@ -13,12 +13,16 @@ | ||
13 | #include <sys/filio.h> | 13 | #include <sys/filio.h> |
14 | #endif | 14 | #endif |
15 | 15 | ||
16 | -void | 16 | +static void sofcantrcvmore(struct socket *so); |
17 | +static void sofcantsendmore(struct socket *so); | ||
18 | + | ||
19 | +#if 0 | ||
20 | +static void | ||
17 | so_init() | 21 | so_init() |
18 | { | 22 | { |
19 | /* Nothing yet */ | 23 | /* Nothing yet */ |
20 | } | 24 | } |
21 | - | 25 | +#endif |
22 | 26 | ||
23 | struct socket * | 27 | struct socket * |
24 | solookup(head, laddr, lport, faddr, fport) | 28 | solookup(head, laddr, lport, faddr, fport) |
@@ -421,7 +425,7 @@ sorecvfrom(so) | @@ -421,7 +425,7 @@ sorecvfrom(so) | ||
421 | int len, n; | 425 | int len, n; |
422 | 426 | ||
423 | if (!(m = m_get())) return; | 427 | if (!(m = m_get())) return; |
424 | - m->m_data += if_maxlinkhdr; | 428 | + m->m_data += IF_MAXLINKHDR; |
425 | 429 | ||
426 | /* | 430 | /* |
427 | * XXX Shouldn't FIONREAD packets destined for port 53, | 431 | * XXX Shouldn't FIONREAD packets destined for port 53, |
@@ -604,12 +608,13 @@ solisten(port, laddr, lport, flags) | @@ -604,12 +608,13 @@ solisten(port, laddr, lport, flags) | ||
604 | return so; | 608 | return so; |
605 | } | 609 | } |
606 | 610 | ||
611 | +#if 0 | ||
607 | /* | 612 | /* |
608 | * Data is available in so_rcv | 613 | * Data is available in so_rcv |
609 | * Just write() the data to the socket | 614 | * Just write() the data to the socket |
610 | * XXX not yet... | 615 | * XXX not yet... |
611 | */ | 616 | */ |
612 | -void | 617 | +static void |
613 | sorwakeup(so) | 618 | sorwakeup(so) |
614 | struct socket *so; | 619 | struct socket *so; |
615 | { | 620 | { |
@@ -622,12 +627,13 @@ sorwakeup(so) | @@ -622,12 +627,13 @@ sorwakeup(so) | ||
622 | * We have room for a read() if we want to | 627 | * We have room for a read() if we want to |
623 | * For now, don't read, it'll be done in the main loop | 628 | * For now, don't read, it'll be done in the main loop |
624 | */ | 629 | */ |
625 | -void | 630 | +static void |
626 | sowwakeup(so) | 631 | sowwakeup(so) |
627 | struct socket *so; | 632 | struct socket *so; |
628 | { | 633 | { |
629 | /* Nothing, yet */ | 634 | /* Nothing, yet */ |
630 | } | 635 | } |
636 | +#endif | ||
631 | 637 | ||
632 | /* | 638 | /* |
633 | * Various session state calls | 639 | * Various session state calls |
@@ -652,9 +658,8 @@ soisfconnected(so) | @@ -652,9 +658,8 @@ soisfconnected(so) | ||
652 | so->so_state |= SS_ISFCONNECTED; /* Clobber other states */ | 658 | so->so_state |= SS_ISFCONNECTED; /* Clobber other states */ |
653 | } | 659 | } |
654 | 660 | ||
655 | -void | ||
656 | -sofcantrcvmore(so) | ||
657 | - struct socket *so; | 661 | +static void |
662 | +sofcantrcvmore(struct socket *so) | ||
658 | { | 663 | { |
659 | if ((so->so_state & SS_NOFDREF) == 0) { | 664 | if ((so->so_state & SS_NOFDREF) == 0) { |
660 | shutdown(so->s,0); | 665 | shutdown(so->s,0); |
@@ -669,9 +674,8 @@ sofcantrcvmore(so) | @@ -669,9 +674,8 @@ sofcantrcvmore(so) | ||
669 | so->so_state |= SS_FCANTRCVMORE; | 674 | so->so_state |= SS_FCANTRCVMORE; |
670 | } | 675 | } |
671 | 676 | ||
672 | -void | ||
673 | -sofcantsendmore(so) | ||
674 | - struct socket *so; | 677 | +static void |
678 | +sofcantsendmore(struct socket *so) | ||
675 | { | 679 | { |
676 | if ((so->so_state & SS_NOFDREF) == 0) { | 680 | if ((so->so_state & SS_NOFDREF) == 0) { |
677 | shutdown(so->s,1); /* send FIN to fhost */ | 681 | shutdown(so->s,1); /* send FIN to fhost */ |
slirp/socket.h
@@ -81,7 +81,6 @@ struct iovec { | @@ -81,7 +81,6 @@ struct iovec { | ||
81 | }; | 81 | }; |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | -void so_init _P((void)); | ||
85 | struct socket * solookup _P((struct socket *, struct in_addr, u_int, struct in_addr, u_int)); | 84 | struct socket * solookup _P((struct socket *, struct in_addr, u_int, struct in_addr, u_int)); |
86 | struct socket * socreate _P((void)); | 85 | struct socket * socreate _P((void)); |
87 | void sofree _P((struct socket *)); | 86 | void sofree _P((struct socket *)); |
@@ -92,12 +91,8 @@ int sowrite _P((struct socket *)); | @@ -92,12 +91,8 @@ int sowrite _P((struct socket *)); | ||
92 | void sorecvfrom _P((struct socket *)); | 91 | void sorecvfrom _P((struct socket *)); |
93 | int sosendto _P((struct socket *, struct mbuf *)); | 92 | int sosendto _P((struct socket *, struct mbuf *)); |
94 | struct socket * solisten _P((u_int, u_int32_t, u_int, int)); | 93 | struct socket * solisten _P((u_int, u_int32_t, u_int, int)); |
95 | -void sorwakeup _P((struct socket *)); | ||
96 | -void sowwakeup _P((struct socket *)); | ||
97 | void soisfconnecting _P((register struct socket *)); | 94 | void soisfconnecting _P((register struct socket *)); |
98 | void soisfconnected _P((register struct socket *)); | 95 | void soisfconnected _P((register struct socket *)); |
99 | -void sofcantrcvmore _P((struct socket *)); | ||
100 | -void sofcantsendmore _P((struct socket *)); | ||
101 | void soisfdisconnected _P((struct socket *)); | 96 | void soisfdisconnected _P((struct socket *)); |
102 | void sofwdrain _P((struct socket *)); | 97 | void sofwdrain _P((struct socket *)); |
103 | 98 |
slirp/tcp.h
@@ -42,8 +42,6 @@ typedef u_int32_t tcp_seq; | @@ -42,8 +42,6 @@ typedef u_int32_t tcp_seq; | ||
42 | #define PR_SLOWHZ 2 /* 2 slow timeouts per second (approx) */ | 42 | #define PR_SLOWHZ 2 /* 2 slow timeouts per second (approx) */ |
43 | #define PR_FASTHZ 5 /* 5 fast timeouts per second (not important) */ | 43 | #define PR_FASTHZ 5 /* 5 fast timeouts per second (not important) */ |
44 | 44 | ||
45 | -extern int tcp_rcvspace; | ||
46 | -extern int tcp_sndspace; | ||
47 | extern struct socket *tcp_last_so; | 45 | extern struct socket *tcp_last_so; |
48 | 46 | ||
49 | #define TCP_SNDSPACE 8192 | 47 | #define TCP_SNDSPACE 8192 |
@@ -172,6 +170,6 @@ struct tcphdr { | @@ -172,6 +170,6 @@ struct tcphdr { | ||
172 | 170 | ||
173 | extern tcp_seq tcp_iss; /* tcp initial send seq # */ | 171 | extern tcp_seq tcp_iss; /* tcp initial send seq # */ |
174 | 172 | ||
175 | -extern char *tcpstates[]; | 173 | +extern const char * const tcpstates[]; |
176 | 174 | ||
177 | #endif | 175 | #endif |
slirp/tcp_input.c
@@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
47 | 47 | ||
48 | struct socket tcb; | 48 | struct socket tcb; |
49 | 49 | ||
50 | -int tcprexmtthresh = 3; | 50 | +#define TCPREXMTTHRESH 3 |
51 | struct socket *tcp_last_so = &tcb; | 51 | struct socket *tcp_last_so = &tcb; |
52 | 52 | ||
53 | tcp_seq tcp_iss; /* tcp initial send seq # */ | 53 | tcp_seq tcp_iss; /* tcp initial send seq # */ |
@@ -112,12 +112,13 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | @@ -112,12 +112,13 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | ||
112 | } \ | 112 | } \ |
113 | } | 113 | } |
114 | #endif | 114 | #endif |
115 | +static void tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, | ||
116 | + struct tcpiphdr *ti); | ||
117 | +static void tcp_xmit_timer(register struct tcpcb *tp, int rtt); | ||
115 | 118 | ||
116 | -int | ||
117 | -tcp_reass(tp, ti, m) | ||
118 | - register struct tcpcb *tp; | ||
119 | - register struct tcpiphdr *ti; | ||
120 | - struct mbuf *m; | 119 | +static int |
120 | +tcp_reass(register struct tcpcb *tp, register struct tcpiphdr *ti, | ||
121 | + struct mbuf *m) | ||
121 | { | 122 | { |
122 | register struct tcpiphdr *q; | 123 | register struct tcpiphdr *q; |
123 | struct socket *so = tp->t_socket; | 124 | struct socket *so = tp->t_socket; |
@@ -402,8 +403,8 @@ findso: | @@ -402,8 +403,8 @@ findso: | ||
402 | goto dropwithreset; | 403 | goto dropwithreset; |
403 | } | 404 | } |
404 | 405 | ||
405 | - sbreserve(&so->so_snd, tcp_sndspace); | ||
406 | - sbreserve(&so->so_rcv, tcp_rcvspace); | 406 | + sbreserve(&so->so_snd, TCP_SNDSPACE); |
407 | + sbreserve(&so->so_rcv, TCP_RCVSPACE); | ||
407 | 408 | ||
408 | /* tcp_last_so = so; */ /* XXX ? */ | 409 | /* tcp_last_so = so; */ /* XXX ? */ |
409 | /* tp = sototcpcb(so); */ | 410 | /* tp = sototcpcb(so); */ |
@@ -448,10 +449,10 @@ findso: | @@ -448,10 +449,10 @@ findso: | ||
448 | * Reset idle time and keep-alive timer. | 449 | * Reset idle time and keep-alive timer. |
449 | */ | 450 | */ |
450 | tp->t_idle = 0; | 451 | tp->t_idle = 0; |
451 | - if (so_options) | ||
452 | - tp->t_timer[TCPT_KEEP] = tcp_keepintvl; | 452 | + if (SO_OPTIONS) |
453 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; | ||
453 | else | 454 | else |
454 | - tp->t_timer[TCPT_KEEP] = tcp_keepidle; | 455 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE; |
455 | 456 | ||
456 | /* | 457 | /* |
457 | * Process options if not in LISTEN state, | 458 | * Process options if not in LISTEN state, |
@@ -1102,7 +1103,7 @@ trimthenstep6: | @@ -1102,7 +1103,7 @@ trimthenstep6: | ||
1102 | if (tp->t_timer[TCPT_REXMT] == 0 || | 1103 | if (tp->t_timer[TCPT_REXMT] == 0 || |
1103 | ti->ti_ack != tp->snd_una) | 1104 | ti->ti_ack != tp->snd_una) |
1104 | tp->t_dupacks = 0; | 1105 | tp->t_dupacks = 0; |
1105 | - else if (++tp->t_dupacks == tcprexmtthresh) { | 1106 | + else if (++tp->t_dupacks == TCPREXMTTHRESH) { |
1106 | tcp_seq onxt = tp->snd_nxt; | 1107 | tcp_seq onxt = tp->snd_nxt; |
1107 | u_int win = | 1108 | u_int win = |
1108 | min(tp->snd_wnd, tp->snd_cwnd) / 2 / | 1109 | min(tp->snd_wnd, tp->snd_cwnd) / 2 / |
@@ -1121,7 +1122,7 @@ trimthenstep6: | @@ -1121,7 +1122,7 @@ trimthenstep6: | ||
1121 | if (SEQ_GT(onxt, tp->snd_nxt)) | 1122 | if (SEQ_GT(onxt, tp->snd_nxt)) |
1122 | tp->snd_nxt = onxt; | 1123 | tp->snd_nxt = onxt; |
1123 | goto drop; | 1124 | goto drop; |
1124 | - } else if (tp->t_dupacks > tcprexmtthresh) { | 1125 | + } else if (tp->t_dupacks > TCPREXMTTHRESH) { |
1125 | tp->snd_cwnd += tp->t_maxseg; | 1126 | tp->snd_cwnd += tp->t_maxseg; |
1126 | (void) tcp_output(tp); | 1127 | (void) tcp_output(tp); |
1127 | goto drop; | 1128 | goto drop; |
@@ -1135,7 +1136,7 @@ trimthenstep6: | @@ -1135,7 +1136,7 @@ trimthenstep6: | ||
1135 | * If the congestion window was inflated to account | 1136 | * If the congestion window was inflated to account |
1136 | * for the other side's cached packets, retract it. | 1137 | * for the other side's cached packets, retract it. |
1137 | */ | 1138 | */ |
1138 | - if (tp->t_dupacks > tcprexmtthresh && | 1139 | + if (tp->t_dupacks > TCPREXMTTHRESH && |
1139 | tp->snd_cwnd > tp->snd_ssthresh) | 1140 | tp->snd_cwnd > tp->snd_ssthresh) |
1140 | tp->snd_cwnd = tp->snd_ssthresh; | 1141 | tp->snd_cwnd = tp->snd_ssthresh; |
1141 | tp->t_dupacks = 0; | 1142 | tp->t_dupacks = 0; |
@@ -1227,7 +1228,7 @@ trimthenstep6: | @@ -1227,7 +1228,7 @@ trimthenstep6: | ||
1227 | */ | 1228 | */ |
1228 | if (so->so_state & SS_FCANTRCVMORE) { | 1229 | if (so->so_state & SS_FCANTRCVMORE) { |
1229 | soisfdisconnected(so); | 1230 | soisfdisconnected(so); |
1230 | - tp->t_timer[TCPT_2MSL] = tcp_maxidle; | 1231 | + tp->t_timer[TCPT_2MSL] = TCP_MAXIDLE; |
1231 | } | 1232 | } |
1232 | tp->t_state = TCPS_FIN_WAIT_2; | 1233 | tp->t_state = TCPS_FIN_WAIT_2; |
1233 | } | 1234 | } |
@@ -1490,12 +1491,8 @@ drop: | @@ -1490,12 +1491,8 @@ drop: | ||
1490 | /* int *ts_present; | 1491 | /* int *ts_present; |
1491 | * u_int32_t *ts_val, *ts_ecr; | 1492 | * u_int32_t *ts_val, *ts_ecr; |
1492 | */ | 1493 | */ |
1493 | -void | ||
1494 | -tcp_dooptions(tp, cp, cnt, ti) | ||
1495 | - struct tcpcb *tp; | ||
1496 | - u_char *cp; | ||
1497 | - int cnt; | ||
1498 | - struct tcpiphdr *ti; | 1494 | +static void |
1495 | +tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, struct tcpiphdr *ti) | ||
1499 | { | 1496 | { |
1500 | u_int16_t mss; | 1497 | u_int16_t mss; |
1501 | int opt, optlen; | 1498 | int opt, optlen; |
@@ -1605,10 +1602,8 @@ tcp_pulloutofband(so, ti, m) | @@ -1605,10 +1602,8 @@ tcp_pulloutofband(so, ti, m) | ||
1605 | * and update averages and current timeout. | 1602 | * and update averages and current timeout. |
1606 | */ | 1603 | */ |
1607 | 1604 | ||
1608 | -void | ||
1609 | -tcp_xmit_timer(tp, rtt) | ||
1610 | - register struct tcpcb *tp; | ||
1611 | - int rtt; | 1605 | +static void |
1606 | +tcp_xmit_timer(register struct tcpcb *tp, int rtt) | ||
1612 | { | 1607 | { |
1613 | register short delta; | 1608 | register short delta; |
1614 | 1609 | ||
@@ -1707,7 +1702,7 @@ tcp_mss(tp, offer) | @@ -1707,7 +1702,7 @@ tcp_mss(tp, offer) | ||
1707 | DEBUG_ARG("tp = %lx", (long)tp); | 1702 | DEBUG_ARG("tp = %lx", (long)tp); |
1708 | DEBUG_ARG("offer = %d", offer); | 1703 | DEBUG_ARG("offer = %d", offer); |
1709 | 1704 | ||
1710 | - mss = min(if_mtu, if_mru) - sizeof(struct tcpiphdr); | 1705 | + mss = min(IF_MTU, IF_MRU) - sizeof(struct tcpiphdr); |
1711 | if (offer) | 1706 | if (offer) |
1712 | mss = min(mss, offer); | 1707 | mss = min(mss, offer); |
1713 | mss = max(mss, 32); | 1708 | mss = max(mss, 32); |
@@ -1716,8 +1711,12 @@ tcp_mss(tp, offer) | @@ -1716,8 +1711,12 @@ tcp_mss(tp, offer) | ||
1716 | 1711 | ||
1717 | tp->snd_cwnd = mss; | 1712 | tp->snd_cwnd = mss; |
1718 | 1713 | ||
1719 | - sbreserve(&so->so_snd, tcp_sndspace+((tcp_sndspace%mss)?(mss-(tcp_sndspace%mss)):0)); | ||
1720 | - sbreserve(&so->so_rcv, tcp_rcvspace+((tcp_rcvspace%mss)?(mss-(tcp_rcvspace%mss)):0)); | 1714 | + sbreserve(&so->so_snd, TCP_SNDSPACE + ((TCP_SNDSPACE % mss) ? |
1715 | + (mss - (TCP_SNDSPACE % mss)) : | ||
1716 | + 0)); | ||
1717 | + sbreserve(&so->so_rcv, TCP_RCVSPACE + ((TCP_RCVSPACE % mss) ? | ||
1718 | + (mss - (TCP_RCVSPACE % mss)) : | ||
1719 | + 0)); | ||
1721 | 1720 | ||
1722 | DEBUG_MISC((dfd, " returning mss = %d\n", mss)); | 1721 | DEBUG_MISC((dfd, " returning mss = %d\n", mss)); |
1723 | 1722 |
slirp/tcp_output.c
@@ -48,14 +48,14 @@ | @@ -48,14 +48,14 @@ | ||
48 | * Since this is only used in "stats socket", we give meaning | 48 | * Since this is only used in "stats socket", we give meaning |
49 | * names instead of the REAL names | 49 | * names instead of the REAL names |
50 | */ | 50 | */ |
51 | -char *tcpstates[] = { | 51 | +const char * const tcpstates[] = { |
52 | /* "CLOSED", "LISTEN", "SYN_SENT", "SYN_RCVD", */ | 52 | /* "CLOSED", "LISTEN", "SYN_SENT", "SYN_RCVD", */ |
53 | "REDIRECT", "LISTEN", "SYN_SENT", "SYN_RCVD", | 53 | "REDIRECT", "LISTEN", "SYN_SENT", "SYN_RCVD", |
54 | "ESTABLISHED", "CLOSE_WAIT", "FIN_WAIT_1", "CLOSING", | 54 | "ESTABLISHED", "CLOSE_WAIT", "FIN_WAIT_1", "CLOSING", |
55 | "LAST_ACK", "FIN_WAIT_2", "TIME_WAIT", | 55 | "LAST_ACK", "FIN_WAIT_2", "TIME_WAIT", |
56 | }; | 56 | }; |
57 | 57 | ||
58 | -u_char tcp_outflags[TCP_NSTATES] = { | 58 | +static const u_char tcp_outflags[TCP_NSTATES] = { |
59 | TH_RST|TH_ACK, 0, TH_SYN, TH_SYN|TH_ACK, | 59 | TH_RST|TH_ACK, 0, TH_SYN, TH_SYN|TH_ACK, |
60 | TH_ACK, TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, | 60 | TH_ACK, TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, |
61 | TH_FIN|TH_ACK, TH_ACK, TH_ACK, | 61 | TH_FIN|TH_ACK, TH_ACK, TH_ACK, |
@@ -354,7 +354,7 @@ send: | @@ -354,7 +354,7 @@ send: | ||
354 | error = 1; | 354 | error = 1; |
355 | goto out; | 355 | goto out; |
356 | } | 356 | } |
357 | - m->m_data += if_maxlinkhdr; | 357 | + m->m_data += IF_MAXLINKHDR; |
358 | m->m_len = hdrlen; | 358 | m->m_len = hdrlen; |
359 | 359 | ||
360 | /* | 360 | /* |
@@ -396,7 +396,7 @@ send: | @@ -396,7 +396,7 @@ send: | ||
396 | error = 1; | 396 | error = 1; |
397 | goto out; | 397 | goto out; |
398 | } | 398 | } |
399 | - m->m_data += if_maxlinkhdr; | 399 | + m->m_data += IF_MAXLINKHDR; |
400 | m->m_len = hdrlen; | 400 | m->m_len = hdrlen; |
401 | } | 401 | } |
402 | 402 | ||
@@ -536,7 +536,7 @@ send: | @@ -536,7 +536,7 @@ send: | ||
536 | 536 | ||
537 | ((struct ip *)ti)->ip_len = m->m_len; | 537 | ((struct ip *)ti)->ip_len = m->m_len; |
538 | 538 | ||
539 | - ((struct ip *)ti)->ip_ttl = ip_defttl; | 539 | + ((struct ip *)ti)->ip_ttl = IPDEFTTL; |
540 | ((struct ip *)ti)->ip_tos = so->so_iptos; | 540 | ((struct ip *)ti)->ip_tos = so->so_iptos; |
541 | 541 | ||
542 | /* #if BSD >= 43 */ | 542 | /* #if BSD >= 43 */ |
slirp/tcp_subr.c
@@ -46,11 +46,8 @@ | @@ -46,11 +46,8 @@ | ||
46 | #include <slirp.h> | 46 | #include <slirp.h> |
47 | 47 | ||
48 | /* patchable/settable parameters for tcp */ | 48 | /* patchable/settable parameters for tcp */ |
49 | -int tcp_mssdflt = TCP_MSS; | ||
50 | -int tcp_rttdflt = TCPTV_SRTTDFLT / PR_SLOWHZ; | ||
51 | -int tcp_do_rfc1323 = 0; /* Don't do rfc1323 performance enhancements */ | ||
52 | -int tcp_rcvspace; /* You may want to change this */ | ||
53 | -int tcp_sndspace; /* Keep small if you have an error prone link */ | 49 | +/* Don't do rfc1323 performance enhancements */ |
50 | +#define TCP_DO_RFC1323 0 | ||
54 | 51 | ||
55 | /* | 52 | /* |
56 | * Tcp initialization | 53 | * Tcp initialization |
@@ -60,14 +57,6 @@ tcp_init() | @@ -60,14 +57,6 @@ tcp_init() | ||
60 | { | 57 | { |
61 | tcp_iss = 1; /* wrong */ | 58 | tcp_iss = 1; /* wrong */ |
62 | tcb.so_next = tcb.so_prev = &tcb; | 59 | tcb.so_next = tcb.so_prev = &tcb; |
63 | - | ||
64 | - /* tcp_rcvspace = our Window we advertise to the remote */ | ||
65 | - tcp_rcvspace = TCP_RCVSPACE; | ||
66 | - tcp_sndspace = TCP_SNDSPACE; | ||
67 | - | ||
68 | - /* Make sure tcp_sndspace is at least 2*MSS */ | ||
69 | - if (tcp_sndspace < 2*(min(if_mtu, if_mru) - sizeof(struct tcpiphdr))) | ||
70 | - tcp_sndspace = 2*(min(if_mtu, if_mru) - sizeof(struct tcpiphdr)); | ||
71 | } | 60 | } |
72 | 61 | ||
73 | /* | 62 | /* |
@@ -145,7 +134,7 @@ tcp_respond(tp, ti, m, ack, seq, flags) | @@ -145,7 +134,7 @@ tcp_respond(tp, ti, m, ack, seq, flags) | ||
145 | #else | 134 | #else |
146 | tlen = 0; | 135 | tlen = 0; |
147 | #endif | 136 | #endif |
148 | - m->m_data += if_maxlinkhdr; | 137 | + m->m_data += IF_MAXLINKHDR; |
149 | *mtod(m, struct tcpiphdr *) = *ti; | 138 | *mtod(m, struct tcpiphdr *) = *ti; |
150 | ti = mtod(m, struct tcpiphdr *); | 139 | ti = mtod(m, struct tcpiphdr *); |
151 | flags = TH_ACK; | 140 | flags = TH_ACK; |
@@ -186,7 +175,7 @@ tcp_respond(tp, ti, m, ack, seq, flags) | @@ -186,7 +175,7 @@ tcp_respond(tp, ti, m, ack, seq, flags) | ||
186 | if(flags & TH_RST) | 175 | if(flags & TH_RST) |
187 | ((struct ip *)ti)->ip_ttl = MAXTTL; | 176 | ((struct ip *)ti)->ip_ttl = MAXTTL; |
188 | else | 177 | else |
189 | - ((struct ip *)ti)->ip_ttl = ip_defttl; | 178 | + ((struct ip *)ti)->ip_ttl = IPDEFTTL; |
190 | 179 | ||
191 | (void) ip_output((struct socket *)0, m); | 180 | (void) ip_output((struct socket *)0, m); |
192 | } | 181 | } |
@@ -208,9 +197,9 @@ tcp_newtcpcb(so) | @@ -208,9 +197,9 @@ tcp_newtcpcb(so) | ||
208 | 197 | ||
209 | memset((char *) tp, 0, sizeof(struct tcpcb)); | 198 | memset((char *) tp, 0, sizeof(struct tcpcb)); |
210 | tp->seg_next = tp->seg_prev = (tcpiphdrp_32)tp; | 199 | tp->seg_next = tp->seg_prev = (tcpiphdrp_32)tp; |
211 | - tp->t_maxseg = tcp_mssdflt; | 200 | + tp->t_maxseg = TCP_MSS; |
212 | 201 | ||
213 | - tp->t_flags = tcp_do_rfc1323 ? (TF_REQ_SCALE|TF_REQ_TSTMP) : 0; | 202 | + tp->t_flags = TCP_DO_RFC1323 ? (TF_REQ_SCALE|TF_REQ_TSTMP) : 0; |
214 | tp->t_socket = so; | 203 | tp->t_socket = so; |
215 | 204 | ||
216 | /* | 205 | /* |
@@ -219,7 +208,7 @@ tcp_newtcpcb(so) | @@ -219,7 +208,7 @@ tcp_newtcpcb(so) | ||
219 | * reasonable initial retransmit time. | 208 | * reasonable initial retransmit time. |
220 | */ | 209 | */ |
221 | tp->t_srtt = TCPTV_SRTTBASE; | 210 | tp->t_srtt = TCPTV_SRTTBASE; |
222 | - tp->t_rttvar = tcp_rttdflt * PR_SLOWHZ << 2; | 211 | + tp->t_rttvar = TCPTV_SRTTDFLT << 2; |
223 | tp->t_rttmin = TCPTV_MIN; | 212 | tp->t_rttmin = TCPTV_MIN; |
224 | 213 | ||
225 | TCPT_RANGESET(tp->t_rxtcur, | 214 | TCPT_RANGESET(tp->t_rxtcur, |
@@ -309,6 +298,7 @@ tcp_close(tp) | @@ -309,6 +298,7 @@ tcp_close(tp) | ||
309 | return ((struct tcpcb *)0); | 298 | return ((struct tcpcb *)0); |
310 | } | 299 | } |
311 | 300 | ||
301 | +#ifdef notdef | ||
312 | void | 302 | void |
313 | tcp_drain() | 303 | tcp_drain() |
314 | { | 304 | { |
@@ -319,9 +309,6 @@ tcp_drain() | @@ -319,9 +309,6 @@ tcp_drain() | ||
319 | * When a source quench is received, close congestion window | 309 | * When a source quench is received, close congestion window |
320 | * to one segment. We will gradually open it again as we proceed. | 310 | * to one segment. We will gradually open it again as we proceed. |
321 | */ | 311 | */ |
322 | - | ||
323 | -#ifdef notdef | ||
324 | - | ||
325 | void | 312 | void |
326 | tcp_quench(i, errno) | 313 | tcp_quench(i, errno) |
327 | 314 | ||
@@ -556,7 +543,7 @@ tcp_attach(so) | @@ -556,7 +543,7 @@ tcp_attach(so) | ||
556 | /* | 543 | /* |
557 | * Set the socket's type of service field | 544 | * Set the socket's type of service field |
558 | */ | 545 | */ |
559 | -struct tos_t tcptos[] = { | 546 | +static const struct tos_t tcptos[] = { |
560 | {0, 20, IPTOS_THROUGHPUT, 0}, /* ftp data */ | 547 | {0, 20, IPTOS_THROUGHPUT, 0}, /* ftp data */ |
561 | {21, 21, IPTOS_LOWDELAY, EMU_FTP}, /* ftp control */ | 548 | {21, 21, IPTOS_LOWDELAY, EMU_FTP}, /* ftp control */ |
562 | {0, 23, IPTOS_LOWDELAY, 0}, /* telnet */ | 549 | {0, 23, IPTOS_LOWDELAY, 0}, /* telnet */ |
@@ -572,7 +559,7 @@ struct tos_t tcptos[] = { | @@ -572,7 +559,7 @@ struct tos_t tcptos[] = { | ||
572 | {0, 0, 0, 0} | 559 | {0, 0, 0, 0} |
573 | }; | 560 | }; |
574 | 561 | ||
575 | -struct emu_t *tcpemu = 0; | 562 | +static struct emu_t *tcpemu = 0; |
576 | 563 | ||
577 | /* | 564 | /* |
578 | * Return TOS according to the above table | 565 | * Return TOS according to the above table |
@@ -665,7 +652,7 @@ tcp_emu(so, m) | @@ -665,7 +652,7 @@ tcp_emu(so, m) | ||
665 | so_rcv->sb_rptr += m->m_len; | 652 | so_rcv->sb_rptr += m->m_len; |
666 | m->m_data[m->m_len] = 0; /* NULL terminate */ | 653 | m->m_data[m->m_len] = 0; /* NULL terminate */ |
667 | if (strchr(m->m_data, '\r') || strchr(m->m_data, '\n')) { | 654 | if (strchr(m->m_data, '\r') || strchr(m->m_data, '\n')) { |
668 | - if (sscanf(so_rcv->sb_data, "%d%*[ ,]%d", &n1, &n2) == 2) { | 655 | + if (sscanf(so_rcv->sb_data, "%u%*[ ,]%u", &n1, &n2) == 2) { |
669 | HTONS(n1); | 656 | HTONS(n1); |
670 | HTONS(n2); | 657 | HTONS(n2); |
671 | /* n2 is the one on our host */ | 658 | /* n2 is the one on our host */ |
@@ -991,7 +978,7 @@ do_prompt: | @@ -991,7 +978,7 @@ do_prompt: | ||
991 | /* | 978 | /* |
992 | * Need to emulate the PORT command | 979 | * Need to emulate the PORT command |
993 | */ | 980 | */ |
994 | - x = sscanf(bptr, "ORT %d,%d,%d,%d,%d,%d\r\n%256[^\177]", | 981 | + x = sscanf(bptr, "ORT %u,%u,%u,%u,%u,%u\r\n%256[^\177]", |
995 | &n1, &n2, &n3, &n4, &n5, &n6, buff); | 982 | &n1, &n2, &n3, &n4, &n5, &n6, buff); |
996 | if (x < 6) | 983 | if (x < 6) |
997 | return 1; | 984 | return 1; |
@@ -1022,7 +1009,7 @@ do_prompt: | @@ -1022,7 +1009,7 @@ do_prompt: | ||
1022 | /* | 1009 | /* |
1023 | * Need to emulate the PASV response | 1010 | * Need to emulate the PASV response |
1024 | */ | 1011 | */ |
1025 | - x = sscanf(bptr, "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%256[^\177]", | 1012 | + x = sscanf(bptr, "27 Entering Passive Mode (%u,%u,%u,%u,%u,%u)\r\n%256[^\177]", |
1026 | &n1, &n2, &n3, &n4, &n5, &n6, buff); | 1013 | &n1, &n2, &n3, &n4, &n5, &n6, buff); |
1027 | if (x < 6) | 1014 | if (x < 6) |
1028 | return 1; | 1015 | return 1; |
slirp/tcp_timer.c
@@ -36,17 +36,14 @@ | @@ -36,17 +36,14 @@ | ||
36 | 36 | ||
37 | #include <slirp.h> | 37 | #include <slirp.h> |
38 | 38 | ||
39 | -int tcp_keepidle = TCPTV_KEEP_IDLE; | ||
40 | -int tcp_keepintvl = TCPTV_KEEPINTVL; | ||
41 | -int tcp_maxidle; | ||
42 | -int so_options = DO_KEEPALIVE; | ||
43 | - | ||
44 | #ifdef LOG_ENABLED | 39 | #ifdef LOG_ENABLED |
45 | struct tcpstat tcpstat; /* tcp statistics */ | 40 | struct tcpstat tcpstat; /* tcp statistics */ |
46 | #endif | 41 | #endif |
47 | 42 | ||
48 | u_int32_t tcp_now; /* for RFC 1323 timestamps */ | 43 | u_int32_t tcp_now; /* for RFC 1323 timestamps */ |
49 | 44 | ||
45 | +static struct tcpcb *tcp_timers(register struct tcpcb *tp, int timer); | ||
46 | + | ||
50 | /* | 47 | /* |
51 | * Fast timeout routine for processing delayed acks | 48 | * Fast timeout routine for processing delayed acks |
52 | */ | 49 | */ |
@@ -84,7 +81,6 @@ tcp_slowtimo() | @@ -84,7 +81,6 @@ tcp_slowtimo() | ||
84 | 81 | ||
85 | DEBUG_CALL("tcp_slowtimo"); | 82 | DEBUG_CALL("tcp_slowtimo"); |
86 | 83 | ||
87 | - tcp_maxidle = TCPTV_KEEPCNT * tcp_keepintvl; | ||
88 | /* | 84 | /* |
89 | * Search through tcb's and update active timers. | 85 | * Search through tcb's and update active timers. |
90 | */ | 86 | */ |
@@ -130,16 +126,14 @@ tcp_canceltimers(tp) | @@ -130,16 +126,14 @@ tcp_canceltimers(tp) | ||
130 | tp->t_timer[i] = 0; | 126 | tp->t_timer[i] = 0; |
131 | } | 127 | } |
132 | 128 | ||
133 | -int tcp_backoff[TCP_MAXRXTSHIFT + 1] = | 129 | +const int tcp_backoff[TCP_MAXRXTSHIFT + 1] = |
134 | { 1, 2, 4, 8, 16, 32, 64, 64, 64, 64, 64, 64, 64 }; | 130 | { 1, 2, 4, 8, 16, 32, 64, 64, 64, 64, 64, 64, 64 }; |
135 | 131 | ||
136 | /* | 132 | /* |
137 | * TCP timer processing. | 133 | * TCP timer processing. |
138 | */ | 134 | */ |
139 | -struct tcpcb * | ||
140 | -tcp_timers(tp, timer) | ||
141 | - register struct tcpcb *tp; | ||
142 | - int timer; | 135 | +static struct tcpcb * |
136 | +tcp_timers(register struct tcpcb *tp, int timer) | ||
143 | { | 137 | { |
144 | register int rexmt; | 138 | register int rexmt; |
145 | 139 | ||
@@ -155,8 +149,8 @@ tcp_timers(tp, timer) | @@ -155,8 +149,8 @@ tcp_timers(tp, timer) | ||
155 | */ | 149 | */ |
156 | case TCPT_2MSL: | 150 | case TCPT_2MSL: |
157 | if (tp->t_state != TCPS_TIME_WAIT && | 151 | if (tp->t_state != TCPS_TIME_WAIT && |
158 | - tp->t_idle <= tcp_maxidle) | ||
159 | - tp->t_timer[TCPT_2MSL] = tcp_keepintvl; | 152 | + tp->t_idle <= TCP_MAXIDLE) |
153 | + tp->t_timer[TCPT_2MSL] = TCPTV_KEEPINTVL; | ||
160 | else | 154 | else |
161 | tp = tcp_close(tp); | 155 | tp = tcp_close(tp); |
162 | break; | 156 | break; |
@@ -287,8 +281,8 @@ tcp_timers(tp, timer) | @@ -287,8 +281,8 @@ tcp_timers(tp, timer) | ||
287 | goto dropit; | 281 | goto dropit; |
288 | 282 | ||
289 | /* if (tp->t_socket->so_options & SO_KEEPALIVE && */ | 283 | /* if (tp->t_socket->so_options & SO_KEEPALIVE && */ |
290 | - if ((so_options) && tp->t_state <= TCPS_CLOSE_WAIT) { | ||
291 | - if (tp->t_idle >= tcp_keepidle + tcp_maxidle) | 284 | + if ((SO_OPTIONS) && tp->t_state <= TCPS_CLOSE_WAIT) { |
285 | + if (tp->t_idle >= TCPTV_KEEP_IDLE + TCP_MAXIDLE) | ||
292 | goto dropit; | 286 | goto dropit; |
293 | /* | 287 | /* |
294 | * Send a packet designed to force a response | 288 | * Send a packet designed to force a response |
@@ -314,9 +308,9 @@ tcp_timers(tp, timer) | @@ -314,9 +308,9 @@ tcp_timers(tp, timer) | ||
314 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, | 308 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, |
315 | tp->rcv_nxt, tp->snd_una - 1, 0); | 309 | tp->rcv_nxt, tp->snd_una - 1, 0); |
316 | #endif | 310 | #endif |
317 | - tp->t_timer[TCPT_KEEP] = tcp_keepintvl; | 311 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; |
318 | } else | 312 | } else |
319 | - tp->t_timer[TCPT_KEEP] = tcp_keepidle; | 313 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE; |
320 | break; | 314 | break; |
321 | 315 | ||
322 | dropit: | 316 | dropit: |
slirp/tcp_timer.h
@@ -126,17 +126,12 @@ char *tcptimers[] = | @@ -126,17 +126,12 @@ char *tcptimers[] = | ||
126 | (tv) = (tvmax); \ | 126 | (tv) = (tvmax); \ |
127 | } | 127 | } |
128 | 128 | ||
129 | -extern int tcp_keepidle; /* time before keepalive probes begin */ | ||
130 | -extern int tcp_keepintvl; /* time between keepalive probes */ | ||
131 | -extern int tcp_maxidle; /* time to drop after starting probes */ | ||
132 | -extern int tcp_ttl; /* time to live for TCP segs */ | ||
133 | -extern int tcp_backoff[]; | 129 | +extern const int tcp_backoff[]; |
134 | 130 | ||
135 | struct tcpcb; | 131 | struct tcpcb; |
136 | 132 | ||
137 | void tcp_fasttimo _P((void)); | 133 | void tcp_fasttimo _P((void)); |
138 | void tcp_slowtimo _P((void)); | 134 | void tcp_slowtimo _P((void)); |
139 | void tcp_canceltimers _P((struct tcpcb *)); | 135 | void tcp_canceltimers _P((struct tcpcb *)); |
140 | -struct tcpcb * tcp_timers _P((register struct tcpcb *, int)); | ||
141 | 136 | ||
142 | #endif | 137 | #endif |
slirp/tftp.c
@@ -34,7 +34,7 @@ struct tftp_session { | @@ -34,7 +34,7 @@ struct tftp_session { | ||
34 | int timestamp; | 34 | int timestamp; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | -struct tftp_session tftp_sessions[TFTP_SESSIONS_MAX]; | 37 | +static struct tftp_session tftp_sessions[TFTP_SESSIONS_MAX]; |
38 | 38 | ||
39 | const char *tftp_prefix; | 39 | const char *tftp_prefix; |
40 | 40 | ||
@@ -143,7 +143,7 @@ static int tftp_send_oack(struct tftp_session *spt, | @@ -143,7 +143,7 @@ static int tftp_send_oack(struct tftp_session *spt, | ||
143 | 143 | ||
144 | memset(m->m_data, 0, m->m_size); | 144 | memset(m->m_data, 0, m->m_size); |
145 | 145 | ||
146 | - m->m_data += if_maxlinkhdr; | 146 | + m->m_data += IF_MAXLINKHDR; |
147 | tp = (void *)m->m_data; | 147 | tp = (void *)m->m_data; |
148 | m->m_data += sizeof(struct udpiphdr); | 148 | m->m_data += sizeof(struct udpiphdr); |
149 | 149 | ||
@@ -183,7 +183,7 @@ static int tftp_send_error(struct tftp_session *spt, | @@ -183,7 +183,7 @@ static int tftp_send_error(struct tftp_session *spt, | ||
183 | 183 | ||
184 | memset(m->m_data, 0, m->m_size); | 184 | memset(m->m_data, 0, m->m_size); |
185 | 185 | ||
186 | - m->m_data += if_maxlinkhdr; | 186 | + m->m_data += IF_MAXLINKHDR; |
187 | tp = (void *)m->m_data; | 187 | tp = (void *)m->m_data; |
188 | m->m_data += sizeof(struct udpiphdr); | 188 | m->m_data += sizeof(struct udpiphdr); |
189 | 189 | ||
@@ -230,7 +230,7 @@ static int tftp_send_data(struct tftp_session *spt, | @@ -230,7 +230,7 @@ static int tftp_send_data(struct tftp_session *spt, | ||
230 | 230 | ||
231 | memset(m->m_data, 0, m->m_size); | 231 | memset(m->m_data, 0, m->m_size); |
232 | 232 | ||
233 | - m->m_data += if_maxlinkhdr; | 233 | + m->m_data += IF_MAXLINKHDR; |
234 | tp = (void *)m->m_data; | 234 | tp = (void *)m->m_data; |
235 | m->m_data += sizeof(struct udpiphdr); | 235 | m->m_data += sizeof(struct udpiphdr); |
236 | 236 |
slirp/udp.c
@@ -51,14 +51,17 @@ struct udpstat udpstat; | @@ -51,14 +51,17 @@ struct udpstat udpstat; | ||
51 | 51 | ||
52 | struct socket udb; | 52 | struct socket udb; |
53 | 53 | ||
54 | +static u_int8_t udp_tos(struct socket *so); | ||
55 | +static void udp_emu(struct socket *so, struct mbuf *m); | ||
56 | + | ||
54 | /* | 57 | /* |
55 | * UDP protocol implementation. | 58 | * UDP protocol implementation. |
56 | * Per RFC 768, August, 1980. | 59 | * Per RFC 768, August, 1980. |
57 | */ | 60 | */ |
58 | #ifndef COMPAT_42 | 61 | #ifndef COMPAT_42 |
59 | -int udpcksum = 1; | 62 | +#define UDPCKSUM 1 |
60 | #else | 63 | #else |
61 | -int udpcksum = 0; /* XXX */ | 64 | +#define UDPCKSUM 0 /* XXX */ |
62 | #endif | 65 | #endif |
63 | 66 | ||
64 | struct socket *udp_last_so = &udb; | 67 | struct socket *udp_last_so = &udb; |
@@ -132,7 +135,7 @@ udp_input(m, iphlen) | @@ -132,7 +135,7 @@ udp_input(m, iphlen) | ||
132 | /* | 135 | /* |
133 | * Checksum extended UDP header and data. | 136 | * Checksum extended UDP header and data. |
134 | */ | 137 | */ |
135 | - if (udpcksum && uh->uh_sum) { | 138 | + if (UDPCKSUM && uh->uh_sum) { |
136 | ((struct ipovly *)ip)->ih_next = 0; | 139 | ((struct ipovly *)ip)->ih_next = 0; |
137 | ((struct ipovly *)ip)->ih_prev = 0; | 140 | ((struct ipovly *)ip)->ih_prev = 0; |
138 | ((struct ipovly *)ip)->ih_x1 = 0; | 141 | ((struct ipovly *)ip)->ih_x1 = 0; |
@@ -292,13 +295,13 @@ int udp_output2(struct socket *so, struct mbuf *m, | @@ -292,13 +295,13 @@ int udp_output2(struct socket *so, struct mbuf *m, | ||
292 | * Stuff checksum and output datagram. | 295 | * Stuff checksum and output datagram. |
293 | */ | 296 | */ |
294 | ui->ui_sum = 0; | 297 | ui->ui_sum = 0; |
295 | - if (udpcksum) { | 298 | + if (UDPCKSUM) { |
296 | if ((ui->ui_sum = cksum(m, /* sizeof (struct udpiphdr) + */ m->m_len)) == 0) | 299 | if ((ui->ui_sum = cksum(m, /* sizeof (struct udpiphdr) + */ m->m_len)) == 0) |
297 | ui->ui_sum = 0xffff; | 300 | ui->ui_sum = 0xffff; |
298 | } | 301 | } |
299 | ((struct ip *)ui)->ip_len = m->m_len; | 302 | ((struct ip *)ui)->ip_len = m->m_len; |
300 | 303 | ||
301 | - ((struct ip *)ui)->ip_ttl = ip_defttl; | 304 | + ((struct ip *)ui)->ip_ttl = IPDEFTTL; |
302 | ((struct ip *)ui)->ip_tos = iptos; | 305 | ((struct ip *)ui)->ip_tos = iptos; |
303 | 306 | ||
304 | STAT(udpstat.udps_opackets++); | 307 | STAT(udpstat.udps_opackets++); |
@@ -369,7 +372,7 @@ udp_detach(so) | @@ -369,7 +372,7 @@ udp_detach(so) | ||
369 | sofree(so); | 372 | sofree(so); |
370 | } | 373 | } |
371 | 374 | ||
372 | -struct tos_t udptos[] = { | 375 | +static const struct tos_t udptos[] = { |
373 | {0, 53, IPTOS_LOWDELAY, 0}, /* DNS */ | 376 | {0, 53, IPTOS_LOWDELAY, 0}, /* DNS */ |
374 | {517, 517, IPTOS_LOWDELAY, EMU_TALK}, /* talk */ | 377 | {517, 517, IPTOS_LOWDELAY, EMU_TALK}, /* talk */ |
375 | {518, 518, IPTOS_LOWDELAY, EMU_NTALK}, /* ntalk */ | 378 | {518, 518, IPTOS_LOWDELAY, EMU_NTALK}, /* ntalk */ |
@@ -377,9 +380,8 @@ struct tos_t udptos[] = { | @@ -377,9 +380,8 @@ struct tos_t udptos[] = { | ||
377 | {0, 0, 0, 0} | 380 | {0, 0, 0, 0} |
378 | }; | 381 | }; |
379 | 382 | ||
380 | -u_int8_t | ||
381 | -udp_tos(so) | ||
382 | - struct socket *so; | 383 | +static u_int8_t |
384 | +udp_tos(struct socket *so) | ||
383 | { | 385 | { |
384 | int i = 0; | 386 | int i = 0; |
385 | 387 | ||
@@ -402,10 +404,8 @@ udp_tos(so) | @@ -402,10 +404,8 @@ udp_tos(so) | ||
402 | /* | 404 | /* |
403 | * Here, talk/ytalk/ntalk requests must be emulated | 405 | * Here, talk/ytalk/ntalk requests must be emulated |
404 | */ | 406 | */ |
405 | -void | ||
406 | -udp_emu(so, m) | ||
407 | - struct socket *so; | ||
408 | - struct mbuf *m; | 407 | +static void |
408 | +udp_emu(struct socket *so, struct mbuf *m) | ||
409 | { | 409 | { |
410 | struct sockaddr_in addr; | 410 | struct sockaddr_in addr; |
411 | int addrlen = sizeof(addr); | 411 | int addrlen = sizeof(addr); |
slirp/udp.h
@@ -106,8 +106,6 @@ void udp_input _P((register struct mbuf *, int)); | @@ -106,8 +106,6 @@ void udp_input _P((register struct mbuf *, int)); | ||
106 | int udp_output _P((struct socket *, struct mbuf *, struct sockaddr_in *)); | 106 | int udp_output _P((struct socket *, struct mbuf *, struct sockaddr_in *)); |
107 | int udp_attach _P((struct socket *)); | 107 | int udp_attach _P((struct socket *)); |
108 | void udp_detach _P((struct socket *)); | 108 | void udp_detach _P((struct socket *)); |
109 | -u_int8_t udp_tos _P((struct socket *)); | ||
110 | -void udp_emu _P((struct socket *, struct mbuf *)); | ||
111 | struct socket * udp_listen _P((u_int, u_int32_t, u_int, int)); | 109 | struct socket * udp_listen _P((u_int, u_int32_t, u_int, int)); |
112 | int udp_output2(struct socket *so, struct mbuf *m, | 110 | int udp_output2(struct socket *so, struct mbuf *m, |
113 | struct sockaddr_in *saddr, struct sockaddr_in *daddr, | 111 | struct sockaddr_in *saddr, struct sockaddr_in *daddr, |