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 | 149 | |
| 150 | 150 | if ((m = m_get()) == NULL) |
| 151 | 151 | return; |
| 152 | - m->m_data += if_maxlinkhdr; | |
| 152 | + m->m_data += IF_MAXLINKHDR; | |
| 153 | 153 | rbp = (struct bootp_t *)m->m_data; |
| 154 | 154 | m->m_data += sizeof(struct udpiphdr); |
| 155 | 155 | memset(rbp, 0, sizeof(struct bootp_t)); | ... | ... |
slirp/debug.c
| ... | ... | @@ -92,9 +92,9 @@ ttystats(ttyp) |
| 92 | 92 | |
| 93 | 93 | lprint(" \r\n"); |
| 94 | 94 | |
| 95 | - if (if_comp & IF_COMPRESS) | |
| 95 | + if (IF_COMP & IF_COMPRESS) | |
| 96 | 96 | strcpy(buff, "on"); |
| 97 | - else if (if_comp & IF_NOCOMPRESS) | |
| 97 | + else if (IF_COMP & IF_NOCOMPRESS) | |
| 98 | 98 | strcpy(buff, "off"); |
| 99 | 99 | else |
| 100 | 100 | strcpy(buff, "off (for now)"); | ... | ... |
slirp/if.c
| ... | ... | @@ -7,9 +7,6 @@ |
| 7 | 7 | |
| 8 | 8 | #include <slirp.h> |
| 9 | 9 | |
| 10 | -int if_mtu, if_mru; | |
| 11 | -int if_comp; | |
| 12 | -int if_maxlinkhdr; | |
| 13 | 10 | int if_queued = 0; /* Number of packets queued so far */ |
| 14 | 11 | int if_thresh = 10; /* Number of packets queued before we start sending |
| 15 | 12 | * (to prevent allocing too many mbufs) */ |
| ... | ... | @@ -41,23 +38,6 @@ ifs_remque(ifm) |
| 41 | 38 | void |
| 42 | 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 | 41 | if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq; |
| 62 | 42 | if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq; |
| 63 | 43 | // sl_compress_init(&comp_s); | ... | ... |
slirp/if.h
| ... | ... | @@ -13,12 +13,25 @@ |
| 13 | 13 | #define IF_AUTOCOMP 0x04 /* Autodetect (default) */ |
| 14 | 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 | 35 | extern int if_queued; /* Number of packets queued so far */ |
| 23 | 36 | extern int if_thresh; /* Number of packets queued before we start sending |
| 24 | 37 | * (to prevent allocing too many mbufs) */ | ... | ... |
slirp/ip.h
slirp/ip_icmp.c
| ... | ... | @@ -46,7 +46,7 @@ struct icmpstat icmpstat; |
| 46 | 46 | char icmp_ping_msg[] = "This is a psuedo-PING packet used by Slirp to emulate ICMP ECHO-REQUEST packets.\n"; |
| 47 | 47 | |
| 48 | 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 | 50 | /* ECHO REPLY (0) */ 0, |
| 51 | 51 | 1, |
| 52 | 52 | 1, | ... | ... |
slirp/ip_input.c
| ... | ... | @@ -45,14 +45,19 @@ |
| 45 | 45 | #include <slirp.h> |
| 46 | 46 | #include "ip_icmp.h" |
| 47 | 47 | |
| 48 | -int ip_defttl; | |
| 49 | - | |
| 50 | 48 | #ifdef LOG_ENABLED |
| 51 | 49 | struct ipstat ipstat; |
| 52 | 50 | #endif |
| 53 | 51 | |
| 54 | 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 | 62 | * IP initialization: fill in IP protocol switch table. |
| 58 | 63 | * All protocols not implemented in kernel go to raw IP protocol handler. |
| ... | ... | @@ -64,7 +69,6 @@ ip_init() |
| 64 | 69 | ip_id = tt.tv_sec & 0xffff; |
| 65 | 70 | udp_init(); |
| 66 | 71 | tcp_init(); |
| 67 | - ip_defttl = IPDEFTTL; | |
| 68 | 72 | } |
| 69 | 73 | |
| 70 | 74 | /* |
| ... | ... | @@ -239,10 +243,8 @@ bad: |
| 239 | 243 | * reassembly of this datagram already exists, then it |
| 240 | 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 | 249 | register struct mbuf *m = dtom(ip); |
| 248 | 250 | register struct ipasfrag *q; |
| ... | ... | @@ -398,9 +400,8 @@ dropfrag: |
| 398 | 400 | * Free a fragment reassembly header and all |
| 399 | 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 | 406 | register struct ipasfrag *q, *p; |
| 406 | 407 | |
| ... | ... | @@ -418,9 +419,8 @@ ip_freef(fp) |
| 418 | 419 | * Put an ip fragment on a reassembly chain. |
| 419 | 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 | 425 | DEBUG_CALL("ip_enq"); |
| 426 | 426 | DEBUG_ARG("prev = %lx", (long)prev); |
| ... | ... | @@ -433,9 +433,8 @@ ip_enq(p, prev) |
| 433 | 433 | /* |
| 434 | 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 | 439 | ((struct ipasfrag *)(p->ipf_prev))->ipf_next = p->ipf_next; |
| 441 | 440 | ((struct ipasfrag *)(p->ipf_next))->ipf_prev = p->ipf_prev; | ... | ... |
slirp/ip_output.c
| ... | ... | @@ -96,7 +96,7 @@ ip_output(so, m0) |
| 96 | 96 | /* |
| 97 | 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 | 100 | ip->ip_len = htons((u_int16_t)ip->ip_len); |
| 101 | 101 | ip->ip_off = htons((u_int16_t)ip->ip_off); |
| 102 | 102 | ip->ip_sum = 0; |
| ... | ... | @@ -116,7 +116,7 @@ ip_output(so, m0) |
| 116 | 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 | 120 | if (len < 8) { |
| 121 | 121 | error = -1; |
| 122 | 122 | goto bad; |
| ... | ... | @@ -140,7 +140,7 @@ ip_output(so, m0) |
| 140 | 140 | STAT(ipstat.ips_odropped++); |
| 141 | 141 | goto sendorfree; |
| 142 | 142 | } |
| 143 | - m->m_data += if_maxlinkhdr; | |
| 143 | + m->m_data += IF_MAXLINKHDR; | |
| 144 | 144 | mhip = mtod(m, struct ip *); |
| 145 | 145 | *mhip = *ip; |
| 146 | 146 | ... | ... |
slirp/main.h
slirp/mbuf.c
| ... | ... | @@ -21,27 +21,20 @@ struct mbuf *mbutl; |
| 21 | 21 | char *mclrefcnt; |
| 22 | 22 | int mbuf_alloced = 0; |
| 23 | 23 | struct mbuf m_freelist, m_usedlist; |
| 24 | -int mbuf_thresh = 30; | |
| 24 | +#define MBUF_THRESH 30 | |
| 25 | 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 | 33 | void |
| 29 | 34 | m_init() |
| 30 | 35 | { |
| 31 | 36 | m_freelist.m_next = m_freelist.m_prev = &m_freelist; |
| 32 | 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 | 54 | DEBUG_CALL("m_get"); |
| 62 | 55 | |
| 63 | 56 | if (m_freelist.m_next == &m_freelist) { |
| 64 | - m = (struct mbuf *)malloc(msize); | |
| 57 | + m = (struct mbuf *)malloc(MSIZE); | |
| 65 | 58 | if (m == NULL) goto end_error; |
| 66 | 59 | mbuf_alloced++; |
| 67 | - if (mbuf_alloced > mbuf_thresh) | |
| 60 | + if (mbuf_alloced > MBUF_THRESH) | |
| 68 | 61 | flags = M_DOFREE; |
| 69 | 62 | if (mbuf_alloced > mbuf_max) |
| 70 | 63 | mbuf_max = mbuf_alloced; |
| ... | ... | @@ -78,7 +71,7 @@ m_get() |
| 78 | 71 | m->m_flags = (flags | M_USEDLIST); |
| 79 | 72 | |
| 80 | 73 | /* Initialise it */ |
| 81 | - m->m_size = msize - sizeof(struct m_hdr); | |
| 74 | + m->m_size = MSIZE - sizeof(struct m_hdr); | |
| 82 | 75 | m->m_data = m->m_dat; |
| 83 | 76 | m->m_len = 0; |
| 84 | 77 | m->m_nextpkt = 0; | ... | ... |
slirp/mbuf.h
| ... | ... | @@ -135,7 +135,6 @@ extern struct mbuf m_freelist, m_usedlist; |
| 135 | 135 | extern int mbuf_max; |
| 136 | 136 | |
| 137 | 137 | void m_init _P((void)); |
| 138 | -void msize_init _P((void)); | |
| 139 | 138 | struct mbuf * m_get _P((void)); |
| 140 | 139 | void m_free _P((struct mbuf *)); |
| 141 | 140 | void m_cat _P((register struct mbuf *, register struct mbuf *)); | ... | ... |
slirp/misc.c
| ... | ... | @@ -8,8 +8,7 @@ |
| 8 | 8 | #define WANT_SYS_IOCTL_H |
| 9 | 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 | 13 | #if 0 |
| 15 | 14 | int x_port = -1; |
| ... | ... | @@ -214,10 +213,7 @@ strerror(error) |
| 214 | 213 | #ifdef _WIN32 |
| 215 | 214 | |
| 216 | 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 | 218 | /* not implemented */ |
| 223 | 219 | return 0; |
| ... | ... | @@ -225,6 +221,7 @@ fork_exec(so, ex, do_pty) |
| 225 | 221 | |
| 226 | 222 | #else |
| 227 | 223 | |
| 224 | +#ifndef CONFIG_QEMU | |
| 228 | 225 | int |
| 229 | 226 | slirp_openpty(amaster, aslave) |
| 230 | 227 | int *amaster, *aslave; |
| ... | ... | @@ -289,6 +286,7 @@ slirp_openpty(amaster, aslave) |
| 289 | 286 | return (-1); |
| 290 | 287 | #endif |
| 291 | 288 | } |
| 289 | +#endif | |
| 292 | 290 | |
| 293 | 291 | /* |
| 294 | 292 | * XXX This is ugly |
| ... | ... | @@ -302,23 +300,20 @@ slirp_openpty(amaster, aslave) |
| 302 | 300 | * do_ptr = 2 Fork/exec using pty |
| 303 | 301 | */ |
| 304 | 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 | 305 | int s; |
| 311 | 306 | struct sockaddr_in addr; |
| 312 | 307 | int addrlen = sizeof(addr); |
| 313 | 308 | int opt; |
| 314 | - int master; | |
| 309 | + int master = -1; | |
| 315 | 310 | char *argv[256]; |
| 316 | 311 | #if 0 |
| 317 | 312 | char buff[256]; |
| 318 | 313 | #endif |
| 319 | 314 | /* don't want to clobber the original */ |
| 320 | 315 | char *bptr; |
| 321 | - char *curarg; | |
| 316 | + const char *curarg; | |
| 322 | 317 | int c, i, ret; |
| 323 | 318 | |
| 324 | 319 | DEBUG_CALL("fork_exec"); |
| ... | ... | @@ -327,10 +322,12 @@ fork_exec(so, ex, do_pty) |
| 327 | 322 | DEBUG_ARG("do_pty = %lx", (long)do_pty); |
| 328 | 323 | |
| 329 | 324 | if (do_pty == 2) { |
| 325 | +#if 0 | |
| 330 | 326 | if (slirp_openpty(&master, &s) == -1) { |
| 331 | 327 | lprint("Error: openpty failed: %s\n", strerror(errno)); |
| 332 | 328 | return 0; |
| 333 | 329 | } |
| 330 | +#endif | |
| 334 | 331 | } else { |
| 335 | 332 | addr.sin_family = AF_INET; |
| 336 | 333 | addr.sin_port = 0; |
| ... | ... | @@ -390,7 +387,7 @@ fork_exec(so, ex, do_pty) |
| 390 | 387 | dup2(s, 0); |
| 391 | 388 | dup2(s, 1); |
| 392 | 389 | dup2(s, 2); |
| 393 | - for (s = 3; s <= 255; s++) | |
| 390 | + for (s = getdtablesize() - 1; s >= 3; s--) | |
| 394 | 391 | close(s); |
| 395 | 392 | |
| 396 | 393 | i = 0; | ... | ... |
slirp/misc.h
| ... | ... | @@ -12,12 +12,12 @@ struct ex_list { |
| 12 | 12 | int ex_pty; /* Do we want a pty? */ |
| 13 | 13 | int ex_addr; /* The last byte of the address */ |
| 14 | 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 | 16 | struct ex_list *ex_next; |
| 17 | 17 | }; |
| 18 | 18 | |
| 19 | 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 | 22 | extern int (*lprint_print) _P((void *, const char *, va_list)); |
| 23 | 23 | extern char *lprint_ptr, *lprint_ptr2, **lprint_arg; |
| ... | ... | @@ -74,7 +74,7 @@ inline void slirp_insque _P((void *, void *)); |
| 74 | 74 | inline void slirp_remque _P((void *)); |
| 75 | 75 | int add_exec _P((struct ex_list **, int, char *, int, int)); |
| 76 | 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 | 78 | void snooze_hup _P((int)); |
| 79 | 79 | void snooze _P((void)); |
| 80 | 80 | void relay _P((int)); | ... | ... |
slirp/sbuf.c
| ... | ... | @@ -7,6 +7,8 @@ |
| 7 | 7 | |
| 8 | 8 | #include <slirp.h> |
| 9 | 9 | |
| 10 | +static void sbappendsb(struct sbuf *sb, struct mbuf *m); | |
| 11 | + | |
| 10 | 12 | /* Done as a macro in socket.h */ |
| 11 | 13 | /* int |
| 12 | 14 | * sbspace(struct sockbuff *sb) |
| ... | ... | @@ -133,10 +135,8 @@ sbappend(so, m) |
| 133 | 135 | * Copy the data from m into sb |
| 134 | 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 | 141 | int len, n, nn; |
| 142 | 142 | ... | ... |
slirp/sbuf.h
| ... | ... | @@ -25,7 +25,6 @@ void sbfree _P((struct sbuf *)); |
| 25 | 25 | void sbdrop _P((struct sbuf *, int)); |
| 26 | 26 | void sbreserve _P((struct sbuf *, int)); |
| 27 | 27 | void sbappend _P((struct socket *, struct mbuf *)); |
| 28 | -void sbappendsb _P((struct sbuf *, struct mbuf *)); | |
| 29 | 28 | void sbcopy _P((struct sbuf *, int, int, char *)); |
| 30 | 29 | |
| 31 | 30 | #endif | ... | ... |
slirp/slirp.c
| ... | ... | @@ -12,7 +12,7 @@ struct in_addr special_addr; |
| 12 | 12 | /* virtual address alias for host */ |
| 13 | 13 | struct in_addr alias_addr; |
| 14 | 14 | |
| 15 | -const uint8_t special_ethaddr[6] = { | |
| 15 | +static const uint8_t special_ethaddr[6] = { | |
| 16 | 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 | 130 | #endif |
| 131 | 131 | |
| 132 | 132 | #ifdef _WIN32 |
| 133 | -void slirp_cleanup(void) | |
| 133 | +static void slirp_cleanup(void) | |
| 134 | 134 | { |
| 135 | 135 | WSACleanup(); |
| 136 | 136 | } | ... | ... |
slirp/slirp.h
| ... | ... | @@ -280,6 +280,9 @@ extern int do_echo; |
| 280 | 280 | |
| 281 | 281 | #define DEFAULT_BAUD 115200 |
| 282 | 282 | |
| 283 | +#define SO_OPTIONS DO_KEEPALIVE | |
| 284 | +#define TCP_MAXIDLE (TCPTV_KEEPCNT * TCPTV_KEEPINTVL) | |
| 285 | + | |
| 283 | 286 | /* cksum.c */ |
| 284 | 287 | int cksum(struct mbuf *m, int len); |
| 285 | 288 | |
| ... | ... | @@ -290,10 +293,6 @@ void if_output _P((struct socket *, struct mbuf *)); |
| 290 | 293 | /* ip_input.c */ |
| 291 | 294 | void ip_init _P((void)); |
| 292 | 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 | 296 | void ip_slowtimo _P((void)); |
| 298 | 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 | 300 | int ip_output _P((struct socket *, struct mbuf *)); |
| 302 | 301 | |
| 303 | 302 | /* tcp_input.c */ |
| 304 | -int tcp_reass _P((register struct tcpcb *, register struct tcpiphdr *, struct mbuf *)); | |
| 305 | 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 | 304 | int tcp_mss _P((register struct tcpcb *, u_int)); |
| 309 | 305 | |
| 310 | 306 | /* tcp_output.c */ |
| ... | ... | @@ -317,7 +313,6 @@ void tcp_template _P((struct tcpcb *)); |
| 317 | 313 | void tcp_respond _P((struct tcpcb *, register struct tcpiphdr *, register struct mbuf *, tcp_seq, tcp_seq, int)); |
| 318 | 314 | struct tcpcb * tcp_newtcpcb _P((struct socket *)); |
| 319 | 315 | struct tcpcb * tcp_close _P((register struct tcpcb *)); |
| 320 | -void tcp_drain _P((void)); | |
| 321 | 316 | void tcp_sockclosed _P((struct tcpcb *)); |
| 322 | 317 | int tcp_fconnect _P((struct socket *)); |
| 323 | 318 | void tcp_connect _P((struct socket *)); | ... | ... |
slirp/socket.c
| ... | ... | @@ -13,12 +13,16 @@ |
| 13 | 13 | #include <sys/filio.h> |
| 14 | 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 | 21 | so_init() |
| 18 | 22 | { |
| 19 | 23 | /* Nothing yet */ |
| 20 | 24 | } |
| 21 | - | |
| 25 | +#endif | |
| 22 | 26 | |
| 23 | 27 | struct socket * |
| 24 | 28 | solookup(head, laddr, lport, faddr, fport) |
| ... | ... | @@ -421,7 +425,7 @@ sorecvfrom(so) |
| 421 | 425 | int len, n; |
| 422 | 426 | |
| 423 | 427 | if (!(m = m_get())) return; |
| 424 | - m->m_data += if_maxlinkhdr; | |
| 428 | + m->m_data += IF_MAXLINKHDR; | |
| 425 | 429 | |
| 426 | 430 | /* |
| 427 | 431 | * XXX Shouldn't FIONREAD packets destined for port 53, |
| ... | ... | @@ -604,12 +608,13 @@ solisten(port, laddr, lport, flags) |
| 604 | 608 | return so; |
| 605 | 609 | } |
| 606 | 610 | |
| 611 | +#if 0 | |
| 607 | 612 | /* |
| 608 | 613 | * Data is available in so_rcv |
| 609 | 614 | * Just write() the data to the socket |
| 610 | 615 | * XXX not yet... |
| 611 | 616 | */ |
| 612 | -void | |
| 617 | +static void | |
| 613 | 618 | sorwakeup(so) |
| 614 | 619 | struct socket *so; |
| 615 | 620 | { |
| ... | ... | @@ -622,12 +627,13 @@ sorwakeup(so) |
| 622 | 627 | * We have room for a read() if we want to |
| 623 | 628 | * For now, don't read, it'll be done in the main loop |
| 624 | 629 | */ |
| 625 | -void | |
| 630 | +static void | |
| 626 | 631 | sowwakeup(so) |
| 627 | 632 | struct socket *so; |
| 628 | 633 | { |
| 629 | 634 | /* Nothing, yet */ |
| 630 | 635 | } |
| 636 | +#endif | |
| 631 | 637 | |
| 632 | 638 | /* |
| 633 | 639 | * Various session state calls |
| ... | ... | @@ -652,9 +658,8 @@ soisfconnected(so) |
| 652 | 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 | 664 | if ((so->so_state & SS_NOFDREF) == 0) { |
| 660 | 665 | shutdown(so->s,0); |
| ... | ... | @@ -669,9 +674,8 @@ sofcantrcvmore(so) |
| 669 | 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 | 680 | if ((so->so_state & SS_NOFDREF) == 0) { |
| 677 | 681 | shutdown(so->s,1); /* send FIN to fhost */ | ... | ... |
slirp/socket.h
| ... | ... | @@ -81,7 +81,6 @@ struct iovec { |
| 81 | 81 | }; |
| 82 | 82 | #endif |
| 83 | 83 | |
| 84 | -void so_init _P((void)); | |
| 85 | 84 | struct socket * solookup _P((struct socket *, struct in_addr, u_int, struct in_addr, u_int)); |
| 86 | 85 | struct socket * socreate _P((void)); |
| 87 | 86 | void sofree _P((struct socket *)); |
| ... | ... | @@ -92,12 +91,8 @@ int sowrite _P((struct socket *)); |
| 92 | 91 | void sorecvfrom _P((struct socket *)); |
| 93 | 92 | int sosendto _P((struct socket *, struct mbuf *)); |
| 94 | 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 | 94 | void soisfconnecting _P((register struct socket *)); |
| 98 | 95 | void soisfconnected _P((register struct socket *)); |
| 99 | -void sofcantrcvmore _P((struct socket *)); | |
| 100 | -void sofcantsendmore _P((struct socket *)); | |
| 101 | 96 | void soisfdisconnected _P((struct socket *)); |
| 102 | 97 | void sofwdrain _P((struct socket *)); |
| 103 | 98 | ... | ... |
slirp/tcp.h
| ... | ... | @@ -42,8 +42,6 @@ typedef u_int32_t tcp_seq; |
| 42 | 42 | #define PR_SLOWHZ 2 /* 2 slow timeouts per second (approx) */ |
| 43 | 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 | 45 | extern struct socket *tcp_last_so; |
| 48 | 46 | |
| 49 | 47 | #define TCP_SNDSPACE 8192 |
| ... | ... | @@ -172,6 +170,6 @@ struct tcphdr { |
| 172 | 170 | |
| 173 | 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 | 175 | #endif | ... | ... |
slirp/tcp_input.c
| ... | ... | @@ -47,7 +47,7 @@ |
| 47 | 47 | |
| 48 | 48 | struct socket tcb; |
| 49 | 49 | |
| 50 | -int tcprexmtthresh = 3; | |
| 50 | +#define TCPREXMTTHRESH 3 | |
| 51 | 51 | struct socket *tcp_last_so = &tcb; |
| 52 | 52 | |
| 53 | 53 | 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 | 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 | 123 | register struct tcpiphdr *q; |
| 123 | 124 | struct socket *so = tp->t_socket; |
| ... | ... | @@ -402,8 +403,8 @@ findso: |
| 402 | 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 | 409 | /* tcp_last_so = so; */ /* XXX ? */ |
| 409 | 410 | /* tp = sototcpcb(so); */ |
| ... | ... | @@ -448,10 +449,10 @@ findso: |
| 448 | 449 | * Reset idle time and keep-alive timer. |
| 449 | 450 | */ |
| 450 | 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 | 454 | else |
| 454 | - tp->t_timer[TCPT_KEEP] = tcp_keepidle; | |
| 455 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE; | |
| 455 | 456 | |
| 456 | 457 | /* |
| 457 | 458 | * Process options if not in LISTEN state, |
| ... | ... | @@ -1102,7 +1103,7 @@ trimthenstep6: |
| 1102 | 1103 | if (tp->t_timer[TCPT_REXMT] == 0 || |
| 1103 | 1104 | ti->ti_ack != tp->snd_una) |
| 1104 | 1105 | tp->t_dupacks = 0; |
| 1105 | - else if (++tp->t_dupacks == tcprexmtthresh) { | |
| 1106 | + else if (++tp->t_dupacks == TCPREXMTTHRESH) { | |
| 1106 | 1107 | tcp_seq onxt = tp->snd_nxt; |
| 1107 | 1108 | u_int win = |
| 1108 | 1109 | min(tp->snd_wnd, tp->snd_cwnd) / 2 / |
| ... | ... | @@ -1121,7 +1122,7 @@ trimthenstep6: |
| 1121 | 1122 | if (SEQ_GT(onxt, tp->snd_nxt)) |
| 1122 | 1123 | tp->snd_nxt = onxt; |
| 1123 | 1124 | goto drop; |
| 1124 | - } else if (tp->t_dupacks > tcprexmtthresh) { | |
| 1125 | + } else if (tp->t_dupacks > TCPREXMTTHRESH) { | |
| 1125 | 1126 | tp->snd_cwnd += tp->t_maxseg; |
| 1126 | 1127 | (void) tcp_output(tp); |
| 1127 | 1128 | goto drop; |
| ... | ... | @@ -1135,7 +1136,7 @@ trimthenstep6: |
| 1135 | 1136 | * If the congestion window was inflated to account |
| 1136 | 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 | 1140 | tp->snd_cwnd > tp->snd_ssthresh) |
| 1140 | 1141 | tp->snd_cwnd = tp->snd_ssthresh; |
| 1141 | 1142 | tp->t_dupacks = 0; |
| ... | ... | @@ -1227,7 +1228,7 @@ trimthenstep6: |
| 1227 | 1228 | */ |
| 1228 | 1229 | if (so->so_state & SS_FCANTRCVMORE) { |
| 1229 | 1230 | soisfdisconnected(so); |
| 1230 | - tp->t_timer[TCPT_2MSL] = tcp_maxidle; | |
| 1231 | + tp->t_timer[TCPT_2MSL] = TCP_MAXIDLE; | |
| 1231 | 1232 | } |
| 1232 | 1233 | tp->t_state = TCPS_FIN_WAIT_2; |
| 1233 | 1234 | } |
| ... | ... | @@ -1490,12 +1491,8 @@ drop: |
| 1490 | 1491 | /* int *ts_present; |
| 1491 | 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 | 1497 | u_int16_t mss; |
| 1501 | 1498 | int opt, optlen; |
| ... | ... | @@ -1605,10 +1602,8 @@ tcp_pulloutofband(so, ti, m) |
| 1605 | 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 | 1608 | register short delta; |
| 1614 | 1609 | |
| ... | ... | @@ -1707,7 +1702,7 @@ tcp_mss(tp, offer) |
| 1707 | 1702 | DEBUG_ARG("tp = %lx", (long)tp); |
| 1708 | 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 | 1706 | if (offer) |
| 1712 | 1707 | mss = min(mss, offer); |
| 1713 | 1708 | mss = max(mss, 32); |
| ... | ... | @@ -1716,8 +1711,12 @@ tcp_mss(tp, offer) |
| 1716 | 1711 | |
| 1717 | 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 | 1721 | DEBUG_MISC((dfd, " returning mss = %d\n", mss)); |
| 1723 | 1722 | ... | ... |
slirp/tcp_output.c
| ... | ... | @@ -48,14 +48,14 @@ |
| 48 | 48 | * Since this is only used in "stats socket", we give meaning |
| 49 | 49 | * names instead of the REAL names |
| 50 | 50 | */ |
| 51 | -char *tcpstates[] = { | |
| 51 | +const char * const tcpstates[] = { | |
| 52 | 52 | /* "CLOSED", "LISTEN", "SYN_SENT", "SYN_RCVD", */ |
| 53 | 53 | "REDIRECT", "LISTEN", "SYN_SENT", "SYN_RCVD", |
| 54 | 54 | "ESTABLISHED", "CLOSE_WAIT", "FIN_WAIT_1", "CLOSING", |
| 55 | 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 | 59 | TH_RST|TH_ACK, 0, TH_SYN, TH_SYN|TH_ACK, |
| 60 | 60 | TH_ACK, TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, |
| 61 | 61 | TH_FIN|TH_ACK, TH_ACK, TH_ACK, |
| ... | ... | @@ -354,7 +354,7 @@ send: |
| 354 | 354 | error = 1; |
| 355 | 355 | goto out; |
| 356 | 356 | } |
| 357 | - m->m_data += if_maxlinkhdr; | |
| 357 | + m->m_data += IF_MAXLINKHDR; | |
| 358 | 358 | m->m_len = hdrlen; |
| 359 | 359 | |
| 360 | 360 | /* |
| ... | ... | @@ -396,7 +396,7 @@ send: |
| 396 | 396 | error = 1; |
| 397 | 397 | goto out; |
| 398 | 398 | } |
| 399 | - m->m_data += if_maxlinkhdr; | |
| 399 | + m->m_data += IF_MAXLINKHDR; | |
| 400 | 400 | m->m_len = hdrlen; |
| 401 | 401 | } |
| 402 | 402 | |
| ... | ... | @@ -536,7 +536,7 @@ send: |
| 536 | 536 | |
| 537 | 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 | 540 | ((struct ip *)ti)->ip_tos = so->so_iptos; |
| 541 | 541 | |
| 542 | 542 | /* #if BSD >= 43 */ | ... | ... |
slirp/tcp_subr.c
| ... | ... | @@ -46,11 +46,8 @@ |
| 46 | 46 | #include <slirp.h> |
| 47 | 47 | |
| 48 | 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 | 53 | * Tcp initialization |
| ... | ... | @@ -60,14 +57,6 @@ tcp_init() |
| 60 | 57 | { |
| 61 | 58 | tcp_iss = 1; /* wrong */ |
| 62 | 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 | 134 | #else |
| 146 | 135 | tlen = 0; |
| 147 | 136 | #endif |
| 148 | - m->m_data += if_maxlinkhdr; | |
| 137 | + m->m_data += IF_MAXLINKHDR; | |
| 149 | 138 | *mtod(m, struct tcpiphdr *) = *ti; |
| 150 | 139 | ti = mtod(m, struct tcpiphdr *); |
| 151 | 140 | flags = TH_ACK; |
| ... | ... | @@ -186,7 +175,7 @@ tcp_respond(tp, ti, m, ack, seq, flags) |
| 186 | 175 | if(flags & TH_RST) |
| 187 | 176 | ((struct ip *)ti)->ip_ttl = MAXTTL; |
| 188 | 177 | else |
| 189 | - ((struct ip *)ti)->ip_ttl = ip_defttl; | |
| 178 | + ((struct ip *)ti)->ip_ttl = IPDEFTTL; | |
| 190 | 179 | |
| 191 | 180 | (void) ip_output((struct socket *)0, m); |
| 192 | 181 | } |
| ... | ... | @@ -208,9 +197,9 @@ tcp_newtcpcb(so) |
| 208 | 197 | |
| 209 | 198 | memset((char *) tp, 0, sizeof(struct tcpcb)); |
| 210 | 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 | 203 | tp->t_socket = so; |
| 215 | 204 | |
| 216 | 205 | /* |
| ... | ... | @@ -219,7 +208,7 @@ tcp_newtcpcb(so) |
| 219 | 208 | * reasonable initial retransmit time. |
| 220 | 209 | */ |
| 221 | 210 | tp->t_srtt = TCPTV_SRTTBASE; |
| 222 | - tp->t_rttvar = tcp_rttdflt * PR_SLOWHZ << 2; | |
| 211 | + tp->t_rttvar = TCPTV_SRTTDFLT << 2; | |
| 223 | 212 | tp->t_rttmin = TCPTV_MIN; |
| 224 | 213 | |
| 225 | 214 | TCPT_RANGESET(tp->t_rxtcur, |
| ... | ... | @@ -309,6 +298,7 @@ tcp_close(tp) |
| 309 | 298 | return ((struct tcpcb *)0); |
| 310 | 299 | } |
| 311 | 300 | |
| 301 | +#ifdef notdef | |
| 312 | 302 | void |
| 313 | 303 | tcp_drain() |
| 314 | 304 | { |
| ... | ... | @@ -319,9 +309,6 @@ tcp_drain() |
| 319 | 309 | * When a source quench is received, close congestion window |
| 320 | 310 | * to one segment. We will gradually open it again as we proceed. |
| 321 | 311 | */ |
| 322 | - | |
| 323 | -#ifdef notdef | |
| 324 | - | |
| 325 | 312 | void |
| 326 | 313 | tcp_quench(i, errno) |
| 327 | 314 | |
| ... | ... | @@ -556,7 +543,7 @@ tcp_attach(so) |
| 556 | 543 | /* |
| 557 | 544 | * Set the socket's type of service field |
| 558 | 545 | */ |
| 559 | -struct tos_t tcptos[] = { | |
| 546 | +static const struct tos_t tcptos[] = { | |
| 560 | 547 | {0, 20, IPTOS_THROUGHPUT, 0}, /* ftp data */ |
| 561 | 548 | {21, 21, IPTOS_LOWDELAY, EMU_FTP}, /* ftp control */ |
| 562 | 549 | {0, 23, IPTOS_LOWDELAY, 0}, /* telnet */ |
| ... | ... | @@ -572,7 +559,7 @@ struct tos_t tcptos[] = { |
| 572 | 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 | 565 | * Return TOS according to the above table |
| ... | ... | @@ -665,7 +652,7 @@ tcp_emu(so, m) |
| 665 | 652 | so_rcv->sb_rptr += m->m_len; |
| 666 | 653 | m->m_data[m->m_len] = 0; /* NULL terminate */ |
| 667 | 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 | 656 | HTONS(n1); |
| 670 | 657 | HTONS(n2); |
| 671 | 658 | /* n2 is the one on our host */ |
| ... | ... | @@ -991,7 +978,7 @@ do_prompt: |
| 991 | 978 | /* |
| 992 | 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 | 982 | &n1, &n2, &n3, &n4, &n5, &n6, buff); |
| 996 | 983 | if (x < 6) |
| 997 | 984 | return 1; |
| ... | ... | @@ -1022,7 +1009,7 @@ do_prompt: |
| 1022 | 1009 | /* |
| 1023 | 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 | 1013 | &n1, &n2, &n3, &n4, &n5, &n6, buff); |
| 1027 | 1014 | if (x < 6) |
| 1028 | 1015 | return 1; | ... | ... |
slirp/tcp_timer.c
| ... | ... | @@ -36,17 +36,14 @@ |
| 36 | 36 | |
| 37 | 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 | 39 | #ifdef LOG_ENABLED |
| 45 | 40 | struct tcpstat tcpstat; /* tcp statistics */ |
| 46 | 41 | #endif |
| 47 | 42 | |
| 48 | 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 | 48 | * Fast timeout routine for processing delayed acks |
| 52 | 49 | */ |
| ... | ... | @@ -84,7 +81,6 @@ tcp_slowtimo() |
| 84 | 81 | |
| 85 | 82 | DEBUG_CALL("tcp_slowtimo"); |
| 86 | 83 | |
| 87 | - tcp_maxidle = TCPTV_KEEPCNT * tcp_keepintvl; | |
| 88 | 84 | /* |
| 89 | 85 | * Search through tcb's and update active timers. |
| 90 | 86 | */ |
| ... | ... | @@ -130,16 +126,14 @@ tcp_canceltimers(tp) |
| 130 | 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 | 130 | { 1, 2, 4, 8, 16, 32, 64, 64, 64, 64, 64, 64, 64 }; |
| 135 | 131 | |
| 136 | 132 | /* |
| 137 | 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 | 138 | register int rexmt; |
| 145 | 139 | |
| ... | ... | @@ -155,8 +149,8 @@ tcp_timers(tp, timer) |
| 155 | 149 | */ |
| 156 | 150 | case TCPT_2MSL: |
| 157 | 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 | 154 | else |
| 161 | 155 | tp = tcp_close(tp); |
| 162 | 156 | break; |
| ... | ... | @@ -287,8 +281,8 @@ tcp_timers(tp, timer) |
| 287 | 281 | goto dropit; |
| 288 | 282 | |
| 289 | 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 | 286 | goto dropit; |
| 293 | 287 | /* |
| 294 | 288 | * Send a packet designed to force a response |
| ... | ... | @@ -314,9 +308,9 @@ tcp_timers(tp, timer) |
| 314 | 308 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, |
| 315 | 309 | tp->rcv_nxt, tp->snd_una - 1, 0); |
| 316 | 310 | #endif |
| 317 | - tp->t_timer[TCPT_KEEP] = tcp_keepintvl; | |
| 311 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; | |
| 318 | 312 | } else |
| 319 | - tp->t_timer[TCPT_KEEP] = tcp_keepidle; | |
| 313 | + tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE; | |
| 320 | 314 | break; |
| 321 | 315 | |
| 322 | 316 | dropit: | ... | ... |
slirp/tcp_timer.h
| ... | ... | @@ -126,17 +126,12 @@ char *tcptimers[] = |
| 126 | 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 | 131 | struct tcpcb; |
| 136 | 132 | |
| 137 | 133 | void tcp_fasttimo _P((void)); |
| 138 | 134 | void tcp_slowtimo _P((void)); |
| 139 | 135 | void tcp_canceltimers _P((struct tcpcb *)); |
| 140 | -struct tcpcb * tcp_timers _P((register struct tcpcb *, int)); | |
| 141 | 136 | |
| 142 | 137 | #endif | ... | ... |
slirp/tftp.c
| ... | ... | @@ -34,7 +34,7 @@ struct tftp_session { |
| 34 | 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 | 39 | const char *tftp_prefix; |
| 40 | 40 | |
| ... | ... | @@ -143,7 +143,7 @@ static int tftp_send_oack(struct tftp_session *spt, |
| 143 | 143 | |
| 144 | 144 | memset(m->m_data, 0, m->m_size); |
| 145 | 145 | |
| 146 | - m->m_data += if_maxlinkhdr; | |
| 146 | + m->m_data += IF_MAXLINKHDR; | |
| 147 | 147 | tp = (void *)m->m_data; |
| 148 | 148 | m->m_data += sizeof(struct udpiphdr); |
| 149 | 149 | |
| ... | ... | @@ -183,7 +183,7 @@ static int tftp_send_error(struct tftp_session *spt, |
| 183 | 183 | |
| 184 | 184 | memset(m->m_data, 0, m->m_size); |
| 185 | 185 | |
| 186 | - m->m_data += if_maxlinkhdr; | |
| 186 | + m->m_data += IF_MAXLINKHDR; | |
| 187 | 187 | tp = (void *)m->m_data; |
| 188 | 188 | m->m_data += sizeof(struct udpiphdr); |
| 189 | 189 | |
| ... | ... | @@ -230,7 +230,7 @@ static int tftp_send_data(struct tftp_session *spt, |
| 230 | 230 | |
| 231 | 231 | memset(m->m_data, 0, m->m_size); |
| 232 | 232 | |
| 233 | - m->m_data += if_maxlinkhdr; | |
| 233 | + m->m_data += IF_MAXLINKHDR; | |
| 234 | 234 | tp = (void *)m->m_data; |
| 235 | 235 | m->m_data += sizeof(struct udpiphdr); |
| 236 | 236 | ... | ... |
slirp/udp.c
| ... | ... | @@ -51,14 +51,17 @@ struct udpstat udpstat; |
| 51 | 51 | |
| 52 | 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 | 58 | * UDP protocol implementation. |
| 56 | 59 | * Per RFC 768, August, 1980. |
| 57 | 60 | */ |
| 58 | 61 | #ifndef COMPAT_42 |
| 59 | -int udpcksum = 1; | |
| 62 | +#define UDPCKSUM 1 | |
| 60 | 63 | #else |
| 61 | -int udpcksum = 0; /* XXX */ | |
| 64 | +#define UDPCKSUM 0 /* XXX */ | |
| 62 | 65 | #endif |
| 63 | 66 | |
| 64 | 67 | struct socket *udp_last_so = &udb; |
| ... | ... | @@ -132,7 +135,7 @@ udp_input(m, iphlen) |
| 132 | 135 | /* |
| 133 | 136 | * Checksum extended UDP header and data. |
| 134 | 137 | */ |
| 135 | - if (udpcksum && uh->uh_sum) { | |
| 138 | + if (UDPCKSUM && uh->uh_sum) { | |
| 136 | 139 | ((struct ipovly *)ip)->ih_next = 0; |
| 137 | 140 | ((struct ipovly *)ip)->ih_prev = 0; |
| 138 | 141 | ((struct ipovly *)ip)->ih_x1 = 0; |
| ... | ... | @@ -292,13 +295,13 @@ int udp_output2(struct socket *so, struct mbuf *m, |
| 292 | 295 | * Stuff checksum and output datagram. |
| 293 | 296 | */ |
| 294 | 297 | ui->ui_sum = 0; |
| 295 | - if (udpcksum) { | |
| 298 | + if (UDPCKSUM) { | |
| 296 | 299 | if ((ui->ui_sum = cksum(m, /* sizeof (struct udpiphdr) + */ m->m_len)) == 0) |
| 297 | 300 | ui->ui_sum = 0xffff; |
| 298 | 301 | } |
| 299 | 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 | 305 | ((struct ip *)ui)->ip_tos = iptos; |
| 303 | 306 | |
| 304 | 307 | STAT(udpstat.udps_opackets++); |
| ... | ... | @@ -369,7 +372,7 @@ udp_detach(so) |
| 369 | 372 | sofree(so); |
| 370 | 373 | } |
| 371 | 374 | |
| 372 | -struct tos_t udptos[] = { | |
| 375 | +static const struct tos_t udptos[] = { | |
| 373 | 376 | {0, 53, IPTOS_LOWDELAY, 0}, /* DNS */ |
| 374 | 377 | {517, 517, IPTOS_LOWDELAY, EMU_TALK}, /* talk */ |
| 375 | 378 | {518, 518, IPTOS_LOWDELAY, EMU_NTALK}, /* ntalk */ |
| ... | ... | @@ -377,9 +380,8 @@ struct tos_t udptos[] = { |
| 377 | 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 | 386 | int i = 0; |
| 385 | 387 | |
| ... | ... | @@ -402,10 +404,8 @@ udp_tos(so) |
| 402 | 404 | /* |
| 403 | 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 | 410 | struct sockaddr_in addr; |
| 411 | 411 | int addrlen = sizeof(addr); | ... | ... |
slirp/udp.h
| ... | ... | @@ -106,8 +106,6 @@ void udp_input _P((register struct mbuf *, int)); |
| 106 | 106 | int udp_output _P((struct socket *, struct mbuf *, struct sockaddr_in *)); |
| 107 | 107 | int udp_attach _P((struct socket *)); |
| 108 | 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 | 109 | struct socket * udp_listen _P((u_int, u_int32_t, u_int, int)); |
| 112 | 110 | int udp_output2(struct socket *so, struct mbuf *m, |
| 113 | 111 | struct sockaddr_in *saddr, struct sockaddr_in *daddr, | ... | ... |