Commit 0d62c4cfe21752df4c1d6e2c2398f15d5eaa794a
Committed by
Anthony Liguori
1 parent
6dbe553f
slirp: Drop dead code
After all its years inside the qemu tree, there is no point in keeping the dead code paths of slirp. This patch is a first round of removing usually commented out code parts. More cleanups need to follow (and maybe finally a proper reindention). Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
26 changed files
with
22 additions
and
1650 deletions
slirp/debug.c
@@ -9,127 +9,9 @@ | @@ -9,127 +9,9 @@ | ||
9 | #include <slirp.h> | 9 | #include <slirp.h> |
10 | 10 | ||
11 | FILE *dfd = NULL; | 11 | FILE *dfd = NULL; |
12 | -#ifdef DEBUG | ||
13 | -int dostats = 1; | ||
14 | -#else | ||
15 | -int dostats = 0; | ||
16 | -#endif | ||
17 | int slirp_debug = 0; | 12 | int slirp_debug = 0; |
18 | 13 | ||
19 | -/* Carry over one item from main.c so that the tty's restored. | ||
20 | - * Only done when the tty being used is /dev/tty --RedWolf */ | ||
21 | -#ifndef CONFIG_QEMU | ||
22 | -extern struct termios slirp_tty_settings; | ||
23 | -extern int slirp_tty_restore; | ||
24 | - | ||
25 | - | ||
26 | -void | ||
27 | -debug_init(file, dbg) | ||
28 | - char *file; | ||
29 | - int dbg; | ||
30 | -{ | ||
31 | - /* Close the old debugging file */ | ||
32 | - if (dfd) | ||
33 | - fclose(dfd); | ||
34 | - | ||
35 | - dfd = fopen(file,"w"); | ||
36 | - if (dfd != NULL) { | ||
37 | -#if 0 | ||
38 | - fprintf(dfd,"Slirp %s - Debugging Started.\n", SLIRP_VERSION); | ||
39 | -#endif | ||
40 | - fprintf(dfd,"Debugging Started level %i.\r\n",dbg); | ||
41 | - fflush(dfd); | ||
42 | - slirp_debug = dbg; | ||
43 | - } else { | ||
44 | - lprint("Error: Debugging file \"%s\" could not be opened: %s\r\n", | ||
45 | - file, strerror(errno)); | ||
46 | - } | ||
47 | -} | ||
48 | - | ||
49 | -/* | ||
50 | - * Dump a packet in the same format as tcpdump -x | ||
51 | - */ | ||
52 | -#ifdef DEBUG | ||
53 | -void | ||
54 | -dump_packet(dat, n) | ||
55 | - void *dat; | ||
56 | - int n; | ||
57 | -{ | ||
58 | - u_char *pptr = (u_char *)dat; | ||
59 | - int j,k; | ||
60 | - | ||
61 | - n /= 16; | ||
62 | - n++; | ||
63 | - DEBUG_MISC((dfd, "PACKET DUMPED: \n")); | ||
64 | - for(j = 0; j < n; j++) { | ||
65 | - for(k = 0; k < 6; k++) | ||
66 | - DEBUG_MISC((dfd, "%02x ", *pptr++)); | ||
67 | - DEBUG_MISC((dfd, "\n")); | ||
68 | - fflush(dfd); | ||
69 | - } | ||
70 | -} | ||
71 | -#endif | ||
72 | -#endif | ||
73 | - | ||
74 | #ifdef LOG_ENABLED | 14 | #ifdef LOG_ENABLED |
75 | -#if 0 | ||
76 | -/* | ||
77 | - * Statistic routines | ||
78 | - * | ||
79 | - * These will print statistics to the screen, the debug file (dfd), or | ||
80 | - * a buffer, depending on "type", so that the stats can be sent over | ||
81 | - * the link as well. | ||
82 | - */ | ||
83 | - | ||
84 | -static void | ||
85 | -ttystats(ttyp) | ||
86 | - struct ttys *ttyp; | ||
87 | -{ | ||
88 | - struct slirp_ifstats *is = &ttyp->ifstats; | ||
89 | - char buff[512]; | ||
90 | - | ||
91 | - lprint(" \r\n"); | ||
92 | - | ||
93 | - if (IF_COMP & IF_COMPRESS) | ||
94 | - strcpy(buff, "on"); | ||
95 | - else if (IF_COMP & IF_NOCOMPRESS) | ||
96 | - strcpy(buff, "off"); | ||
97 | - else | ||
98 | - strcpy(buff, "off (for now)"); | ||
99 | - lprint("Unit %d:\r\n", ttyp->unit); | ||
100 | - lprint(" using %s encapsulation (VJ compression is %s)\r\n", ( | ||
101 | -#ifdef USE_PPP | ||
102 | - ttyp->proto==PROTO_PPP?"PPP": | ||
103 | -#endif | ||
104 | - "SLIP"), buff); | ||
105 | - lprint(" %d baudrate\r\n", ttyp->baud); | ||
106 | - lprint(" interface is %s\r\n", ttyp->up?"up":"down"); | ||
107 | - lprint(" using fd %d, guardian pid is %d\r\n", ttyp->fd, ttyp->pid); | ||
108 | -#ifndef FULL_BOLT | ||
109 | - lprint(" towrite is %d bytes\r\n", ttyp->towrite); | ||
110 | -#endif | ||
111 | - if (ttyp->zeros) | ||
112 | - lprint(" %d zeros have been typed\r\n", ttyp->zeros); | ||
113 | - else if (ttyp->ones) | ||
114 | - lprint(" %d ones have been typed\r\n", ttyp->ones); | ||
115 | - lprint("Interface stats:\r\n"); | ||
116 | - lprint(" %6d output packets sent (%d bytes)\r\n", is->out_pkts, is->out_bytes); | ||
117 | - lprint(" %6d output packets dropped (%d bytes)\r\n", is->out_errpkts, is->out_errbytes); | ||
118 | - lprint(" %6d input packets received (%d bytes)\r\n", is->in_pkts, is->in_bytes); | ||
119 | - lprint(" %6d input packets dropped (%d bytes)\r\n", is->in_errpkts, is->in_errbytes); | ||
120 | - lprint(" %6d bad input packets\r\n", is->in_mbad); | ||
121 | -} | ||
122 | - | ||
123 | -static void | ||
124 | -allttystats(void) | ||
125 | -{ | ||
126 | - struct ttys *ttyp; | ||
127 | - | ||
128 | - for (ttyp = ttys; ttyp; ttyp = ttyp->next) | ||
129 | - ttystats(ttyp); | ||
130 | -} | ||
131 | -#endif | ||
132 | - | ||
133 | static void | 15 | static void |
134 | ipstats(void) | 16 | ipstats(void) |
135 | { | 17 | { |
@@ -154,25 +36,6 @@ ipstats(void) | @@ -154,25 +36,6 @@ ipstats(void) | ||
154 | lprint(" %6d total packets delivered\r\n", ipstat.ips_delivered); | 36 | lprint(" %6d total packets delivered\r\n", ipstat.ips_delivered); |
155 | } | 37 | } |
156 | 38 | ||
157 | -#ifndef CONFIG_QEMU | ||
158 | -static void | ||
159 | -vjstats(void) | ||
160 | -{ | ||
161 | - lprint(" \r\n"); | ||
162 | - | ||
163 | - lprint("VJ compression stats:\r\n"); | ||
164 | - | ||
165 | - lprint(" %6d outbound packets (%d compressed)\r\n", | ||
166 | - comp_s.sls_packets, comp_s.sls_compressed); | ||
167 | - lprint(" %6d searches for connection stats (%d misses)\r\n", | ||
168 | - comp_s.sls_searches, comp_s.sls_misses); | ||
169 | - lprint(" %6d inbound uncompressed packets\r\n", comp_s.sls_uncompressedin); | ||
170 | - lprint(" %6d inbound compressed packets\r\n", comp_s.sls_compressedin); | ||
171 | - lprint(" %6d inbound unknown type packets\r\n", comp_s.sls_errorin); | ||
172 | - lprint(" %6d inbound packets tossed due to error\r\n", comp_s.sls_tossed); | ||
173 | -} | ||
174 | -#endif | ||
175 | - | ||
176 | static void | 39 | static void |
177 | tcpstats(void) | 40 | tcpstats(void) |
178 | { | 41 | { |
@@ -234,11 +97,6 @@ tcpstats(void) | @@ -234,11 +97,6 @@ tcpstats(void) | ||
234 | lprint(" %6d correct ACK header predictions\r\n", tcpstat.tcps_predack); | 97 | lprint(" %6d correct ACK header predictions\r\n", tcpstat.tcps_predack); |
235 | lprint(" %6d correct data packet header predictions\n", tcpstat.tcps_preddat); | 98 | lprint(" %6d correct data packet header predictions\n", tcpstat.tcps_preddat); |
236 | lprint(" %6d TCP cache misses\r\n", tcpstat.tcps_socachemiss); | 99 | lprint(" %6d TCP cache misses\r\n", tcpstat.tcps_socachemiss); |
237 | - | ||
238 | - | ||
239 | -/* lprint(" Packets received too short: %d\r\n", tcpstat.tcps_rcvshort); */ | ||
240 | -/* lprint(" Segments dropped due to PAWS: %d\r\n", tcpstat.tcps_pawsdrop); */ | ||
241 | - | ||
242 | } | 100 | } |
243 | 101 | ||
244 | static void | 102 | static void |
@@ -293,49 +151,6 @@ mbufstats(void) | @@ -293,49 +151,6 @@ mbufstats(void) | ||
293 | } | 151 | } |
294 | #endif | 152 | #endif |
295 | 153 | ||
296 | -#ifndef CONFIG_QEMU | ||
297 | -void | ||
298 | -slirp_exit(exit_status) | ||
299 | - int exit_status; | ||
300 | -{ | ||
301 | - struct ttys *ttyp; | ||
302 | - | ||
303 | - DEBUG_CALL("slirp_exit"); | ||
304 | - DEBUG_ARG("exit_status = %d", exit_status); | ||
305 | - | ||
306 | - if (dostats) { | ||
307 | - lprint_print = (int (*) _P((void *, const char *, va_list)))vfprintf; | ||
308 | - if (!dfd) | ||
309 | - debug_init("slirp_stats", 0xf); | ||
310 | - lprint_arg = (char **)&dfd; | ||
311 | - | ||
312 | - ipstats(); | ||
313 | - tcpstats(); | ||
314 | - udpstats(); | ||
315 | - icmpstats(); | ||
316 | - mbufstats(); | ||
317 | - sockstats(); | ||
318 | - allttystats(); | ||
319 | - vjstats(); | ||
320 | - } | ||
321 | - | ||
322 | - for (ttyp = ttys; ttyp; ttyp = ttyp->next) | ||
323 | - tty_detached(ttyp, 1); | ||
324 | - | ||
325 | - if (slirp_forked) { | ||
326 | - /* Menendez time */ | ||
327 | - if (kill(getppid(), SIGQUIT) < 0) | ||
328 | - lprint("Couldn't kill parent process %ld!\n", | ||
329 | - (long) getppid()); | ||
330 | - } | ||
331 | - | ||
332 | - /* Restore the terminal if we gotta */ | ||
333 | - if(slirp_tty_restore) | ||
334 | - tcsetattr(0,TCSANOW, &slirp_tty_settings); /* NOW DAMMIT! */ | ||
335 | - exit(exit_status); | ||
336 | -} | ||
337 | -#endif | ||
338 | - | ||
339 | void | 154 | void |
340 | slirp_stats(void) | 155 | slirp_stats(void) |
341 | { | 156 | { |
slirp/debug.h
slirp/if.c
@@ -36,89 +36,9 @@ if_init(void) | @@ -36,89 +36,9 @@ if_init(void) | ||
36 | { | 36 | { |
37 | if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq; | 37 | if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq; |
38 | if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq; | 38 | if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq; |
39 | - // sl_compress_init(&comp_s); | ||
40 | next_m = &if_batchq; | 39 | next_m = &if_batchq; |
41 | } | 40 | } |
42 | 41 | ||
43 | -#if 0 | ||
44 | -/* | ||
45 | - * This shouldn't be needed since the modem is blocking and | ||
46 | - * we don't expect any signals, but what the hell.. | ||
47 | - */ | ||
48 | -inline int | ||
49 | -writen(fd, bptr, n) | ||
50 | - int fd; | ||
51 | - char *bptr; | ||
52 | - int n; | ||
53 | -{ | ||
54 | - int ret; | ||
55 | - int total; | ||
56 | - | ||
57 | - /* This should succeed most of the time */ | ||
58 | - ret = send(fd, bptr, n,0); | ||
59 | - if (ret == n || ret <= 0) | ||
60 | - return ret; | ||
61 | - | ||
62 | - /* Didn't write everything, go into the loop */ | ||
63 | - total = ret; | ||
64 | - while (n > total) { | ||
65 | - ret = send(fd, bptr+total, n-total,0); | ||
66 | - if (ret <= 0) | ||
67 | - return ret; | ||
68 | - total += ret; | ||
69 | - } | ||
70 | - return total; | ||
71 | -} | ||
72 | - | ||
73 | -/* | ||
74 | - * if_input - read() the tty, do "top level" processing (ie: check for any escapes), | ||
75 | - * and pass onto (*ttyp->if_input) | ||
76 | - * | ||
77 | - * XXXXX Any zeros arriving by themselves are NOT placed into the arriving packet. | ||
78 | - */ | ||
79 | -#define INBUFF_SIZE 2048 /* XXX */ | ||
80 | -void | ||
81 | -if_input(ttyp) | ||
82 | - struct ttys *ttyp; | ||
83 | -{ | ||
84 | - u_char if_inbuff[INBUFF_SIZE]; | ||
85 | - int if_n; | ||
86 | - | ||
87 | - DEBUG_CALL("if_input"); | ||
88 | - DEBUG_ARG("ttyp = %lx", (long)ttyp); | ||
89 | - | ||
90 | - if_n = recv(ttyp->fd, (char *)if_inbuff, INBUFF_SIZE,0); | ||
91 | - | ||
92 | - DEBUG_MISC((dfd, " read %d bytes\n", if_n)); | ||
93 | - | ||
94 | - if (if_n <= 0) { | ||
95 | - if (if_n == 0 || (errno != EINTR && errno != EAGAIN)) { | ||
96 | - if (ttyp->up) | ||
97 | - link_up--; | ||
98 | - tty_detached(ttyp, 0); | ||
99 | - } | ||
100 | - return; | ||
101 | - } | ||
102 | - if (if_n == 1) { | ||
103 | - if (*if_inbuff == '0') { | ||
104 | - ttyp->ones = 0; | ||
105 | - if (++ttyp->zeros >= 5) | ||
106 | - slirp_exit(0); | ||
107 | - return; | ||
108 | - } | ||
109 | - if (*if_inbuff == '1') { | ||
110 | - ttyp->zeros = 0; | ||
111 | - if (++ttyp->ones >= 5) | ||
112 | - tty_detached(ttyp, 0); | ||
113 | - return; | ||
114 | - } | ||
115 | - } | ||
116 | - ttyp->ones = ttyp->zeros = 0; | ||
117 | - | ||
118 | - (*ttyp->if_input)(ttyp, if_inbuff, if_n); | ||
119 | -} | ||
120 | -#endif | ||
121 | - | ||
122 | /* | 42 | /* |
123 | * if_output: Queue packet into an output queue. | 43 | * if_output: Queue packet into an output queue. |
124 | * There are 2 output queue's, if_fastq and if_batchq. | 44 | * There are 2 output queue's, if_fastq and if_batchq. |
slirp/if.h
@@ -17,20 +17,8 @@ | @@ -17,20 +17,8 @@ | ||
17 | #define IF_MRU 1500 | 17 | #define IF_MRU 1500 |
18 | #define IF_COMP IF_AUTOCOMP /* Flags for compression */ | 18 | #define IF_COMP IF_AUTOCOMP /* Flags for compression */ |
19 | 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 */ | 20 | +/* 2 for alignment, 14 for ethernet, 40 for TCP/IP */ |
32 | #define IF_MAXLINKHDR (2 + 14 + 40) | 21 | #define IF_MAXLINKHDR (2 + 14 + 40) |
33 | -#endif | ||
34 | 22 | ||
35 | extern int if_queued; /* Number of packets queued so far */ | 23 | extern int if_queued; /* Number of packets queued so far */ |
36 | 24 |
slirp/ip_icmp.c
@@ -73,7 +73,6 @@ icmp_input(struct mbuf *m, int hlen) | @@ -73,7 +73,6 @@ icmp_input(struct mbuf *m, int hlen) | ||
73 | register struct icmp *icp; | 73 | register struct icmp *icp; |
74 | register struct ip *ip=mtod(m, struct ip *); | 74 | register struct ip *ip=mtod(m, struct ip *); |
75 | int icmplen=ip->ip_len; | 75 | int icmplen=ip->ip_len; |
76 | - /* int code; */ | ||
77 | 76 | ||
78 | DEBUG_CALL("icmp_input"); | 77 | DEBUG_CALL("icmp_input"); |
79 | DEBUG_ARG("m = %lx", (long )m); | 78 | DEBUG_ARG("m = %lx", (long )m); |
@@ -102,9 +101,6 @@ icmp_input(struct mbuf *m, int hlen) | @@ -102,9 +101,6 @@ icmp_input(struct mbuf *m, int hlen) | ||
102 | m->m_len += hlen; | 101 | m->m_len += hlen; |
103 | m->m_data -= hlen; | 102 | m->m_data -= hlen; |
104 | 103 | ||
105 | - /* icmpstat.icps_inhist[icp->icmp_type]++; */ | ||
106 | - /* code = icp->icmp_code; */ | ||
107 | - | ||
108 | DEBUG_ARG("icmp_type = %d", icp->icmp_type); | 104 | DEBUG_ARG("icmp_type = %d", icp->icmp_type); |
109 | switch (icp->icmp_type) { | 105 | switch (icp->icmp_type) { |
110 | case ICMP_ECHO: | 106 | case ICMP_ECHO: |
slirp/ip_input.c
@@ -165,16 +165,6 @@ ip_input(struct mbuf *m) | @@ -165,16 +165,6 @@ ip_input(struct mbuf *m) | ||
165 | } | 165 | } |
166 | 166 | ||
167 | /* | 167 | /* |
168 | - * Process options and, if not destined for us, | ||
169 | - * ship it on. ip_dooptions returns 1 when an | ||
170 | - * error was detected (causing an icmp message | ||
171 | - * to be sent and the original packet to be freed). | ||
172 | - */ | ||
173 | -/* We do no IP options */ | ||
174 | -/* if (hlen > sizeof (struct ip) && ip_dooptions(m)) | ||
175 | - * goto next; | ||
176 | - */ | ||
177 | - /* | ||
178 | * If offset or IP_MF are set, must reassemble. | 168 | * If offset or IP_MF are set, must reassemble. |
179 | * Otherwise, nothing need be done. | 169 | * Otherwise, nothing need be done. |
180 | * (We could look in the reassembly queue to see | 170 | * (We could look in the reassembly queue to see |
@@ -396,9 +386,6 @@ insert: | @@ -396,9 +386,6 @@ insert: | ||
396 | q = (struct ipasfrag *)(m->m_ext + delta); | 386 | q = (struct ipasfrag *)(m->m_ext + delta); |
397 | } | 387 | } |
398 | 388 | ||
399 | - /* DEBUG_ARG("ip = %lx", (long)ip); | ||
400 | - * ip=(struct ipasfrag *)m->m_data; */ | ||
401 | - | ||
402 | ip = fragtoip(q); | 389 | ip = fragtoip(q); |
403 | ip->ip_len = next; | 390 | ip->ip_len = next; |
404 | ip->ip_tos &= ~1; | 391 | ip->ip_tos &= ~1; |
@@ -505,7 +492,6 @@ ip_dooptions(m) | @@ -505,7 +492,6 @@ ip_dooptions(m) | ||
505 | register u_char *cp; | 492 | register u_char *cp; |
506 | register struct ip_timestamp *ipt; | 493 | register struct ip_timestamp *ipt; |
507 | register struct in_ifaddr *ia; | 494 | register struct in_ifaddr *ia; |
508 | -/* int opt, optlen, cnt, off, code, type = ICMP_PARAMPROB, forward = 0; */ | ||
509 | int opt, optlen, cnt, off, code, type, forward = 0; | 495 | int opt, optlen, cnt, off, code, type, forward = 0; |
510 | struct in_addr *sin, dst; | 496 | struct in_addr *sin, dst; |
511 | typedef u_int32_t n_time; | 497 | typedef u_int32_t n_time; |
@@ -683,9 +669,6 @@ typedef u_int32_t n_time; | @@ -683,9 +669,6 @@ typedef u_int32_t n_time; | ||
683 | } | 669 | } |
684 | return (0); | 670 | return (0); |
685 | bad: | 671 | bad: |
686 | - /* ip->ip_len -= ip->ip_hl << 2; XXX icmp_error adds in hdr length */ | ||
687 | - | ||
688 | -/* Not yet */ | ||
689 | icmp_error(m, type, code, 0, 0); | 672 | icmp_error(m, type, code, 0, 0); |
690 | 673 | ||
691 | STAT(ipstat.ips_badoptions++); | 674 | STAT(ipstat.ips_badoptions++); |
slirp/ip_output.c
@@ -64,12 +64,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -64,12 +64,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
64 | DEBUG_ARG("so = %lx", (long)so); | 64 | DEBUG_ARG("so = %lx", (long)so); |
65 | DEBUG_ARG("m0 = %lx", (long)m0); | 65 | DEBUG_ARG("m0 = %lx", (long)m0); |
66 | 66 | ||
67 | - /* We do no options */ | ||
68 | -/* if (opt) { | ||
69 | - * m = ip_insertoptions(m, opt, &len); | ||
70 | - * hlen = len; | ||
71 | - * } | ||
72 | - */ | ||
73 | ip = mtod(m, struct ip *); | 67 | ip = mtod(m, struct ip *); |
74 | /* | 68 | /* |
75 | * Fill in IP header. | 69 | * Fill in IP header. |
@@ -81,17 +75,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -81,17 +75,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
81 | STAT(ipstat.ips_localout++); | 75 | STAT(ipstat.ips_localout++); |
82 | 76 | ||
83 | /* | 77 | /* |
84 | - * Verify that we have any chance at all of being able to queue | ||
85 | - * the packet or packet fragments | ||
86 | - */ | ||
87 | - /* XXX Hmmm... */ | ||
88 | -/* if (if_queued > IF_THRESH && towrite <= 0) { | ||
89 | - * error = ENOBUFS; | ||
90 | - * goto bad; | ||
91 | - * } | ||
92 | - */ | ||
93 | - | ||
94 | - /* | ||
95 | * If small enough for interface, can just send directly. | 78 | * If small enough for interface, can just send directly. |
96 | */ | 79 | */ |
97 | if ((u_int16_t)ip->ip_len <= IF_MTU) { | 80 | if ((u_int16_t)ip->ip_len <= IF_MTU) { |
@@ -142,12 +125,6 @@ ip_output(struct socket *so, struct mbuf *m0) | @@ -142,12 +125,6 @@ ip_output(struct socket *so, struct mbuf *m0) | ||
142 | mhip = mtod(m, struct ip *); | 125 | mhip = mtod(m, struct ip *); |
143 | *mhip = *ip; | 126 | *mhip = *ip; |
144 | 127 | ||
145 | - /* No options */ | ||
146 | -/* if (hlen > sizeof (struct ip)) { | ||
147 | - * mhlen = ip_optcopy(ip, mhip) + sizeof (struct ip); | ||
148 | - * mhip->ip_hl = mhlen >> 2; | ||
149 | - * } | ||
150 | - */ | ||
151 | m->m_len = mhlen; | 128 | m->m_len = mhlen; |
152 | mhip->ip_off = ((off - hlen) >> 3) + (ip->ip_off & ~IP_MF); | 129 | mhip->ip_off = ((off - hlen) >> 3) + (ip->ip_off & ~IP_MF); |
153 | if (ip->ip_off & IP_MF) | 130 | if (ip->ip_off & IP_MF) |
slirp/libslirp.h
1 | #ifndef _LIBSLIRP_H | 1 | #ifndef _LIBSLIRP_H |
2 | #define _LIBSLIRP_H | 2 | #define _LIBSLIRP_H |
3 | 3 | ||
4 | -#ifdef __cplusplus | ||
5 | -extern "C" { | ||
6 | -#endif | ||
7 | - | ||
8 | #include <qemu-common.h> | 4 | #include <qemu-common.h> |
9 | 5 | ||
10 | void slirp_init(int restricted, struct in_addr vnetwork, | 6 | void slirp_init(int restricted, struct in_addr vnetwork, |
@@ -37,8 +33,4 @@ void slirp_socket_recv(struct in_addr guest_addr, int guest_port, | @@ -37,8 +33,4 @@ void slirp_socket_recv(struct in_addr guest_addr, int guest_port, | ||
37 | const uint8_t *buf, int size); | 33 | const uint8_t *buf, int size); |
38 | size_t slirp_socket_can_recv(struct in_addr guest_addr, int guest_port); | 34 | size_t slirp_socket_can_recv(struct in_addr guest_addr, int guest_port); |
39 | 35 | ||
40 | -#ifdef __cplusplus | ||
41 | -} | ||
42 | -#endif | ||
43 | - | ||
44 | #endif | 36 | #endif |
slirp/mbuf.c
@@ -141,17 +141,11 @@ m_inc(struct mbuf *m, int size) | @@ -141,17 +141,11 @@ m_inc(struct mbuf *m, int size) | ||
141 | if (m->m_flags & M_EXT) { | 141 | if (m->m_flags & M_EXT) { |
142 | datasize = m->m_data - m->m_ext; | 142 | datasize = m->m_data - m->m_ext; |
143 | m->m_ext = (char *)realloc(m->m_ext,size); | 143 | m->m_ext = (char *)realloc(m->m_ext,size); |
144 | -/* if (m->m_ext == NULL) | ||
145 | - * return (struct mbuf *)NULL; | ||
146 | - */ | ||
147 | m->m_data = m->m_ext + datasize; | 144 | m->m_data = m->m_ext + datasize; |
148 | } else { | 145 | } else { |
149 | char *dat; | 146 | char *dat; |
150 | datasize = m->m_data - m->m_dat; | 147 | datasize = m->m_data - m->m_dat; |
151 | dat = (char *)malloc(size); | 148 | dat = (char *)malloc(size); |
152 | -/* if (dat == NULL) | ||
153 | - * return (struct mbuf *)NULL; | ||
154 | - */ | ||
155 | memcpy(dat, m->m_dat, m->m_size); | 149 | memcpy(dat, m->m_dat, m->m_size); |
156 | 150 | ||
157 | m->m_ext = dat; | 151 | m->m_ext = dat; |
slirp/mbuf.h
@@ -41,10 +41,8 @@ | @@ -41,10 +41,8 @@ | ||
41 | /* | 41 | /* |
42 | * Macros for type conversion | 42 | * Macros for type conversion |
43 | * mtod(m,t) - convert mbuf pointer to data pointer of correct type | 43 | * mtod(m,t) - convert mbuf pointer to data pointer of correct type |
44 | - * dtom(x) - convert data pointer within mbuf to mbuf pointer (XXX) | ||
45 | */ | 44 | */ |
46 | #define mtod(m,t) ((t)(m)->m_data) | 45 | #define mtod(m,t) ((t)(m)->m_data) |
47 | -/* #define dtom(x) ((struct mbuf *)((int)(x) & ~(M_SIZE-1))) */ | ||
48 | 46 | ||
49 | /* XXX About mbufs for slirp: | 47 | /* XXX About mbufs for slirp: |
50 | * Only one mbuf is ever used in a chain, for each "cell" of data. | 48 | * Only one mbuf is ever used in a chain, for each "cell" of data. |
slirp/misc.c
@@ -12,62 +12,6 @@ | @@ -12,62 +12,6 @@ | ||
12 | 12 | ||
13 | u_int curtime, time_fasttimo, last_slowtimo; | 13 | u_int curtime, time_fasttimo, last_slowtimo; |
14 | 14 | ||
15 | -#if 0 | ||
16 | -int x_port = -1; | ||
17 | -int x_display = 0; | ||
18 | -int x_screen = 0; | ||
19 | - | ||
20 | -int | ||
21 | -show_x(buff, inso) | ||
22 | - char *buff; | ||
23 | - struct socket *inso; | ||
24 | -{ | ||
25 | - if (x_port < 0) { | ||
26 | - lprint("X Redir: X not being redirected.\r\n"); | ||
27 | - } else { | ||
28 | - lprint("X Redir: In sh/bash/zsh/etc. type: DISPLAY=%s:%d.%d; export DISPLAY\r\n", | ||
29 | - inet_ntoa(our_addr), x_port, x_screen); | ||
30 | - lprint("X Redir: In csh/tcsh/etc. type: setenv DISPLAY %s:%d.%d\r\n", | ||
31 | - inet_ntoa(our_addr), x_port, x_screen); | ||
32 | - if (x_display) | ||
33 | - lprint("X Redir: Redirecting to display %d\r\n", x_display); | ||
34 | - } | ||
35 | - | ||
36 | - return CFG_OK; | ||
37 | -} | ||
38 | - | ||
39 | - | ||
40 | -/* | ||
41 | - * XXX Allow more than one X redirection? | ||
42 | - */ | ||
43 | -void | ||
44 | -redir_x(inaddr, start_port, display, screen) | ||
45 | - u_int32_t inaddr; | ||
46 | - int start_port; | ||
47 | - int display; | ||
48 | - int screen; | ||
49 | -{ | ||
50 | - int i; | ||
51 | - | ||
52 | - if (x_port >= 0) { | ||
53 | - lprint("X Redir: X already being redirected.\r\n"); | ||
54 | - show_x(0, 0); | ||
55 | - } else { | ||
56 | - for (i = 6001 + (start_port-1); i <= 6100; i++) { | ||
57 | - if (solisten(htons(i), inaddr, htons(6000 + display), 0)) { | ||
58 | - /* Success */ | ||
59 | - x_port = i - 6000; | ||
60 | - x_display = display; | ||
61 | - x_screen = screen; | ||
62 | - show_x(0, 0); | ||
63 | - return; | ||
64 | - } | ||
65 | - } | ||
66 | - lprint("X Redir: Error: Couldn't redirect a port for X. Weird.\r\n"); | ||
67 | - } | ||
68 | -} | ||
69 | -#endif | ||
70 | - | ||
71 | /* | 15 | /* |
72 | * Get our IP address and put it in our_addr | 16 | * Get our IP address and put it in our_addr |
73 | */ | 17 | */ |
@@ -109,12 +53,8 @@ remque(void *a) | @@ -109,12 +53,8 @@ remque(void *a) | ||
109 | ((struct quehead *)(element->qh_link))->qh_rlink = element->qh_rlink; | 53 | ((struct quehead *)(element->qh_link))->qh_rlink = element->qh_rlink; |
110 | ((struct quehead *)(element->qh_rlink))->qh_link = element->qh_link; | 54 | ((struct quehead *)(element->qh_rlink))->qh_link = element->qh_link; |
111 | element->qh_rlink = NULL; | 55 | element->qh_rlink = NULL; |
112 | - /* element->qh_link = NULL; TCP FIN1 crashes if you do this. Why ? */ | ||
113 | } | 56 | } |
114 | 57 | ||
115 | -/* #endif */ | ||
116 | - | ||
117 | - | ||
118 | int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec, | 58 | int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec, |
119 | struct in_addr addr, int port) | 59 | struct in_addr addr, int port) |
120 | { | 60 | { |
@@ -170,73 +110,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | @@ -170,73 +110,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | ||
170 | 110 | ||
171 | #else | 111 | #else |
172 | 112 | ||
173 | -#ifndef CONFIG_QEMU | ||
174 | -int | ||
175 | -slirp_openpty(amaster, aslave) | ||
176 | - int *amaster, *aslave; | ||
177 | -{ | ||
178 | - register int master, slave; | ||
179 | - | ||
180 | -#ifdef HAVE_GRANTPT | ||
181 | - char *ptr; | ||
182 | - | ||
183 | - if ((master = open("/dev/ptmx", O_RDWR)) < 0 || | ||
184 | - grantpt(master) < 0 || | ||
185 | - unlockpt(master) < 0 || | ||
186 | - (ptr = ptsname(master)) == NULL) { | ||
187 | - close(master); | ||
188 | - return -1; | ||
189 | - } | ||
190 | - | ||
191 | - if ((slave = open(ptr, O_RDWR)) < 0 || | ||
192 | - ioctl(slave, I_PUSH, "ptem") < 0 || | ||
193 | - ioctl(slave, I_PUSH, "ldterm") < 0 || | ||
194 | - ioctl(slave, I_PUSH, "ttcompat") < 0) { | ||
195 | - close(master); | ||
196 | - close(slave); | ||
197 | - return -1; | ||
198 | - } | ||
199 | - | ||
200 | - *amaster = master; | ||
201 | - *aslave = slave; | ||
202 | - return 0; | ||
203 | - | ||
204 | -#else | ||
205 | - | ||
206 | - static char line[] = "/dev/ptyXX"; | ||
207 | - register const char *cp1, *cp2; | ||
208 | - | ||
209 | - for (cp1 = "pqrsPQRS"; *cp1; cp1++) { | ||
210 | - line[8] = *cp1; | ||
211 | - for (cp2 = "0123456789abcdefghijklmnopqrstuv"; *cp2; cp2++) { | ||
212 | - line[9] = *cp2; | ||
213 | - if ((master = open(line, O_RDWR, 0)) == -1) { | ||
214 | - if (errno == ENOENT) | ||
215 | - return (-1); /* out of ptys */ | ||
216 | - } else { | ||
217 | - line[5] = 't'; | ||
218 | - /* These will fail */ | ||
219 | - (void) chown(line, getuid(), 0); | ||
220 | - (void) chmod(line, S_IRUSR|S_IWUSR|S_IWGRP); | ||
221 | -#ifdef HAVE_REVOKE | ||
222 | - (void) revoke(line); | ||
223 | -#endif | ||
224 | - if ((slave = open(line, O_RDWR, 0)) != -1) { | ||
225 | - *amaster = master; | ||
226 | - *aslave = slave; | ||
227 | - return 0; | ||
228 | - } | ||
229 | - (void) close(master); | ||
230 | - line[5] = 'p'; | ||
231 | - } | ||
232 | - } | ||
233 | - } | ||
234 | - errno = ENOENT; /* out of ptys */ | ||
235 | - return (-1); | ||
236 | -#endif | ||
237 | -} | ||
238 | -#endif | ||
239 | - | ||
240 | /* | 113 | /* |
241 | * XXX This is ugly | 114 | * XXX This is ugly |
242 | * We create and bind a socket, then fork off to another | 115 | * We create and bind a socket, then fork off to another |
@@ -257,9 +130,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | @@ -257,9 +130,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | ||
257 | int opt; | 130 | int opt; |
258 | int master = -1; | 131 | int master = -1; |
259 | const char *argv[256]; | 132 | const char *argv[256]; |
260 | -#if 0 | ||
261 | - char buff[256]; | ||
262 | -#endif | ||
263 | /* don't want to clobber the original */ | 133 | /* don't want to clobber the original */ |
264 | char *bptr; | 134 | char *bptr; |
265 | const char *curarg; | 135 | const char *curarg; |
@@ -271,14 +141,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | @@ -271,14 +141,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | ||
271 | DEBUG_ARG("do_pty = %lx", (long)do_pty); | 141 | DEBUG_ARG("do_pty = %lx", (long)do_pty); |
272 | 142 | ||
273 | if (do_pty == 2) { | 143 | if (do_pty == 2) { |
274 | -#if 0 | ||
275 | - if (slirp_openpty(&master, &s) == -1) { | ||
276 | - lprint("Error: openpty failed: %s\n", strerror(errno)); | ||
277 | - return 0; | ||
278 | - } | ||
279 | -#else | ||
280 | return 0; | 144 | return 0; |
281 | -#endif | ||
282 | } else { | 145 | } else { |
283 | addr.sin_family = AF_INET; | 146 | addr.sin_family = AF_INET; |
284 | addr.sin_port = 0; | 147 | addr.sin_port = 0; |
@@ -324,17 +187,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | @@ -324,17 +187,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | ||
324 | } while (ret < 0 && errno == EINTR); | 187 | } while (ret < 0 && errno == EINTR); |
325 | } | 188 | } |
326 | 189 | ||
327 | -#if 0 | ||
328 | - if (x_port >= 0) { | ||
329 | -#ifdef HAVE_SETENV | ||
330 | - sprintf(buff, "%s:%d.%d", inet_ntoa(our_addr), x_port, x_screen); | ||
331 | - setenv("DISPLAY", buff, 1); | ||
332 | -#else | ||
333 | - sprintf(buff, "DISPLAY=%s:%d.%d", inet_ntoa(our_addr), x_port, x_screen); | ||
334 | - putenv(buff); | ||
335 | -#endif | ||
336 | - } | ||
337 | -#endif | ||
338 | dup2(s, 0); | 190 | dup2(s, 0); |
339 | dup2(s, 1); | 191 | dup2(s, 1); |
340 | dup2(s, 2); | 192 | dup2(s, 2); |
@@ -422,137 +274,6 @@ strdup(str) | @@ -422,137 +274,6 @@ strdup(str) | ||
422 | } | 274 | } |
423 | #endif | 275 | #endif |
424 | 276 | ||
425 | -#if 0 | ||
426 | -void | ||
427 | -snooze_hup(num) | ||
428 | - int num; | ||
429 | -{ | ||
430 | - int s, ret; | ||
431 | -#ifndef NO_UNIX_SOCKETS | ||
432 | - struct sockaddr_un sock_un; | ||
433 | -#endif | ||
434 | - struct sockaddr_in sock_in; | ||
435 | - char buff[256]; | ||
436 | - | ||
437 | - ret = -1; | ||
438 | - if (slirp_socket_passwd) { | ||
439 | - s = socket(AF_INET, SOCK_STREAM, 0); | ||
440 | - if (s < 0) | ||
441 | - slirp_exit(1); | ||
442 | - sock_in.sin_family = AF_INET; | ||
443 | - sock_in.sin_addr.s_addr = slirp_socket_addr; | ||
444 | - sock_in.sin_port = htons(slirp_socket_port); | ||
445 | - if (connect(s, (struct sockaddr *)&sock_in, sizeof(sock_in)) != 0) | ||
446 | - slirp_exit(1); /* just exit...*/ | ||
447 | - sprintf(buff, "kill %s:%d", slirp_socket_passwd, slirp_socket_unit); | ||
448 | - write(s, buff, strlen(buff)+1); | ||
449 | - } | ||
450 | -#ifndef NO_UNIX_SOCKETS | ||
451 | - else { | ||
452 | - s = socket(AF_UNIX, SOCK_STREAM, 0); | ||
453 | - if (s < 0) | ||
454 | - slirp_exit(1); | ||
455 | - sock_un.sun_family = AF_UNIX; | ||
456 | - strcpy(sock_un.sun_path, socket_path); | ||
457 | - if (connect(s, (struct sockaddr *)&sock_un, | ||
458 | - sizeof(sock_un.sun_family) + sizeof(sock_un.sun_path)) != 0) | ||
459 | - slirp_exit(1); | ||
460 | - sprintf(buff, "kill none:%d", slirp_socket_unit); | ||
461 | - write(s, buff, strlen(buff)+1); | ||
462 | - } | ||
463 | -#endif | ||
464 | - slirp_exit(0); | ||
465 | -} | ||
466 | - | ||
467 | - | ||
468 | -void | ||
469 | -snooze() | ||
470 | -{ | ||
471 | - sigset_t s; | ||
472 | - int i; | ||
473 | - | ||
474 | - /* Don't need our data anymore */ | ||
475 | - /* XXX This makes SunOS barf */ | ||
476 | -/* brk(0); */ | ||
477 | - | ||
478 | - /* Close all fd's */ | ||
479 | - for (i = 255; i >= 0; i--) | ||
480 | - close(i); | ||
481 | - | ||
482 | - signal(SIGQUIT, slirp_exit); | ||
483 | - signal(SIGHUP, snooze_hup); | ||
484 | - sigemptyset(&s); | ||
485 | - | ||
486 | - /* Wait for any signal */ | ||
487 | - sigsuspend(&s); | ||
488 | - | ||
489 | - /* Just in case ... */ | ||
490 | - exit(255); | ||
491 | -} | ||
492 | - | ||
493 | -void | ||
494 | -relay(s) | ||
495 | - int s; | ||
496 | -{ | ||
497 | - char buf[8192]; | ||
498 | - int n; | ||
499 | - fd_set readfds; | ||
500 | - struct ttys *ttyp; | ||
501 | - | ||
502 | - /* Don't need our data anymore */ | ||
503 | - /* XXX This makes SunOS barf */ | ||
504 | -/* brk(0); */ | ||
505 | - | ||
506 | - signal(SIGQUIT, slirp_exit); | ||
507 | - signal(SIGHUP, slirp_exit); | ||
508 | - signal(SIGINT, slirp_exit); | ||
509 | - signal(SIGTERM, slirp_exit); | ||
510 | - | ||
511 | - /* Fudge to get term_raw and term_restore to work */ | ||
512 | - if (NULL == (ttyp = tty_attach (0, slirp_tty))) { | ||
513 | - lprint ("Error: tty_attach failed in misc.c:relay()\r\n"); | ||
514 | - slirp_exit (1); | ||
515 | - } | ||
516 | - ttyp->fd = 0; | ||
517 | - ttyp->flags |= TTY_CTTY; | ||
518 | - term_raw(ttyp); | ||
519 | - | ||
520 | - while (1) { | ||
521 | - FD_ZERO(&readfds); | ||
522 | - | ||
523 | - FD_SET(0, &readfds); | ||
524 | - FD_SET(s, &readfds); | ||
525 | - | ||
526 | - n = select(s+1, &readfds, (fd_set *)0, (fd_set *)0, (struct timeval *)0); | ||
527 | - | ||
528 | - if (n <= 0) | ||
529 | - slirp_exit(0); | ||
530 | - | ||
531 | - if (FD_ISSET(0, &readfds)) { | ||
532 | - n = read(0, buf, 8192); | ||
533 | - if (n <= 0) | ||
534 | - slirp_exit(0); | ||
535 | - n = writen(s, buf, n); | ||
536 | - if (n <= 0) | ||
537 | - slirp_exit(0); | ||
538 | - } | ||
539 | - | ||
540 | - if (FD_ISSET(s, &readfds)) { | ||
541 | - n = read(s, buf, 8192); | ||
542 | - if (n <= 0) | ||
543 | - slirp_exit(0); | ||
544 | - n = writen(0, buf, n); | ||
545 | - if (n <= 0) | ||
546 | - slirp_exit(0); | ||
547 | - } | ||
548 | - } | ||
549 | - | ||
550 | - /* Just in case.... */ | ||
551 | - exit(1); | ||
552 | -} | ||
553 | -#endif | ||
554 | - | ||
555 | -#ifdef CONFIG_QEMU | ||
556 | #include "monitor.h" | 277 | #include "monitor.h" |
557 | 278 | ||
558 | void lprint(const char *format, ...) | 279 | void lprint(const char *format, ...) |
@@ -563,159 +284,6 @@ void lprint(const char *format, ...) | @@ -563,159 +284,6 @@ void lprint(const char *format, ...) | ||
563 | monitor_vprintf(cur_mon, format, args); | 284 | monitor_vprintf(cur_mon, format, args); |
564 | va_end(args); | 285 | va_end(args); |
565 | } | 286 | } |
566 | -#else | ||
567 | -int (*lprint_print) _P((void *, const char *, va_list)); | ||
568 | -char *lprint_ptr, *lprint_ptr2, **lprint_arg; | ||
569 | - | ||
570 | -void | ||
571 | -#ifdef __STDC__ | ||
572 | -lprint(const char *format, ...) | ||
573 | -#else | ||
574 | -lprint(va_alist) va_dcl | ||
575 | -#endif | ||
576 | -{ | ||
577 | - va_list args; | ||
578 | - | ||
579 | -#ifdef __STDC__ | ||
580 | - va_start(args, format); | ||
581 | -#else | ||
582 | - char *format; | ||
583 | - va_start(args); | ||
584 | - format = va_arg(args, char *); | ||
585 | -#endif | ||
586 | -#if 0 | ||
587 | - /* If we're printing to an sbuf, make sure there's enough room */ | ||
588 | - /* XXX +100? */ | ||
589 | - if (lprint_sb) { | ||
590 | - if ((lprint_ptr - lprint_sb->sb_wptr) >= | ||
591 | - (lprint_sb->sb_datalen - (strlen(format) + 100))) { | ||
592 | - int deltaw = lprint_sb->sb_wptr - lprint_sb->sb_data; | ||
593 | - int deltar = lprint_sb->sb_rptr - lprint_sb->sb_data; | ||
594 | - int deltap = lprint_ptr - lprint_sb->sb_data; | ||
595 | - | ||
596 | - lprint_sb->sb_data = (char *)realloc(lprint_sb->sb_data, | ||
597 | - lprint_sb->sb_datalen + TCP_SNDSPACE); | ||
598 | - | ||
599 | - /* Adjust all values */ | ||
600 | - lprint_sb->sb_wptr = lprint_sb->sb_data + deltaw; | ||
601 | - lprint_sb->sb_rptr = lprint_sb->sb_data + deltar; | ||
602 | - lprint_ptr = lprint_sb->sb_data + deltap; | ||
603 | - | ||
604 | - lprint_sb->sb_datalen += TCP_SNDSPACE; | ||
605 | - } | ||
606 | - } | ||
607 | -#endif | ||
608 | - if (lprint_print) | ||
609 | - lprint_ptr += (*lprint_print)(*lprint_arg, format, args); | ||
610 | - | ||
611 | - /* Check if they want output to be logged to file as well */ | ||
612 | - if (lfd) { | ||
613 | - /* | ||
614 | - * Remove \r's | ||
615 | - * otherwise you'll get ^M all over the file | ||
616 | - */ | ||
617 | - int len = strlen(format); | ||
618 | - char *bptr1, *bptr2; | ||
619 | - | ||
620 | - bptr1 = bptr2 = strdup(format); | ||
621 | - | ||
622 | - while (len--) { | ||
623 | - if (*bptr1 == '\r') | ||
624 | - memcpy(bptr1, bptr1+1, len+1); | ||
625 | - else | ||
626 | - bptr1++; | ||
627 | - } | ||
628 | - vfprintf(lfd, bptr2, args); | ||
629 | - free(bptr2); | ||
630 | - } | ||
631 | - va_end(args); | ||
632 | -} | ||
633 | - | ||
634 | -void | ||
635 | -add_emu(buff) | ||
636 | - char *buff; | ||
637 | -{ | ||
638 | - u_int lport, fport; | ||
639 | - u_int8_t tos = 0, emu = 0; | ||
640 | - char buff1[256], buff2[256], buff4[128]; | ||
641 | - char *buff3 = buff4; | ||
642 | - struct emu_t *emup; | ||
643 | - struct socket *so; | ||
644 | - | ||
645 | - if (sscanf(buff, "%256s %256s", buff2, buff1) != 2) { | ||
646 | - lprint("Error: Bad arguments\r\n"); | ||
647 | - return; | ||
648 | - } | ||
649 | - | ||
650 | - if (sscanf(buff1, "%d:%d", &lport, &fport) != 2) { | ||
651 | - lport = 0; | ||
652 | - if (sscanf(buff1, "%d", &fport) != 1) { | ||
653 | - lprint("Error: Bad first argument\r\n"); | ||
654 | - return; | ||
655 | - } | ||
656 | - } | ||
657 | - | ||
658 | - if (sscanf(buff2, "%128[^:]:%128s", buff1, buff3) != 2) { | ||
659 | - buff3 = 0; | ||
660 | - if (sscanf(buff2, "%256s", buff1) != 1) { | ||
661 | - lprint("Error: Bad second argument\r\n"); | ||
662 | - return; | ||
663 | - } | ||
664 | - } | ||
665 | - | ||
666 | - if (buff3) { | ||
667 | - if (strcmp(buff3, "lowdelay") == 0) | ||
668 | - tos = IPTOS_LOWDELAY; | ||
669 | - else if (strcmp(buff3, "throughput") == 0) | ||
670 | - tos = IPTOS_THROUGHPUT; | ||
671 | - else { | ||
672 | - lprint("Error: Expecting \"lowdelay\"/\"throughput\"\r\n"); | ||
673 | - return; | ||
674 | - } | ||
675 | - } | ||
676 | - | ||
677 | - if (strcmp(buff1, "ftp") == 0) | ||
678 | - emu = EMU_FTP; | ||
679 | - else if (strcmp(buff1, "irc") == 0) | ||
680 | - emu = EMU_IRC; | ||
681 | - else if (strcmp(buff1, "none") == 0) | ||
682 | - emu = EMU_NONE; /* ie: no emulation */ | ||
683 | - else { | ||
684 | - lprint("Error: Unknown service\r\n"); | ||
685 | - return; | ||
686 | - } | ||
687 | - | ||
688 | - /* First, check that it isn't already emulated */ | ||
689 | - for (emup = tcpemu; emup; emup = emup->next) { | ||
690 | - if (emup->lport == lport && emup->fport == fport) { | ||
691 | - lprint("Error: port already emulated\r\n"); | ||
692 | - return; | ||
693 | - } | ||
694 | - } | ||
695 | - | ||
696 | - /* link it */ | ||
697 | - emup = (struct emu_t *)malloc(sizeof (struct emu_t)); | ||
698 | - emup->lport = (u_int16_t)lport; | ||
699 | - emup->fport = (u_int16_t)fport; | ||
700 | - emup->tos = tos; | ||
701 | - emup->emu = emu; | ||
702 | - emup->next = tcpemu; | ||
703 | - tcpemu = emup; | ||
704 | - | ||
705 | - /* And finally, mark all current sessions, if any, as being emulated */ | ||
706 | - for (so = tcb.so_next; so != &tcb; so = so->so_next) { | ||
707 | - if ((lport && lport == ntohs(so->so_lport)) || | ||
708 | - (fport && fport == ntohs(so->so_fport))) { | ||
709 | - if (emu) | ||
710 | - so->so_emu = emu; | ||
711 | - if (tos) | ||
712 | - so->so_iptos = tos; | ||
713 | - } | ||
714 | - } | ||
715 | - | ||
716 | - lprint("Adding emulation for %s to port %d/%d\r\n", buff1, emup->lport, emup->fport); | ||
717 | -} | ||
718 | -#endif | ||
719 | 287 | ||
720 | #ifdef BAD_SPRINTF | 288 | #ifdef BAD_SPRINTF |
721 | 289 | ||
@@ -817,99 +385,6 @@ fd_block(int fd) | @@ -817,99 +385,6 @@ fd_block(int fd) | ||
817 | #endif | 385 | #endif |
818 | } | 386 | } |
819 | 387 | ||
820 | - | ||
821 | -#if 0 | ||
822 | -/* | ||
823 | - * invoke RSH | ||
824 | - */ | ||
825 | -int | ||
826 | -rsh_exec(so,ns, user, host, args) | ||
827 | - struct socket *so; | ||
828 | - struct socket *ns; | ||
829 | - char *user; | ||
830 | - char *host; | ||
831 | - char *args; | ||
832 | -{ | ||
833 | - int fd[2]; | ||
834 | - int fd0[2]; | ||
835 | - int s; | ||
836 | - char buff[256]; | ||
837 | - | ||
838 | - DEBUG_CALL("rsh_exec"); | ||
839 | - DEBUG_ARG("so = %lx", (long)so); | ||
840 | - | ||
841 | - if (pipe(fd)<0) { | ||
842 | - lprint("Error: pipe failed: %s\n", strerror(errno)); | ||
843 | - return 0; | ||
844 | - } | ||
845 | -/* #ifdef HAVE_SOCKETPAIR */ | ||
846 | -#if 1 | ||
847 | - if (socketpair(PF_UNIX,SOCK_STREAM,0, fd0) == -1) { | ||
848 | - close(fd[0]); | ||
849 | - close(fd[1]); | ||
850 | - lprint("Error: openpty failed: %s\n", strerror(errno)); | ||
851 | - return 0; | ||
852 | - } | ||
853 | -#else | ||
854 | - if (slirp_openpty(&fd0[0], &fd0[1]) == -1) { | ||
855 | - close(fd[0]); | ||
856 | - close(fd[1]); | ||
857 | - lprint("Error: openpty failed: %s\n", strerror(errno)); | ||
858 | - return 0; | ||
859 | - } | ||
860 | -#endif | ||
861 | - | ||
862 | - switch(fork()) { | ||
863 | - case -1: | ||
864 | - lprint("Error: fork failed: %s\n", strerror(errno)); | ||
865 | - close(fd[0]); | ||
866 | - close(fd[1]); | ||
867 | - close(fd0[0]); | ||
868 | - close(fd0[1]); | ||
869 | - return 0; | ||
870 | - | ||
871 | - case 0: | ||
872 | - close(fd[0]); | ||
873 | - close(fd0[0]); | ||
874 | - | ||
875 | - /* Set the DISPLAY */ | ||
876 | - if (x_port >= 0) { | ||
877 | -#ifdef HAVE_SETENV | ||
878 | - sprintf(buff, "%s:%d.%d", inet_ntoa(our_addr), x_port, x_screen); | ||
879 | - setenv("DISPLAY", buff, 1); | ||
880 | -#else | ||
881 | - sprintf(buff, "DISPLAY=%s:%d.%d", inet_ntoa(our_addr), x_port, x_screen); | ||
882 | - putenv(buff); | ||
883 | -#endif | ||
884 | - } | ||
885 | - | ||
886 | - dup2(fd0[1], 0); | ||
887 | - dup2(fd0[1], 1); | ||
888 | - dup2(fd[1], 2); | ||
889 | - for (s = 3; s <= 255; s++) | ||
890 | - close(s); | ||
891 | - | ||
892 | - execlp("rsh","rsh","-l", user, host, args, NULL); | ||
893 | - | ||
894 | - /* Ooops, failed, let's tell the user why */ | ||
895 | - | ||
896 | - sprintf(buff, "Error: execlp of %s failed: %s\n", | ||
897 | - "rsh", strerror(errno)); | ||
898 | - write(2, buff, strlen(buff)+1); | ||
899 | - close(0); close(1); close(2); /* XXX */ | ||
900 | - exit(1); | ||
901 | - | ||
902 | - default: | ||
903 | - close(fd[1]); | ||
904 | - close(fd0[1]); | ||
905 | - ns->s=fd[0]; | ||
906 | - so->s=fd0[0]; | ||
907 | - | ||
908 | - return 1; | ||
909 | - } | ||
910 | -} | ||
911 | -#endif | ||
912 | - | ||
913 | void slirp_connection_info(Monitor *mon) | 388 | void slirp_connection_info(Monitor *mon) |
914 | { | 389 | { |
915 | const char * const tcpstates[] = { | 390 | const char * const tcpstates[] = { |
slirp/misc.h
@@ -19,10 +19,6 @@ struct ex_list { | @@ -19,10 +19,6 @@ struct ex_list { | ||
19 | extern struct ex_list *exec_list; | 19 | extern struct ex_list *exec_list; |
20 | extern u_int time_fasttimo, last_slowtimo; | 20 | extern u_int time_fasttimo, last_slowtimo; |
21 | 21 | ||
22 | -extern int (*lprint_print) _P((void *, const char *, va_list)); | ||
23 | -extern char *lprint_ptr, *lprint_ptr2, **lprint_arg; | ||
24 | -extern struct sbuf *lprint_sb; | ||
25 | - | ||
26 | #ifndef HAVE_STRDUP | 22 | #ifndef HAVE_STRDUP |
27 | char *strdup _P((const char *)); | 23 | char *strdup _P((const char *)); |
28 | #endif | 24 | #endif |
@@ -63,10 +59,6 @@ struct emu_t { | @@ -63,10 +59,6 @@ struct emu_t { | ||
63 | struct emu_t *next; | 59 | struct emu_t *next; |
64 | }; | 60 | }; |
65 | 61 | ||
66 | -#ifndef CONFIG_QEMU | ||
67 | -extern struct emu_t *tcpemu; | ||
68 | -#endif | ||
69 | - | ||
70 | extern int x_port, x_server, x_display; | 62 | extern int x_port, x_server, x_display; |
71 | 63 | ||
72 | int show_x _P((char *, struct socket *)); | 64 | int show_x _P((char *, struct socket *)); |
slirp/sbuf.c
@@ -9,14 +9,6 @@ | @@ -9,14 +9,6 @@ | ||
9 | 9 | ||
10 | static void sbappendsb(struct sbuf *sb, struct mbuf *m); | 10 | static void sbappendsb(struct sbuf *sb, struct mbuf *m); |
11 | 11 | ||
12 | -/* Done as a macro in socket.h */ | ||
13 | -/* int | ||
14 | - * sbspace(struct sockbuff *sb) | ||
15 | - * { | ||
16 | - * return SB_DATALEN - sb->sb_cc; | ||
17 | - * } | ||
18 | - */ | ||
19 | - | ||
20 | void | 12 | void |
21 | sbfree(struct sbuf *sb) | 13 | sbfree(struct sbuf *sb) |
22 | { | 14 | { |
slirp/slirp.c
@@ -55,7 +55,6 @@ int slirp_restrict; | @@ -55,7 +55,6 @@ int slirp_restrict; | ||
55 | static int do_slowtimo; | 55 | static int do_slowtimo; |
56 | int link_up; | 56 | int link_up; |
57 | struct timeval tt; | 57 | struct timeval tt; |
58 | -FILE *lfd; | ||
59 | struct ex_list *exec_list; | 58 | struct ex_list *exec_list; |
60 | 59 | ||
61 | /* XXX: suppress those select globals */ | 60 | /* XXX: suppress those select globals */ |
@@ -96,16 +95,6 @@ static int get_dns_addr(struct in_addr *pdns_addr) | @@ -96,16 +95,6 @@ static int get_dns_addr(struct in_addr *pdns_addr) | ||
96 | pIPAddr = &(FixedInfo->DnsServerList); | 95 | pIPAddr = &(FixedInfo->DnsServerList); |
97 | inet_aton(pIPAddr->IpAddress.String, &tmp_addr); | 96 | inet_aton(pIPAddr->IpAddress.String, &tmp_addr); |
98 | *pdns_addr = tmp_addr; | 97 | *pdns_addr = tmp_addr; |
99 | -#if 0 | ||
100 | - printf( "DNS Servers:\n" ); | ||
101 | - printf( "DNS Addr:%s\n", pIPAddr->IpAddress.String ); | ||
102 | - | ||
103 | - pIPAddr = FixedInfo -> DnsServerList.Next; | ||
104 | - while ( pIPAddr ) { | ||
105 | - printf( "DNS Addr:%s\n", pIPAddr ->IpAddress.String ); | ||
106 | - pIPAddr = pIPAddr ->Next; | ||
107 | - } | ||
108 | -#endif | ||
109 | if (FixedInfo) { | 98 | if (FixedInfo) { |
110 | GlobalFree(FixedInfo); | 99 | GlobalFree(FixedInfo); |
111 | FixedInfo = NULL; | 100 | FixedInfo = NULL; |
@@ -179,8 +168,6 @@ void slirp_init(int restricted, struct in_addr vnetwork, | @@ -179,8 +168,6 @@ void slirp_init(int restricted, struct in_addr vnetwork, | ||
179 | const char *bootfile, struct in_addr vdhcp_start, | 168 | const char *bootfile, struct in_addr vdhcp_start, |
180 | struct in_addr vnameserver) | 169 | struct in_addr vnameserver) |
181 | { | 170 | { |
182 | - // debug_init("/tmp/slirp.log", DEBUG_DEFAULT); | ||
183 | - | ||
184 | #ifdef _WIN32 | 171 | #ifdef _WIN32 |
185 | WSADATA Data; | 172 | WSADATA Data; |
186 | 173 |
slirp/slirp.h
1 | #ifndef __COMMON_H__ | 1 | #ifndef __COMMON_H__ |
2 | #define __COMMON_H__ | 2 | #define __COMMON_H__ |
3 | 3 | ||
4 | -#define CONFIG_QEMU | ||
5 | - | ||
6 | //#define DEBUG 1 | 4 | //#define DEBUG 1 |
7 | 5 | ||
8 | // Uncomment the following line to enable SLIRP statistics printing in Qemu | 6 | // Uncomment the following line to enable SLIRP statistics printing in Qemu |
@@ -14,9 +12,6 @@ | @@ -14,9 +12,6 @@ | ||
14 | #define STAT(expr) do { } while(0) | 12 | #define STAT(expr) do { } while(0) |
15 | #endif | 13 | #endif |
16 | 14 | ||
17 | -#ifndef CONFIG_QEMU | ||
18 | -#include "version.h" | ||
19 | -#endif | ||
20 | #include "config-host.h" | 15 | #include "config-host.h" |
21 | #include "slirp_config.h" | 16 | #include "slirp_config.h" |
22 | 17 | ||
@@ -223,8 +218,6 @@ int inet_aton _P((const char *cp, struct in_addr *ia)); | @@ -223,8 +218,6 @@ int inet_aton _P((const char *cp, struct in_addr *ia)); | ||
223 | #include "tftp.h" | 218 | #include "tftp.h" |
224 | #include "libslirp.h" | 219 | #include "libslirp.h" |
225 | 220 | ||
226 | -extern struct ttys *ttys_unit[MAX_INTERFACES]; | ||
227 | - | ||
228 | #ifndef NULL | 221 | #ifndef NULL |
229 | #define NULL (void *)0 | 222 | #define NULL (void *)0 |
230 | #endif | 223 | #endif |
slirp/socket.c
@@ -15,14 +15,6 @@ | @@ -15,14 +15,6 @@ | ||
15 | static void sofcantrcvmore(struct socket *so); | 15 | static void sofcantrcvmore(struct socket *so); |
16 | static void sofcantsendmore(struct socket *so); | 16 | static void sofcantsendmore(struct socket *so); |
17 | 17 | ||
18 | -#if 0 | ||
19 | -static void | ||
20 | -so_init() | ||
21 | -{ | ||
22 | - /* Nothing yet */ | ||
23 | -} | ||
24 | -#endif | ||
25 | - | ||
26 | struct socket * | 18 | struct socket * |
27 | solookup(struct socket *head, struct in_addr laddr, u_int lport, | 19 | solookup(struct socket *head, struct in_addr laddr, u_int lport, |
28 | struct in_addr faddr, u_int fport) | 20 | struct in_addr faddr, u_int fport) |
@@ -526,12 +518,6 @@ sorecvfrom(struct socket *so) | @@ -526,12 +518,6 @@ sorecvfrom(struct socket *so) | ||
526 | so->so_expire = curtime + SO_EXPIRE; | 518 | so->so_expire = curtime + SO_EXPIRE; |
527 | } | 519 | } |
528 | 520 | ||
529 | - /* if (m->m_len == len) { | ||
530 | - * m_inc(m, MINCSIZE); | ||
531 | - * m->m_len = 0; | ||
532 | - * } | ||
533 | - */ | ||
534 | - | ||
535 | /* | 521 | /* |
536 | * If this packet was destined for CTL_ADDR, | 522 | * If this packet was destined for CTL_ADDR, |
537 | * make it look like that's where it came from, done by udp_output | 523 | * make it look like that's where it came from, done by udp_output |
@@ -604,7 +590,6 @@ tcp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, int flags | @@ -604,7 +590,6 @@ tcp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, int flags | ||
604 | DEBUG_ARG("flags = %x", flags); | 590 | DEBUG_ARG("flags = %x", flags); |
605 | 591 | ||
606 | if ((so = socreate()) == NULL) { | 592 | if ((so = socreate()) == NULL) { |
607 | - /* free(so); Not sofree() ??? free(NULL) == NOP */ | ||
608 | return NULL; | 593 | return NULL; |
609 | } | 594 | } |
610 | 595 | ||
@@ -659,33 +644,6 @@ tcp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, int flags | @@ -659,33 +644,6 @@ tcp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, int flags | ||
659 | return so; | 644 | return so; |
660 | } | 645 | } |
661 | 646 | ||
662 | -#if 0 | ||
663 | -/* | ||
664 | - * Data is available in so_rcv | ||
665 | - * Just write() the data to the socket | ||
666 | - * XXX not yet... | ||
667 | - */ | ||
668 | -static void | ||
669 | -sorwakeup(so) | ||
670 | - struct socket *so; | ||
671 | -{ | ||
672 | -/* sowrite(so); */ | ||
673 | -/* FD_CLR(so->s,&writefds); */ | ||
674 | -} | ||
675 | - | ||
676 | -/* | ||
677 | - * Data has been freed in so_snd | ||
678 | - * We have room for a read() if we want to | ||
679 | - * For now, don't read, it'll be done in the main loop | ||
680 | - */ | ||
681 | -static void | ||
682 | -sowwakeup(so) | ||
683 | - struct socket *so; | ||
684 | -{ | ||
685 | - /* Nothing, yet */ | ||
686 | -} | ||
687 | -#endif | ||
688 | - | ||
689 | /* | 647 | /* |
690 | * Various session state calls | 648 | * Various session state calls |
691 | * XXX Should be #define's | 649 | * XXX Should be #define's |
@@ -746,17 +704,6 @@ sofcantsendmore(struct socket *so) | @@ -746,17 +704,6 @@ sofcantsendmore(struct socket *so) | ||
746 | } | 704 | } |
747 | } | 705 | } |
748 | 706 | ||
749 | -void | ||
750 | -soisfdisconnected(struct socket *so) | ||
751 | -{ | ||
752 | -/* so->so_state &= ~(SS_ISFCONNECTING|SS_ISFCONNECTED); */ | ||
753 | -/* close(so->s); */ | ||
754 | -/* so->so_state = SS_ISFDISCONNECTED; */ | ||
755 | - /* | ||
756 | - * XXX Do nothing ... ? | ||
757 | - */ | ||
758 | -} | ||
759 | - | ||
760 | /* | 707 | /* |
761 | * Set write drain mode | 708 | * Set write drain mode |
762 | * Set CANTSENDMORE once all data has been write()n | 709 | * Set CANTSENDMORE once all data has been write()n |
slirp/socket.h
@@ -5,8 +5,6 @@ | @@ -5,8 +5,6 @@ | ||
5 | * terms and conditions of the copyright. | 5 | * terms and conditions of the copyright. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | -/* MINE */ | ||
9 | - | ||
10 | #ifndef _SLIRP_SOCKET_H_ | 8 | #ifndef _SLIRP_SOCKET_H_ |
11 | #define _SLIRP_SOCKET_H_ | 9 | #define _SLIRP_SOCKET_H_ |
12 | 10 | ||
@@ -64,7 +62,6 @@ struct socket { | @@ -64,7 +62,6 @@ struct socket { | ||
64 | #define SS_ISFCONNECTED 0x004 /* Socket is connected to peer */ | 62 | #define SS_ISFCONNECTED 0x004 /* Socket is connected to peer */ |
65 | #define SS_FCANTRCVMORE 0x008 /* Socket can't receive more from peer (for half-closes) */ | 63 | #define SS_FCANTRCVMORE 0x008 /* Socket can't receive more from peer (for half-closes) */ |
66 | #define SS_FCANTSENDMORE 0x010 /* Socket can't send more to peer (for half-closes) */ | 64 | #define SS_FCANTSENDMORE 0x010 /* Socket can't send more to peer (for half-closes) */ |
67 | -/* #define SS_ISFDISCONNECTED 0x020*/ /* Socket has disconnected from peer, in 2MSL state */ | ||
68 | #define SS_FWDRAIN 0x040 /* We received a FIN, drain data and set SS_FCANTSENDMORE */ | 65 | #define SS_FWDRAIN 0x040 /* We received a FIN, drain data and set SS_FCANTSENDMORE */ |
69 | 66 | ||
70 | #define SS_CTL 0x080 | 67 | #define SS_CTL 0x080 |
@@ -89,7 +86,6 @@ int sosendto _P((struct socket *, struct mbuf *)); | @@ -89,7 +86,6 @@ int sosendto _P((struct socket *, struct mbuf *)); | ||
89 | struct socket * tcp_listen _P((u_int32_t, u_int, u_int32_t, u_int, int)); | 86 | struct socket * tcp_listen _P((u_int32_t, u_int, u_int32_t, u_int, int)); |
90 | void soisfconnecting _P((register struct socket *)); | 87 | void soisfconnecting _P((register struct socket *)); |
91 | void soisfconnected _P((register struct socket *)); | 88 | void soisfconnected _P((register struct socket *)); |
92 | -void soisfdisconnected _P((struct socket *)); | ||
93 | void sofwdrain _P((struct socket *)); | 89 | void sofwdrain _P((struct socket *)); |
94 | struct iovec; /* For win32 */ | 90 | struct iovec; /* For win32 */ |
95 | size_t sopreprbuf(struct socket *so, struct iovec *iov, int *np); | 91 | size_t sopreprbuf(struct socket *so, struct iovec *iov, int *np); |
slirp/tcp.h
@@ -113,7 +113,6 @@ struct tcphdr { | @@ -113,7 +113,6 @@ struct tcphdr { | ||
113 | #undef TCP_NODELAY | 113 | #undef TCP_NODELAY |
114 | #define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ | 114 | #define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ |
115 | #undef TCP_MAXSEG | 115 | #undef TCP_MAXSEG |
116 | -/* #define TCP_MAXSEG 0x02 */ /* set maximum segment size */ | ||
117 | 116 | ||
118 | /* | 117 | /* |
119 | * TCP FSM state definitions. | 118 | * TCP FSM state definitions. |
slirp/tcp_input.c
@@ -81,7 +81,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | @@ -81,7 +81,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | ||
81 | if (tcp_emu((so),(m))) sbappend((so), (m)); \ | 81 | if (tcp_emu((so),(m))) sbappend((so), (m)); \ |
82 | } else \ | 82 | } else \ |
83 | sbappend((so), (m)); \ | 83 | sbappend((so), (m)); \ |
84 | -/* sorwakeup(so); */ \ | ||
85 | } else {\ | 84 | } else {\ |
86 | (flags) = tcp_reass((tp), (ti), (m)); \ | 85 | (flags) = tcp_reass((tp), (ti), (m)); \ |
87 | tp->t_flags |= TF_ACKNOW; \ | 86 | tp->t_flags |= TF_ACKNOW; \ |
@@ -101,7 +100,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | @@ -101,7 +100,6 @@ tcp_seq tcp_iss; /* tcp initial send seq # */ | ||
101 | if (tcp_emu((so),(m))) sbappend(so, (m)); \ | 100 | if (tcp_emu((so),(m))) sbappend(so, (m)); \ |
102 | } else \ | 101 | } else \ |
103 | sbappend((so), (m)); \ | 102 | sbappend((so), (m)); \ |
104 | -/* sorwakeup(so); */ \ | ||
105 | } else { \ | 103 | } else { \ |
106 | (flags) = tcp_reass((tp), (ti), (m)); \ | 104 | (flags) = tcp_reass((tp), (ti), (m)); \ |
107 | tp->t_flags |= TF_ACKNOW; \ | 105 | tp->t_flags |= TF_ACKNOW; \ |
@@ -211,7 +209,6 @@ present: | @@ -211,7 +209,6 @@ present: | ||
211 | remque(tcpiphdr2qlink(ti)); | 209 | remque(tcpiphdr2qlink(ti)); |
212 | m = ti->ti_mbuf; | 210 | m = ti->ti_mbuf; |
213 | ti = tcpiphdr_next(ti); | 211 | ti = tcpiphdr_next(ti); |
214 | -/* if (so->so_state & SS_FCANTRCVMORE) */ | ||
215 | if (so->so_state & SS_FCANTSENDMORE) | 212 | if (so->so_state & SS_FCANTSENDMORE) |
216 | m_freem(m); | 213 | m_freem(m); |
217 | else { | 214 | else { |
@@ -221,7 +218,6 @@ present: | @@ -221,7 +218,6 @@ present: | ||
221 | sbappend(so, m); | 218 | sbappend(so, m); |
222 | } | 219 | } |
223 | } while (ti != (struct tcpiphdr *)tp && ti->ti_seq == tp->rcv_nxt); | 220 | } while (ti != (struct tcpiphdr *)tp && ti->ti_seq == tp->rcv_nxt); |
224 | -/* sorwakeup(so); */ | ||
225 | return (flags); | 221 | return (flags); |
226 | } | 222 | } |
227 | 223 | ||
@@ -241,11 +237,9 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | @@ -241,11 +237,9 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | ||
241 | register int tiflags; | 237 | register int tiflags; |
242 | struct socket *so = NULL; | 238 | struct socket *so = NULL; |
243 | int todrop, acked, ourfinisacked, needoutput = 0; | 239 | int todrop, acked, ourfinisacked, needoutput = 0; |
244 | -/* int dropsocket = 0; */ | ||
245 | int iss = 0; | 240 | int iss = 0; |
246 | u_long tiwin; | 241 | u_long tiwin; |
247 | int ret; | 242 | int ret; |
248 | -/* int ts_present = 0; */ | ||
249 | struct ex_list *ex_ptr; | 243 | struct ex_list *ex_ptr; |
250 | 244 | ||
251 | DEBUG_CALL("tcp_input"); | 245 | DEBUG_CALL("tcp_input"); |
@@ -300,9 +294,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | @@ -300,9 +294,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | ||
300 | ti->ti_x1 = 0; | 294 | ti->ti_x1 = 0; |
301 | ti->ti_len = htons((u_int16_t)tlen); | 295 | ti->ti_len = htons((u_int16_t)tlen); |
302 | len = sizeof(struct ip ) + tlen; | 296 | len = sizeof(struct ip ) + tlen; |
303 | - /* keep checksum for ICMP reply | ||
304 | - * ti->ti_sum = cksum(m, len); | ||
305 | - * if (ti->ti_sum) { */ | ||
306 | if(cksum(m, len)) { | 297 | if(cksum(m, len)) { |
307 | STAT(tcpstat.tcps_rcvbadsum++); | 298 | STAT(tcpstat.tcps_rcvbadsum++); |
308 | goto drop; | 299 | goto drop; |
@@ -322,25 +313,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | @@ -322,25 +313,6 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso) | ||
322 | if (off > sizeof (struct tcphdr)) { | 313 | if (off > sizeof (struct tcphdr)) { |
323 | optlen = off - sizeof (struct tcphdr); | 314 | optlen = off - sizeof (struct tcphdr); |
324 | optp = mtod(m, caddr_t) + sizeof (struct tcpiphdr); | 315 | optp = mtod(m, caddr_t) + sizeof (struct tcpiphdr); |
325 | - | ||
326 | - /* | ||
327 | - * Do quick retrieval of timestamp options ("options | ||
328 | - * prediction?"). If timestamp is the only option and it's | ||
329 | - * formatted as recommended in RFC 1323 appendix A, we | ||
330 | - * quickly get the values now and not bother calling | ||
331 | - * tcp_dooptions(), etc. | ||
332 | - */ | ||
333 | -/* if ((optlen == TCPOLEN_TSTAMP_APPA || | ||
334 | - * (optlen > TCPOLEN_TSTAMP_APPA && | ||
335 | - * optp[TCPOLEN_TSTAMP_APPA] == TCPOPT_EOL)) && | ||
336 | - * *(u_int32_t *)optp == htonl(TCPOPT_TSTAMP_HDR) && | ||
337 | - * (ti->ti_flags & TH_SYN) == 0) { | ||
338 | - * ts_present = 1; | ||
339 | - * ts_val = ntohl(*(u_int32_t *)(optp + 4)); | ||
340 | - * ts_ecr = ntohl(*(u_int32_t *)(optp + 8)); | ||
341 | - * optp = NULL; / * we've parsed the options * / | ||
342 | - * } | ||
343 | - */ | ||
344 | } | 316 | } |
345 | tiflags = ti->ti_flags; | 317 | tiflags = ti->ti_flags; |
346 | 318 | ||
@@ -411,9 +383,6 @@ findso: | @@ -411,9 +383,6 @@ findso: | ||
411 | sbreserve(&so->so_snd, TCP_SNDSPACE); | 383 | sbreserve(&so->so_snd, TCP_SNDSPACE); |
412 | sbreserve(&so->so_rcv, TCP_RCVSPACE); | 384 | sbreserve(&so->so_rcv, TCP_RCVSPACE); |
413 | 385 | ||
414 | - /* tcp_last_so = so; */ /* XXX ? */ | ||
415 | - /* tp = sototcpcb(so); */ | ||
416 | - | ||
417 | so->so_laddr = ti->ti_src; | 386 | so->so_laddr = ti->ti_src; |
418 | so->so_lport = ti->ti_sport; | 387 | so->so_lport = ti->ti_sport; |
419 | so->so_faddr = ti->ti_dst; | 388 | so->so_faddr = ti->ti_dst; |
@@ -442,12 +411,7 @@ findso: | @@ -442,12 +411,7 @@ findso: | ||
442 | if (tp->t_state == TCPS_CLOSED) | 411 | if (tp->t_state == TCPS_CLOSED) |
443 | goto drop; | 412 | goto drop; |
444 | 413 | ||
445 | - /* Unscale the window into a 32-bit value. */ | ||
446 | -/* if ((tiflags & TH_SYN) == 0) | ||
447 | - * tiwin = ti->ti_win << tp->snd_scale; | ||
448 | - * else | ||
449 | - */ | ||
450 | - tiwin = ti->ti_win; | 414 | + tiwin = ti->ti_win; |
451 | 415 | ||
452 | /* | 416 | /* |
453 | * Segment received on connection. | 417 | * Segment received on connection. |
@@ -465,8 +429,6 @@ findso: | @@ -465,8 +429,6 @@ findso: | ||
465 | */ | 429 | */ |
466 | if (optp && tp->t_state != TCPS_LISTEN) | 430 | if (optp && tp->t_state != TCPS_LISTEN) |
467 | tcp_dooptions(tp, (u_char *)optp, optlen, ti); | 431 | tcp_dooptions(tp, (u_char *)optp, optlen, ti); |
468 | -/* , */ | ||
469 | -/* &ts_present, &ts_val, &ts_ecr); */ | ||
470 | 432 | ||
471 | /* | 433 | /* |
472 | * Header prediction: check for the two common cases | 434 | * Header prediction: check for the two common cases |
@@ -488,20 +450,9 @@ findso: | @@ -488,20 +450,9 @@ findso: | ||
488 | */ | 450 | */ |
489 | if (tp->t_state == TCPS_ESTABLISHED && | 451 | if (tp->t_state == TCPS_ESTABLISHED && |
490 | (tiflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK && | 452 | (tiflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK && |
491 | -/* (!ts_present || TSTMP_GEQ(ts_val, tp->ts_recent)) && */ | ||
492 | ti->ti_seq == tp->rcv_nxt && | 453 | ti->ti_seq == tp->rcv_nxt && |
493 | tiwin && tiwin == tp->snd_wnd && | 454 | tiwin && tiwin == tp->snd_wnd && |
494 | tp->snd_nxt == tp->snd_max) { | 455 | tp->snd_nxt == tp->snd_max) { |
495 | - /* | ||
496 | - * If last ACK falls within this segment's sequence numbers, | ||
497 | - * record the timestamp. | ||
498 | - */ | ||
499 | -/* if (ts_present && SEQ_LEQ(ti->ti_seq, tp->last_ack_sent) && | ||
500 | - * SEQ_LT(tp->last_ack_sent, ti->ti_seq + ti->ti_len)) { | ||
501 | - * tp->ts_recent_age = tcp_now; | ||
502 | - * tp->ts_recent = ts_val; | ||
503 | - * } | ||
504 | - */ | ||
505 | if (ti->ti_len == 0) { | 456 | if (ti->ti_len == 0) { |
506 | if (SEQ_GT(ti->ti_ack, tp->snd_una) && | 457 | if (SEQ_GT(ti->ti_ack, tp->snd_una) && |
507 | SEQ_LEQ(ti->ti_ack, tp->snd_max) && | 458 | SEQ_LEQ(ti->ti_ack, tp->snd_max) && |
@@ -510,11 +461,8 @@ findso: | @@ -510,11 +461,8 @@ findso: | ||
510 | * this is a pure ack for outstanding data. | 461 | * this is a pure ack for outstanding data. |
511 | */ | 462 | */ |
512 | STAT(tcpstat.tcps_predack++); | 463 | STAT(tcpstat.tcps_predack++); |
513 | -/* if (ts_present) | ||
514 | - * tcp_xmit_timer(tp, tcp_now-ts_ecr+1); | ||
515 | - * else | ||
516 | - */ if (tp->t_rtt && | ||
517 | - SEQ_GT(ti->ti_ack, tp->t_rtseq)) | 464 | + if (tp->t_rtt && |
465 | + SEQ_GT(ti->ti_ack, tp->t_rtseq)) | ||
518 | tcp_xmit_timer(tp, tp->t_rtt); | 466 | tcp_xmit_timer(tp, tp->t_rtt); |
519 | acked = ti->ti_ack - tp->snd_una; | 467 | acked = ti->ti_ack - tp->snd_una; |
520 | STAT(tcpstat.tcps_rcvackpack++); | 468 | STAT(tcpstat.tcps_rcvackpack++); |
@@ -538,13 +486,6 @@ findso: | @@ -538,13 +486,6 @@ findso: | ||
538 | tp->t_timer[TCPT_REXMT] = tp->t_rxtcur; | 486 | tp->t_timer[TCPT_REXMT] = tp->t_rxtcur; |
539 | 487 | ||
540 | /* | 488 | /* |
541 | - * There's room in so_snd, sowwakup will read() | ||
542 | - * from the socket if we can | ||
543 | - */ | ||
544 | -/* if (so->so_snd.sb_flags & SB_NOTIFY) | ||
545 | - * sowwakeup(so); | ||
546 | - */ | ||
547 | - /* | ||
548 | * This is called because sowwakeup might have | 489 | * This is called because sowwakeup might have |
549 | * put data into so_snd. Since we don't so sowwakeup, | 490 | * put data into so_snd. Since we don't so sowwakeup, |
550 | * we don't need this.. XXX??? | 491 | * we don't need this.. XXX??? |
@@ -575,13 +516,6 @@ findso: | @@ -575,13 +516,6 @@ findso: | ||
575 | sbappend(so, m); | 516 | sbappend(so, m); |
576 | 517 | ||
577 | /* | 518 | /* |
578 | - * XXX This is called when data arrives. Later, check | ||
579 | - * if we can actually write() to the socket | ||
580 | - * XXX Need to check? It's be NON_BLOCKING | ||
581 | - */ | ||
582 | -/* sorwakeup(so); */ | ||
583 | - | ||
584 | - /* | ||
585 | * If this is a short packet, then ACK now - with Nagel | 519 | * If this is a short packet, then ACK now - with Nagel |
586 | * congestion avoidance sender won't send more until | 520 | * congestion avoidance sender won't send more until |
587 | * he gets an ACK. | 521 | * he gets an ACK. |
@@ -644,13 +578,6 @@ findso: | @@ -644,13 +578,6 @@ findso: | ||
644 | vnetwork_addr.s_addr) { | 578 | vnetwork_addr.s_addr) { |
645 | if (so->so_faddr.s_addr != vhost_addr.s_addr && | 579 | if (so->so_faddr.s_addr != vhost_addr.s_addr && |
646 | so->so_faddr.s_addr != vnameserver_addr.s_addr) { | 580 | so->so_faddr.s_addr != vnameserver_addr.s_addr) { |
647 | -#if 0 | ||
648 | - if(lastbyte==CTL_CMD || lastbyte==CTL_EXEC) { | ||
649 | - /* Command or exec adress */ | ||
650 | - so->so_state |= SS_CTL; | ||
651 | - } else | ||
652 | -#endif | ||
653 | - { | ||
654 | /* May be an add exec */ | 581 | /* May be an add exec */ |
655 | for(ex_ptr = exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) { | 582 | for(ex_ptr = exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) { |
656 | if(ex_ptr->ex_fport == so->so_fport && | 583 | if(ex_ptr->ex_fport == so->so_fport && |
@@ -659,8 +586,9 @@ findso: | @@ -659,8 +586,9 @@ findso: | ||
659 | break; | 586 | break; |
660 | } | 587 | } |
661 | } | 588 | } |
662 | - } | ||
663 | - if(so->so_state & SS_CTL) goto cont_input; | 589 | + if (so->so_state & SS_CTL) { |
590 | + goto cont_input; | ||
591 | + } | ||
664 | } | 592 | } |
665 | /* CTL_ALIAS: Do nothing, tcp_fconnect will be called on it */ | 593 | /* CTL_ALIAS: Do nothing, tcp_fconnect will be called on it */ |
666 | } | 594 | } |
@@ -718,8 +646,6 @@ findso: | @@ -718,8 +646,6 @@ findso: | ||
718 | 646 | ||
719 | if (optp) | 647 | if (optp) |
720 | tcp_dooptions(tp, (u_char *)optp, optlen, ti); | 648 | tcp_dooptions(tp, (u_char *)optp, optlen, ti); |
721 | - /* , */ | ||
722 | - /* &ts_present, &ts_val, &ts_ecr); */ | ||
723 | 649 | ||
724 | if (iss) | 650 | if (iss) |
725 | tp->iss = iss; | 651 | tp->iss = iss; |
@@ -777,13 +703,6 @@ findso: | @@ -777,13 +703,6 @@ findso: | ||
777 | soisfconnected(so); | 703 | soisfconnected(so); |
778 | tp->t_state = TCPS_ESTABLISHED; | 704 | tp->t_state = TCPS_ESTABLISHED; |
779 | 705 | ||
780 | - /* Do window scaling on this connection? */ | ||
781 | -/* if ((tp->t_flags & (TF_RCVD_SCALE|TF_REQ_SCALE)) == | ||
782 | - * (TF_RCVD_SCALE|TF_REQ_SCALE)) { | ||
783 | - * tp->snd_scale = tp->requested_s_scale; | ||
784 | - * tp->rcv_scale = tp->request_r_scale; | ||
785 | - * } | ||
786 | - */ | ||
787 | (void) tcp_reass(tp, (struct tcpiphdr *)0, | 706 | (void) tcp_reass(tp, (struct tcpiphdr *)0, |
788 | (struct mbuf *)0); | 707 | (struct mbuf *)0); |
789 | /* | 708 | /* |
@@ -816,40 +735,10 @@ trimthenstep6: | @@ -816,40 +735,10 @@ trimthenstep6: | ||
816 | } /* switch tp->t_state */ | 735 | } /* switch tp->t_state */ |
817 | /* | 736 | /* |
818 | * States other than LISTEN or SYN_SENT. | 737 | * States other than LISTEN or SYN_SENT. |
819 | - * First check timestamp, if present. | ||
820 | - * Then check that at least some bytes of segment are within | 738 | + * Check that at least some bytes of segment are within |
821 | * receive window. If segment begins before rcv_nxt, | 739 | * receive window. If segment begins before rcv_nxt, |
822 | * drop leading data (and SYN); if nothing left, just ack. | 740 | * drop leading data (and SYN); if nothing left, just ack. |
823 | - * | ||
824 | - * RFC 1323 PAWS: If we have a timestamp reply on this segment | ||
825 | - * and it's less than ts_recent, drop it. | ||
826 | */ | 741 | */ |
827 | -/* if (ts_present && (tiflags & TH_RST) == 0 && tp->ts_recent && | ||
828 | - * TSTMP_LT(ts_val, tp->ts_recent)) { | ||
829 | - * | ||
830 | - */ /* Check to see if ts_recent is over 24 days old. */ | ||
831 | -/* if ((int)(tcp_now - tp->ts_recent_age) > TCP_PAWS_IDLE) { | ||
832 | - */ /* | ||
833 | - * * Invalidate ts_recent. If this segment updates | ||
834 | - * * ts_recent, the age will be reset later and ts_recent | ||
835 | - * * will get a valid value. If it does not, setting | ||
836 | - * * ts_recent to zero will at least satisfy the | ||
837 | - * * requirement that zero be placed in the timestamp | ||
838 | - * * echo reply when ts_recent isn't valid. The | ||
839 | - * * age isn't reset until we get a valid ts_recent | ||
840 | - * * because we don't want out-of-order segments to be | ||
841 | - * * dropped when ts_recent is old. | ||
842 | - * */ | ||
843 | -/* tp->ts_recent = 0; | ||
844 | - * } else { | ||
845 | - * tcpstat.tcps_rcvduppack++; | ||
846 | - * tcpstat.tcps_rcvdupbyte += ti->ti_len; | ||
847 | - * tcpstat.tcps_pawsdrop++; | ||
848 | - * goto dropafterack; | ||
849 | - * } | ||
850 | - * } | ||
851 | - */ | ||
852 | - | ||
853 | todrop = tp->rcv_nxt - ti->ti_seq; | 742 | todrop = tp->rcv_nxt - ti->ti_seq; |
854 | if (todrop > 0) { | 743 | if (todrop > 0) { |
855 | if (tiflags & TH_SYN) { | 744 | if (tiflags & TH_SYN) { |
@@ -948,18 +837,6 @@ trimthenstep6: | @@ -948,18 +837,6 @@ trimthenstep6: | ||
948 | } | 837 | } |
949 | 838 | ||
950 | /* | 839 | /* |
951 | - * If last ACK falls within this segment's sequence numbers, | ||
952 | - * record its timestamp. | ||
953 | - */ | ||
954 | -/* if (ts_present && SEQ_LEQ(ti->ti_seq, tp->last_ack_sent) && | ||
955 | - * SEQ_LT(tp->last_ack_sent, ti->ti_seq + ti->ti_len + | ||
956 | - * ((tiflags & (TH_SYN|TH_FIN)) != 0))) { | ||
957 | - * tp->ts_recent_age = tcp_now; | ||
958 | - * tp->ts_recent = ts_val; | ||
959 | - * } | ||
960 | - */ | ||
961 | - | ||
962 | - /* | ||
963 | * If the RST bit is set examine the state: | 840 | * If the RST bit is set examine the state: |
964 | * SYN_RECEIVED STATE: | 841 | * SYN_RECEIVED STATE: |
965 | * If passive open, return to LISTEN state. | 842 | * If passive open, return to LISTEN state. |
@@ -972,15 +849,10 @@ trimthenstep6: | @@ -972,15 +849,10 @@ trimthenstep6: | ||
972 | if (tiflags&TH_RST) switch (tp->t_state) { | 849 | if (tiflags&TH_RST) switch (tp->t_state) { |
973 | 850 | ||
974 | case TCPS_SYN_RECEIVED: | 851 | case TCPS_SYN_RECEIVED: |
975 | -/* so->so_error = ECONNREFUSED; */ | ||
976 | - goto close; | ||
977 | - | ||
978 | case TCPS_ESTABLISHED: | 852 | case TCPS_ESTABLISHED: |
979 | case TCPS_FIN_WAIT_1: | 853 | case TCPS_FIN_WAIT_1: |
980 | case TCPS_FIN_WAIT_2: | 854 | case TCPS_FIN_WAIT_2: |
981 | case TCPS_CLOSE_WAIT: | 855 | case TCPS_CLOSE_WAIT: |
982 | -/* so->so_error = ECONNRESET; */ | ||
983 | - close: | ||
984 | tp->t_state = TCPS_CLOSED; | 856 | tp->t_state = TCPS_CLOSED; |
985 | STAT(tcpstat.tcps_drops++); | 857 | STAT(tcpstat.tcps_drops++); |
986 | tp = tcp_close(tp); | 858 | tp = tcp_close(tp); |
@@ -1048,13 +920,6 @@ trimthenstep6: | @@ -1048,13 +920,6 @@ trimthenstep6: | ||
1048 | soisfconnected(so); | 920 | soisfconnected(so); |
1049 | } | 921 | } |
1050 | 922 | ||
1051 | - /* Do window scaling? */ | ||
1052 | -/* if ((tp->t_flags & (TF_RCVD_SCALE|TF_REQ_SCALE)) == | ||
1053 | - * (TF_RCVD_SCALE|TF_REQ_SCALE)) { | ||
1054 | - * tp->snd_scale = tp->requested_s_scale; | ||
1055 | - * tp->rcv_scale = tp->request_r_scale; | ||
1056 | - * } | ||
1057 | - */ | ||
1058 | (void) tcp_reass(tp, (struct tcpiphdr *)0, (struct mbuf *)0); | 923 | (void) tcp_reass(tp, (struct tcpiphdr *)0, (struct mbuf *)0); |
1059 | tp->snd_wl1 = ti->ti_seq - 1; | 924 | tp->snd_wl1 = ti->ti_seq - 1; |
1060 | /* Avoid ack processing; snd_una==ti_ack => dup ack */ | 925 | /* Avoid ack processing; snd_una==ti_ack => dup ack */ |
@@ -1155,19 +1020,13 @@ trimthenstep6: | @@ -1155,19 +1020,13 @@ trimthenstep6: | ||
1155 | STAT(tcpstat.tcps_rcvackbyte += acked); | 1020 | STAT(tcpstat.tcps_rcvackbyte += acked); |
1156 | 1021 | ||
1157 | /* | 1022 | /* |
1158 | - * If we have a timestamp reply, update smoothed | ||
1159 | - * round trip time. If no timestamp is present but | ||
1160 | - * transmit timer is running and timed sequence | 1023 | + * If transmit timer is running and timed sequence |
1161 | * number was acked, update smoothed round trip time. | 1024 | * number was acked, update smoothed round trip time. |
1162 | * Since we now have an rtt measurement, cancel the | 1025 | * Since we now have an rtt measurement, cancel the |
1163 | * timer backoff (cf., Phil Karn's retransmit alg.). | 1026 | * timer backoff (cf., Phil Karn's retransmit alg.). |
1164 | * Recompute the initial retransmit timer. | 1027 | * Recompute the initial retransmit timer. |
1165 | */ | 1028 | */ |
1166 | -/* if (ts_present) | ||
1167 | - * tcp_xmit_timer(tp, tcp_now-ts_ecr+1); | ||
1168 | - * else | ||
1169 | - */ | ||
1170 | - if (tp->t_rtt && SEQ_GT(ti->ti_ack, tp->t_rtseq)) | 1029 | + if (tp->t_rtt && SEQ_GT(ti->ti_ack, tp->t_rtseq)) |
1171 | tcp_xmit_timer(tp,tp->t_rtt); | 1030 | tcp_xmit_timer(tp,tp->t_rtt); |
1172 | 1031 | ||
1173 | /* | 1032 | /* |
@@ -1205,13 +1064,6 @@ trimthenstep6: | @@ -1205,13 +1064,6 @@ trimthenstep6: | ||
1205 | tp->snd_wnd -= acked; | 1064 | tp->snd_wnd -= acked; |
1206 | ourfinisacked = 0; | 1065 | ourfinisacked = 0; |
1207 | } | 1066 | } |
1208 | - /* | ||
1209 | - * XXX sowwakup is called when data is acked and there's room for | ||
1210 | - * for more data... it should read() the socket | ||
1211 | - */ | ||
1212 | -/* if (so->so_snd.sb_flags & SB_NOTIFY) | ||
1213 | - * sowwakeup(so); | ||
1214 | - */ | ||
1215 | tp->snd_una = ti->ti_ack; | 1067 | tp->snd_una = ti->ti_ack; |
1216 | if (SEQ_LT(tp->snd_nxt, tp->snd_una)) | 1068 | if (SEQ_LT(tp->snd_nxt, tp->snd_una)) |
1217 | tp->snd_nxt = tp->snd_una; | 1069 | tp->snd_nxt = tp->snd_una; |
@@ -1233,7 +1085,6 @@ trimthenstep6: | @@ -1233,7 +1085,6 @@ trimthenstep6: | ||
1233 | * we'll hang forever. | 1085 | * we'll hang forever. |
1234 | */ | 1086 | */ |
1235 | if (so->so_state & SS_FCANTRCVMORE) { | 1087 | if (so->so_state & SS_FCANTRCVMORE) { |
1236 | - soisfdisconnected(so); | ||
1237 | tp->t_timer[TCPT_2MSL] = TCP_MAXIDLE; | 1088 | tp->t_timer[TCPT_2MSL] = TCP_MAXIDLE; |
1238 | } | 1089 | } |
1239 | tp->t_state = TCPS_FIN_WAIT_2; | 1090 | tp->t_state = TCPS_FIN_WAIT_2; |
@@ -1251,7 +1102,6 @@ trimthenstep6: | @@ -1251,7 +1102,6 @@ trimthenstep6: | ||
1251 | tp->t_state = TCPS_TIME_WAIT; | 1102 | tp->t_state = TCPS_TIME_WAIT; |
1252 | tcp_canceltimers(tp); | 1103 | tcp_canceltimers(tp); |
1253 | tp->t_timer[TCPT_2MSL] = 2 * TCPTV_MSL; | 1104 | tp->t_timer[TCPT_2MSL] = 2 * TCPTV_MSL; |
1254 | - soisfdisconnected(so); | ||
1255 | } | 1105 | } |
1256 | break; | 1106 | break; |
1257 | 1107 | ||
@@ -1384,7 +1234,6 @@ dodata: | @@ -1384,7 +1234,6 @@ dodata: | ||
1384 | * will got to TCPS_LAST_ACK, and use tcp_output() | 1234 | * will got to TCPS_LAST_ACK, and use tcp_output() |
1385 | * to send the FIN. | 1235 | * to send the FIN. |
1386 | */ | 1236 | */ |
1387 | -/* sofcantrcvmore(so); */ | ||
1388 | sofwdrain(so); | 1237 | sofwdrain(so); |
1389 | 1238 | ||
1390 | tp->t_flags |= TF_ACKNOW; | 1239 | tp->t_flags |= TF_ACKNOW; |
@@ -1421,7 +1270,6 @@ dodata: | @@ -1421,7 +1270,6 @@ dodata: | ||
1421 | tp->t_state = TCPS_TIME_WAIT; | 1270 | tp->t_state = TCPS_TIME_WAIT; |
1422 | tcp_canceltimers(tp); | 1271 | tcp_canceltimers(tp); |
1423 | tp->t_timer[TCPT_2MSL] = 2 * TCPTV_MSL; | 1272 | tp->t_timer[TCPT_2MSL] = 2 * TCPTV_MSL; |
1424 | - soisfdisconnected(so); | ||
1425 | break; | 1273 | break; |
1426 | 1274 | ||
1427 | /* | 1275 | /* |
@@ -1440,13 +1288,6 @@ dodata: | @@ -1440,13 +1288,6 @@ dodata: | ||
1440 | * | 1288 | * |
1441 | * See above. | 1289 | * See above. |
1442 | */ | 1290 | */ |
1443 | -/* if (ti->ti_len && (unsigned)ti->ti_len < tp->t_maxseg) { | ||
1444 | - */ | ||
1445 | -/* if ((ti->ti_len && (unsigned)ti->ti_len < tp->t_maxseg && | ||
1446 | - * (so->so_iptos & IPTOS_LOWDELAY) == 0) || | ||
1447 | - * ((so->so_iptos & IPTOS_LOWDELAY) && | ||
1448 | - * ((struct tcpiphdr_2 *)ti)->first_char == (char)27)) { | ||
1449 | - */ | ||
1450 | if (ti->ti_len && (unsigned)ti->ti_len <= 5 && | 1291 | if (ti->ti_len && (unsigned)ti->ti_len <= 5 && |
1451 | ((struct tcpiphdr_2 *)ti)->first_char == (char)27) { | 1292 | ((struct tcpiphdr_2 *)ti)->first_char == (char)27) { |
1452 | tp->t_flags |= TF_ACKNOW; | 1293 | tp->t_flags |= TF_ACKNOW; |
@@ -1493,10 +1334,6 @@ drop: | @@ -1493,10 +1334,6 @@ drop: | ||
1493 | return; | 1334 | return; |
1494 | } | 1335 | } |
1495 | 1336 | ||
1496 | - /* , ts_present, ts_val, ts_ecr) */ | ||
1497 | -/* int *ts_present; | ||
1498 | - * u_int32_t *ts_val, *ts_ecr; | ||
1499 | - */ | ||
1500 | static void | 1337 | static void |
1501 | tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, struct tcpiphdr *ti) | 1338 | tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, struct tcpiphdr *ti) |
1502 | { | 1339 | { |
@@ -1531,35 +1368,6 @@ tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, struct tcpiphdr *ti) | @@ -1531,35 +1368,6 @@ tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, struct tcpiphdr *ti) | ||
1531 | NTOHS(mss); | 1368 | NTOHS(mss); |
1532 | (void) tcp_mss(tp, mss); /* sets t_maxseg */ | 1369 | (void) tcp_mss(tp, mss); /* sets t_maxseg */ |
1533 | break; | 1370 | break; |
1534 | - | ||
1535 | -/* case TCPOPT_WINDOW: | ||
1536 | - * if (optlen != TCPOLEN_WINDOW) | ||
1537 | - * continue; | ||
1538 | - * if (!(ti->ti_flags & TH_SYN)) | ||
1539 | - * continue; | ||
1540 | - * tp->t_flags |= TF_RCVD_SCALE; | ||
1541 | - * tp->requested_s_scale = min(cp[2], TCP_MAX_WINSHIFT); | ||
1542 | - * break; | ||
1543 | - */ | ||
1544 | -/* case TCPOPT_TIMESTAMP: | ||
1545 | - * if (optlen != TCPOLEN_TIMESTAMP) | ||
1546 | - * continue; | ||
1547 | - * *ts_present = 1; | ||
1548 | - * memcpy((char *) ts_val, (char *)cp + 2, sizeof(*ts_val)); | ||
1549 | - * NTOHL(*ts_val); | ||
1550 | - * memcpy((char *) ts_ecr, (char *)cp + 6, sizeof(*ts_ecr)); | ||
1551 | - * NTOHL(*ts_ecr); | ||
1552 | - * | ||
1553 | - */ /* | ||
1554 | - * * A timestamp received in a SYN makes | ||
1555 | - * * it ok to send timestamp requests and replies. | ||
1556 | - * */ | ||
1557 | -/* if (ti->ti_flags & TH_SYN) { | ||
1558 | - * tp->t_flags |= TF_RCVD_TSTMP; | ||
1559 | - * tp->ts_recent = *ts_val; | ||
1560 | - * tp->ts_recent_age = tcp_now; | ||
1561 | - * } | ||
1562 | - */ break; | ||
1563 | } | 1371 | } |
1564 | } | 1372 | } |
1565 | } | 1373 | } |
slirp/tcp_output.c
@@ -272,39 +272,9 @@ send: | @@ -272,39 +272,9 @@ send: | ||
272 | mss = htons((u_int16_t) tcp_mss(tp, 0)); | 272 | mss = htons((u_int16_t) tcp_mss(tp, 0)); |
273 | memcpy((caddr_t)(opt + 2), (caddr_t)&mss, sizeof(mss)); | 273 | memcpy((caddr_t)(opt + 2), (caddr_t)&mss, sizeof(mss)); |
274 | optlen = 4; | 274 | optlen = 4; |
275 | - | ||
276 | -/* if ((tp->t_flags & TF_REQ_SCALE) && | ||
277 | - * ((flags & TH_ACK) == 0 || | ||
278 | - * (tp->t_flags & TF_RCVD_SCALE))) { | ||
279 | - * *((u_int32_t *) (opt + optlen)) = htonl( | ||
280 | - * TCPOPT_NOP << 24 | | ||
281 | - * TCPOPT_WINDOW << 16 | | ||
282 | - * TCPOLEN_WINDOW << 8 | | ||
283 | - * tp->request_r_scale); | ||
284 | - * optlen += 4; | ||
285 | - * } | ||
286 | - */ | ||
287 | } | 275 | } |
288 | } | 276 | } |
289 | 277 | ||
290 | - /* | ||
291 | - * Send a timestamp and echo-reply if this is a SYN and our side | ||
292 | - * wants to use timestamps (TF_REQ_TSTMP is set) or both our side | ||
293 | - * and our peer have sent timestamps in our SYN's. | ||
294 | - */ | ||
295 | -/* if ((tp->t_flags & (TF_REQ_TSTMP|TF_NOOPT)) == TF_REQ_TSTMP && | ||
296 | - * (flags & TH_RST) == 0 && | ||
297 | - * ((flags & (TH_SYN|TH_ACK)) == TH_SYN || | ||
298 | - * (tp->t_flags & TF_RCVD_TSTMP))) { | ||
299 | - * u_int32_t *lp = (u_int32_t *)(opt + optlen); | ||
300 | - * | ||
301 | - * / * Form timestamp option as shown in appendix A of RFC 1323. * / | ||
302 | - * *lp++ = htonl(TCPOPT_TSTAMP_HDR); | ||
303 | - * *lp++ = htonl(tcp_now); | ||
304 | - * *lp = htonl(tp->ts_recent); | ||
305 | - * optlen += TCPOLEN_TSTAMP_APPA; | ||
306 | - * } | ||
307 | - */ | ||
308 | hdrlen += optlen; | 278 | hdrlen += optlen; |
309 | 279 | ||
310 | /* | 280 | /* |
@@ -334,28 +304,15 @@ send: | @@ -334,28 +304,15 @@ send: | ||
334 | 304 | ||
335 | m = m_get(); | 305 | m = m_get(); |
336 | if (m == NULL) { | 306 | if (m == NULL) { |
337 | -/* error = ENOBUFS; */ | ||
338 | error = 1; | 307 | error = 1; |
339 | goto out; | 308 | goto out; |
340 | } | 309 | } |
341 | m->m_data += IF_MAXLINKHDR; | 310 | m->m_data += IF_MAXLINKHDR; |
342 | m->m_len = hdrlen; | 311 | m->m_len = hdrlen; |
343 | 312 | ||
344 | - /* | ||
345 | - * This will always succeed, since we make sure our mbufs | ||
346 | - * are big enough to hold one MSS packet + header + ... etc. | ||
347 | - */ | ||
348 | -/* if (len <= MHLEN - hdrlen - max_linkhdr) { */ | ||
349 | - | ||
350 | - sbcopy(&so->so_snd, off, (int) len, mtod(m, caddr_t) + hdrlen); | ||
351 | - m->m_len += len; | 313 | + sbcopy(&so->so_snd, off, (int) len, mtod(m, caddr_t) + hdrlen); |
314 | + m->m_len += len; | ||
352 | 315 | ||
353 | -/* } else { | ||
354 | - * m->m_next = m_copy(so->so_snd.sb_mb, off, (int) len); | ||
355 | - * if (m->m_next == 0) | ||
356 | - * len = 0; | ||
357 | - * } | ||
358 | - */ | ||
359 | /* | 316 | /* |
360 | * If we're sending everything we've got, set PUSH. | 317 | * If we're sending everything we've got, set PUSH. |
361 | * (This will keep happy those implementations which only | 318 | * (This will keep happy those implementations which only |
@@ -376,7 +333,6 @@ send: | @@ -376,7 +333,6 @@ send: | ||
376 | 333 | ||
377 | m = m_get(); | 334 | m = m_get(); |
378 | if (m == NULL) { | 335 | if (m == NULL) { |
379 | -/* error = ENOBUFS; */ | ||
380 | error = 1; | 336 | error = 1; |
381 | goto out; | 337 | goto out; |
382 | } | 338 | } |
@@ -433,10 +389,6 @@ send: | @@ -433,10 +389,6 @@ send: | ||
433 | 389 | ||
434 | if (SEQ_GT(tp->snd_up, tp->snd_una)) { | 390 | if (SEQ_GT(tp->snd_up, tp->snd_una)) { |
435 | ti->ti_urp = htons((u_int16_t)(tp->snd_up - ntohl(ti->ti_seq))); | 391 | ti->ti_urp = htons((u_int16_t)(tp->snd_up - ntohl(ti->ti_seq))); |
436 | -#ifdef notdef | ||
437 | - if (SEQ_GT(tp->snd_up, tp->snd_nxt)) { | ||
438 | - ti->ti_urp = htons((u_int16_t)(tp->snd_up - tp->snd_nxt)); | ||
439 | -#endif | ||
440 | ti->ti_flags |= TH_URG; | 392 | ti->ti_flags |= TH_URG; |
441 | } else | 393 | } else |
442 | /* | 394 | /* |
@@ -523,32 +475,10 @@ send: | @@ -523,32 +475,10 @@ send: | ||
523 | ((struct ip *)ti)->ip_ttl = IPDEFTTL; | 475 | ((struct ip *)ti)->ip_ttl = IPDEFTTL; |
524 | ((struct ip *)ti)->ip_tos = so->so_iptos; | 476 | ((struct ip *)ti)->ip_tos = so->so_iptos; |
525 | 477 | ||
526 | -/* #if BSD >= 43 */ | ||
527 | - /* Don't do IP options... */ | ||
528 | -/* error = ip_output(m, tp->t_inpcb->inp_options, &tp->t_inpcb->inp_route, | ||
529 | - * so->so_options & SO_DONTROUTE, 0); | ||
530 | - */ | ||
531 | error = ip_output(so, m); | 478 | error = ip_output(so, m); |
532 | - | ||
533 | -/* #else | ||
534 | - * error = ip_output(m, (struct mbuf *)0, &tp->t_inpcb->inp_route, | ||
535 | - * so->so_options & SO_DONTROUTE); | ||
536 | - * #endif | ||
537 | - */ | ||
538 | } | 479 | } |
539 | if (error) { | 480 | if (error) { |
540 | out: | 481 | out: |
541 | -/* if (error == ENOBUFS) { | ||
542 | - * tcp_quench(tp->t_inpcb, 0); | ||
543 | - * return (0); | ||
544 | - * } | ||
545 | - */ | ||
546 | -/* if ((error == EHOSTUNREACH || error == ENETDOWN) | ||
547 | - * && TCPS_HAVERCVDSYN(tp->t_state)) { | ||
548 | - * tp->t_softerror = error; | ||
549 | - * return (0); | ||
550 | - * } | ||
551 | - */ | ||
552 | return (error); | 482 | return (error); |
553 | } | 483 | } |
554 | STAT(tcpstat.tcps_sndtotal++); | 484 | STAT(tcpstat.tcps_sndtotal++); |
@@ -574,9 +504,6 @@ tcp_setpersist(struct tcpcb *tp) | @@ -574,9 +504,6 @@ tcp_setpersist(struct tcpcb *tp) | ||
574 | { | 504 | { |
575 | int t = ((tp->t_srtt >> 2) + tp->t_rttvar) >> 1; | 505 | int t = ((tp->t_srtt >> 2) + tp->t_rttvar) >> 1; |
576 | 506 | ||
577 | -/* if (tp->t_timer[TCPT_REXMT]) | ||
578 | - * panic("tcp_output REXMT"); | ||
579 | - */ | ||
580 | /* | 507 | /* |
581 | * Start/restart persistence timer. | 508 | * Start/restart persistence timer. |
582 | */ | 509 | */ |
slirp/tcp_subr.c
@@ -60,7 +60,6 @@ tcp_init(void) | @@ -60,7 +60,6 @@ tcp_init(void) | ||
60 | * in a skeletal tcp/ip header, minimizing the amount of work | 60 | * in a skeletal tcp/ip header, minimizing the amount of work |
61 | * necessary when the connection is used. | 61 | * necessary when the connection is used. |
62 | */ | 62 | */ |
63 | -/* struct tcpiphdr * */ | ||
64 | void | 63 | void |
65 | tcp_template(struct tcpcb *tp) | 64 | tcp_template(struct tcpcb *tp) |
66 | { | 65 | { |
@@ -119,11 +118,7 @@ tcp_respond(struct tcpcb *tp, struct tcpiphdr *ti, struct mbuf *m, | @@ -119,11 +118,7 @@ tcp_respond(struct tcpcb *tp, struct tcpiphdr *ti, struct mbuf *m, | ||
119 | if (m == NULL) { | 118 | if (m == NULL) { |
120 | if ((m = m_get()) == NULL) | 119 | if ((m = m_get()) == NULL) |
121 | return; | 120 | return; |
122 | -#ifdef TCP_COMPAT_42 | ||
123 | - tlen = 1; | ||
124 | -#else | ||
125 | tlen = 0; | 121 | tlen = 0; |
126 | -#endif | ||
127 | m->m_data += IF_MAXLINKHDR; | 122 | m->m_data += IF_MAXLINKHDR; |
128 | *mtod(m, struct tcpiphdr *) = *ti; | 123 | *mtod(m, struct tcpiphdr *) = *ti; |
129 | ti = mtod(m, struct tcpiphdr *); | 124 | ti = mtod(m, struct tcpiphdr *); |
@@ -220,12 +215,6 @@ tcp_newtcpcb(struct socket *so) | @@ -220,12 +215,6 @@ tcp_newtcpcb(struct socket *so) | ||
220 | */ | 215 | */ |
221 | struct tcpcb *tcp_drop(struct tcpcb *tp, int err) | 216 | struct tcpcb *tcp_drop(struct tcpcb *tp, int err) |
222 | { | 217 | { |
223 | -/* tcp_drop(tp, errno) | ||
224 | - register struct tcpcb *tp; | ||
225 | - int errno; | ||
226 | -{ | ||
227 | -*/ | ||
228 | - | ||
229 | DEBUG_CALL("tcp_drop"); | 218 | DEBUG_CALL("tcp_drop"); |
230 | DEBUG_ARG("tp = %lx", (long)tp); | 219 | DEBUG_ARG("tp = %lx", (long)tp); |
231 | DEBUG_ARG("errno = %d", errno); | 220 | DEBUG_ARG("errno = %d", errno); |
@@ -236,10 +225,6 @@ struct tcpcb *tcp_drop(struct tcpcb *tp, int err) | @@ -236,10 +225,6 @@ struct tcpcb *tcp_drop(struct tcpcb *tp, int err) | ||
236 | STAT(tcpstat.tcps_drops++); | 225 | STAT(tcpstat.tcps_drops++); |
237 | } else | 226 | } else |
238 | STAT(tcpstat.tcps_conndrops++); | 227 | STAT(tcpstat.tcps_conndrops++); |
239 | -/* if (errno == ETIMEDOUT && tp->t_softerror) | ||
240 | - * errno = tp->t_softerror; | ||
241 | - */ | ||
242 | -/* so->so_error = errno; */ | ||
243 | return (tcp_close(tp)); | 228 | return (tcp_close(tp)); |
244 | } | 229 | } |
245 | 230 | ||
@@ -267,14 +252,8 @@ tcp_close(struct tcpcb *tp) | @@ -267,14 +252,8 @@ tcp_close(struct tcpcb *tp) | ||
267 | remque(tcpiphdr2qlink(tcpiphdr_prev(t))); | 252 | remque(tcpiphdr2qlink(tcpiphdr_prev(t))); |
268 | m_freem(m); | 253 | m_freem(m); |
269 | } | 254 | } |
270 | - /* It's static */ | ||
271 | -/* if (tp->t_template) | ||
272 | - * (void) m_free(dtom(tp->t_template)); | ||
273 | - */ | ||
274 | -/* free(tp, M_PCB); */ | ||
275 | free(tp); | 255 | free(tp); |
276 | so->so_tcpcb = NULL; | 256 | so->so_tcpcb = NULL; |
277 | - soisfdisconnected(so); | ||
278 | /* clobber input socket cache if we're closing the cached connection */ | 257 | /* clobber input socket cache if we're closing the cached connection */ |
279 | if (so == tcp_last_so) | 258 | if (so == tcp_last_so) |
280 | tcp_last_so = &tcb; | 259 | tcp_last_so = &tcb; |
@@ -286,30 +265,6 @@ tcp_close(struct tcpcb *tp) | @@ -286,30 +265,6 @@ tcp_close(struct tcpcb *tp) | ||
286 | return ((struct tcpcb *)0); | 265 | return ((struct tcpcb *)0); |
287 | } | 266 | } |
288 | 267 | ||
289 | -#ifdef notdef | ||
290 | -void | ||
291 | -tcp_drain() | ||
292 | -{ | ||
293 | - /* XXX */ | ||
294 | -} | ||
295 | - | ||
296 | -/* | ||
297 | - * When a source quench is received, close congestion window | ||
298 | - * to one segment. We will gradually open it again as we proceed. | ||
299 | - */ | ||
300 | -void | ||
301 | -tcp_quench(i, errno) | ||
302 | - | ||
303 | - int errno; | ||
304 | -{ | ||
305 | - struct tcpcb *tp = intotcpcb(inp); | ||
306 | - | ||
307 | - if (tp) | ||
308 | - tp->snd_cwnd = tp->t_maxseg; | ||
309 | -} | ||
310 | - | ||
311 | -#endif /* notdef */ | ||
312 | - | ||
313 | /* | 268 | /* |
314 | * TCP protocol interface to socket abstraction. | 269 | * TCP protocol interface to socket abstraction. |
315 | */ | 270 | */ |
@@ -349,9 +304,6 @@ tcp_sockclosed(struct tcpcb *tp) | @@ -349,9 +304,6 @@ tcp_sockclosed(struct tcpcb *tp) | ||
349 | tp->t_state = TCPS_LAST_ACK; | 304 | tp->t_state = TCPS_LAST_ACK; |
350 | break; | 305 | break; |
351 | } | 306 | } |
352 | -/* soisfdisconnecting(tp->t_socket); */ | ||
353 | - if (tp && tp->t_state >= TCPS_FIN_WAIT_2) | ||
354 | - soisfdisconnected(tp->t_socket); | ||
355 | if (tp) | 307 | if (tp) |
356 | tcp_output(tp); | 308 | tcp_output(tp); |
357 | } | 309 | } |
@@ -490,13 +442,6 @@ tcp_connect(struct socket *inso) | @@ -490,13 +442,6 @@ tcp_connect(struct socket *inso) | ||
490 | 442 | ||
491 | tcp_template(tp); | 443 | tcp_template(tp); |
492 | 444 | ||
493 | - /* Compute window scaling to request. */ | ||
494 | -/* while (tp->request_r_scale < TCP_MAX_WINSHIFT && | ||
495 | - * (TCP_MAXWIN << tp->request_r_scale) < so->so_rcv.sb_hiwat) | ||
496 | - * tp->request_r_scale++; | ||
497 | - */ | ||
498 | - | ||
499 | -/* soisconnecting(so); */ /* NOFDREF used instead */ | ||
500 | STAT(tcpstat.tcps_connattempt++); | 445 | STAT(tcpstat.tcps_connattempt++); |
501 | 446 | ||
502 | tp->t_state = TCPS_SYN_SENT; | 447 | tp->t_state = TCPS_SYN_SENT; |
@@ -540,10 +485,7 @@ static const struct tos_t tcptos[] = { | @@ -540,10 +485,7 @@ static const struct tos_t tcptos[] = { | ||
540 | {0, 0, 0, 0} | 485 | {0, 0, 0, 0} |
541 | }; | 486 | }; |
542 | 487 | ||
543 | -#ifdef CONFIG_QEMU | ||
544 | -static | ||
545 | -#endif | ||
546 | -struct emu_t *tcpemu = NULL; | 488 | +static struct emu_t *tcpemu = NULL; |
547 | 489 | ||
548 | /* | 490 | /* |
549 | * Return TOS according to the above table | 491 | * Return TOS according to the above table |
@@ -575,10 +517,6 @@ tcp_tos(struct socket *so) | @@ -575,10 +517,6 @@ tcp_tos(struct socket *so) | ||
575 | return 0; | 517 | return 0; |
576 | } | 518 | } |
577 | 519 | ||
578 | -#if 0 | ||
579 | -int do_echo = -1; | ||
580 | -#endif | ||
581 | - | ||
582 | /* | 520 | /* |
583 | * Emulate programs that try and connect to us | 521 | * Emulate programs that try and connect to us |
584 | * This includes ftp (the data connection is | 522 | * This includes ftp (the data connection is |
@@ -661,302 +599,6 @@ tcp_emu(struct socket *so, struct mbuf *m) | @@ -661,302 +599,6 @@ tcp_emu(struct socket *so, struct mbuf *m) | ||
661 | return 0; | 599 | return 0; |
662 | } | 600 | } |
663 | 601 | ||
664 | -#if 0 | ||
665 | - case EMU_RLOGIN: | ||
666 | - /* | ||
667 | - * Rlogin emulation | ||
668 | - * First we accumulate all the initial option negotiation, | ||
669 | - * then fork_exec() rlogin according to the options | ||
670 | - */ | ||
671 | - { | ||
672 | - int i, i2, n; | ||
673 | - char *ptr; | ||
674 | - char args[100]; | ||
675 | - char term[100]; | ||
676 | - struct sbuf *so_snd = &so->so_snd; | ||
677 | - struct sbuf *so_rcv = &so->so_rcv; | ||
678 | - | ||
679 | - /* First check if they have a priveladged port, or too much data has arrived */ | ||
680 | - if (ntohs(so->so_lport) > 1023 || ntohs(so->so_lport) < 512 || | ||
681 | - (m->m_len + so_rcv->sb_wptr) > (so_rcv->sb_data + so_rcv->sb_datalen)) { | ||
682 | - memcpy(so_snd->sb_wptr, "Permission denied\n", 18); | ||
683 | - so_snd->sb_wptr += 18; | ||
684 | - so_snd->sb_cc += 18; | ||
685 | - tcp_sockclosed(sototcpcb(so)); | ||
686 | - m_free(m); | ||
687 | - return 0; | ||
688 | - } | ||
689 | - | ||
690 | - /* Append the current data */ | ||
691 | - memcpy(so_rcv->sb_wptr, m->m_data, m->m_len); | ||
692 | - so_rcv->sb_wptr += m->m_len; | ||
693 | - so_rcv->sb_rptr += m->m_len; | ||
694 | - m_free(m); | ||
695 | - | ||
696 | - /* | ||
697 | - * Check if we have all the initial options, | ||
698 | - * and build argument list to rlogin while we're here | ||
699 | - */ | ||
700 | - n = 0; | ||
701 | - ptr = so_rcv->sb_data; | ||
702 | - args[0] = 0; | ||
703 | - term[0] = 0; | ||
704 | - while (ptr < so_rcv->sb_wptr) { | ||
705 | - if (*ptr++ == 0) { | ||
706 | - n++; | ||
707 | - if (n == 2) { | ||
708 | - sprintf(args, "rlogin -l %s %s", | ||
709 | - ptr, inet_ntoa(so->so_faddr)); | ||
710 | - } else if (n == 3) { | ||
711 | - i2 = so_rcv->sb_wptr - ptr; | ||
712 | - for (i = 0; i < i2; i++) { | ||
713 | - if (ptr[i] == '/') { | ||
714 | - ptr[i] = 0; | ||
715 | -#ifdef HAVE_SETENV | ||
716 | - sprintf(term, "%s", ptr); | ||
717 | -#else | ||
718 | - sprintf(term, "TERM=%s", ptr); | ||
719 | -#endif | ||
720 | - ptr[i] = '/'; | ||
721 | - break; | ||
722 | - } | ||
723 | - } | ||
724 | - } | ||
725 | - } | ||
726 | - } | ||
727 | - | ||
728 | - if (n != 4) | ||
729 | - return 0; | ||
730 | - | ||
731 | - /* We have it, set our term variable and fork_exec() */ | ||
732 | -#ifdef HAVE_SETENV | ||
733 | - setenv("TERM", term, 1); | ||
734 | -#else | ||
735 | - putenv(term); | ||
736 | -#endif | ||
737 | - fork_exec(so, args, 2); | ||
738 | - term[0] = 0; | ||
739 | - so->so_emu = 0; | ||
740 | - | ||
741 | - /* And finally, send the client a 0 character */ | ||
742 | - so_snd->sb_wptr[0] = 0; | ||
743 | - so_snd->sb_wptr++; | ||
744 | - so_snd->sb_cc++; | ||
745 | - | ||
746 | - return 0; | ||
747 | - } | ||
748 | - | ||
749 | - case EMU_RSH: | ||
750 | - /* | ||
751 | - * rsh emulation | ||
752 | - * First we accumulate all the initial option negotiation, | ||
753 | - * then rsh_exec() rsh according to the options | ||
754 | - */ | ||
755 | - { | ||
756 | - int n; | ||
757 | - char *ptr; | ||
758 | - char *user; | ||
759 | - char *args; | ||
760 | - struct sbuf *so_snd = &so->so_snd; | ||
761 | - struct sbuf *so_rcv = &so->so_rcv; | ||
762 | - | ||
763 | - /* First check if they have a priveladged port, or too much data has arrived */ | ||
764 | - if (ntohs(so->so_lport) > 1023 || ntohs(so->so_lport) < 512 || | ||
765 | - (m->m_len + so_rcv->sb_wptr) > (so_rcv->sb_data + so_rcv->sb_datalen)) { | ||
766 | - memcpy(so_snd->sb_wptr, "Permission denied\n", 18); | ||
767 | - so_snd->sb_wptr += 18; | ||
768 | - so_snd->sb_cc += 18; | ||
769 | - tcp_sockclosed(sototcpcb(so)); | ||
770 | - m_free(m); | ||
771 | - return 0; | ||
772 | - } | ||
773 | - | ||
774 | - /* Append the current data */ | ||
775 | - memcpy(so_rcv->sb_wptr, m->m_data, m->m_len); | ||
776 | - so_rcv->sb_wptr += m->m_len; | ||
777 | - so_rcv->sb_rptr += m->m_len; | ||
778 | - m_free(m); | ||
779 | - | ||
780 | - /* | ||
781 | - * Check if we have all the initial options, | ||
782 | - * and build argument list to rlogin while we're here | ||
783 | - */ | ||
784 | - n = 0; | ||
785 | - ptr = so_rcv->sb_data; | ||
786 | - user=""; | ||
787 | - args=""; | ||
788 | - if (so->extra==NULL) { | ||
789 | - struct socket *ns; | ||
790 | - struct tcpcb* tp; | ||
791 | - int port=atoi(ptr); | ||
792 | - if (port <= 0) return 0; | ||
793 | - if (port > 1023 || port < 512) { | ||
794 | - memcpy(so_snd->sb_wptr, "Permission denied\n", 18); | ||
795 | - so_snd->sb_wptr += 18; | ||
796 | - so_snd->sb_cc += 18; | ||
797 | - tcp_sockclosed(sototcpcb(so)); | ||
798 | - return 0; | ||
799 | - } | ||
800 | - if ((ns=socreate()) == NULL) | ||
801 | - return 0; | ||
802 | - if (tcp_attach(ns)<0) { | ||
803 | - free(ns); | ||
804 | - return 0; | ||
805 | - } | ||
806 | - | ||
807 | - ns->so_laddr=so->so_laddr; | ||
808 | - ns->so_lport=htons(port); | ||
809 | - | ||
810 | - (void) tcp_mss(sototcpcb(ns), 0); | ||
811 | - | ||
812 | - ns->so_faddr=so->so_faddr; | ||
813 | - ns->so_fport=htons(IPPORT_RESERVED-1); /* Use a fake port. */ | ||
814 | - | ||
815 | - if (ns->so_faddr.s_addr == 0 || | ||
816 | - ns->so_faddr.s_addr == loopback_addr.s_addr) | ||
817 | - ns->so_faddr = alias_addr; | ||
818 | - | ||
819 | - ns->so_iptos = tcp_tos(ns); | ||
820 | - tp = sototcpcb(ns); | ||
821 | - | ||
822 | - tcp_template(tp); | ||
823 | - | ||
824 | - /* Compute window scaling to request. */ | ||
825 | - /* while (tp->request_r_scale < TCP_MAX_WINSHIFT && | ||
826 | - * (TCP_MAXWIN << tp->request_r_scale) < so->so_rcv.sb_hiwat) | ||
827 | - * tp->request_r_scale++; | ||
828 | - */ | ||
829 | - | ||
830 | - /*soisfconnecting(ns);*/ | ||
831 | - | ||
832 | - STAT(tcpstat.tcps_connattempt++); | ||
833 | - | ||
834 | - tp->t_state = TCPS_SYN_SENT; | ||
835 | - tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_INIT; | ||
836 | - tp->iss = tcp_iss; | ||
837 | - tcp_iss += TCP_ISSINCR/2; | ||
838 | - tcp_sendseqinit(tp); | ||
839 | - tcp_output(tp); | ||
840 | - so->extra=ns; | ||
841 | - } | ||
842 | - while (ptr < so_rcv->sb_wptr) { | ||
843 | - if (*ptr++ == 0) { | ||
844 | - n++; | ||
845 | - if (n == 2) { | ||
846 | - user=ptr; | ||
847 | - } else if (n == 3) { | ||
848 | - args=ptr; | ||
849 | - } | ||
850 | - } | ||
851 | - } | ||
852 | - | ||
853 | - if (n != 4) | ||
854 | - return 0; | ||
855 | - | ||
856 | - rsh_exec(so,so->extra, user, inet_ntoa(so->so_faddr), args); | ||
857 | - so->so_emu = 0; | ||
858 | - so->extra=NULL; | ||
859 | - | ||
860 | - /* And finally, send the client a 0 character */ | ||
861 | - so_snd->sb_wptr[0] = 0; | ||
862 | - so_snd->sb_wptr++; | ||
863 | - so_snd->sb_cc++; | ||
864 | - | ||
865 | - return 0; | ||
866 | - } | ||
867 | - | ||
868 | - case EMU_CTL: | ||
869 | - { | ||
870 | - int num; | ||
871 | - struct sbuf *so_snd = &so->so_snd; | ||
872 | - struct sbuf *so_rcv = &so->so_rcv; | ||
873 | - | ||
874 | - /* | ||
875 | - * If there is binary data here, we save it in so->so_m | ||
876 | - */ | ||
877 | - if (!so->so_m) { | ||
878 | - int rxlen; | ||
879 | - char *rxdata; | ||
880 | - rxdata=mtod(m, char *); | ||
881 | - for (rxlen=m->m_len; rxlen; rxlen--) { | ||
882 | - if (*rxdata++ & 0x80) { | ||
883 | - so->so_m = m; | ||
884 | - return 0; | ||
885 | - } | ||
886 | - } | ||
887 | - } /* if(so->so_m==NULL) */ | ||
888 | - | ||
889 | - /* | ||
890 | - * Append the line | ||
891 | - */ | ||
892 | - sbappendsb(so_rcv, m); | ||
893 | - | ||
894 | - /* To avoid going over the edge of the buffer, we reset it */ | ||
895 | - if (so_snd->sb_cc == 0) | ||
896 | - so_snd->sb_wptr = so_snd->sb_rptr = so_snd->sb_data; | ||
897 | - | ||
898 | - /* | ||
899 | - * A bit of a hack: | ||
900 | - * If the first packet we get here is 1 byte long, then it | ||
901 | - * was done in telnet character mode, therefore we must echo | ||
902 | - * the characters as they come. Otherwise, we echo nothing, | ||
903 | - * because in linemode, the line is already echoed | ||
904 | - * XXX two or more control connections won't work | ||
905 | - */ | ||
906 | - if (do_echo == -1) { | ||
907 | - if (m->m_len == 1) do_echo = 1; | ||
908 | - else do_echo = 0; | ||
909 | - } | ||
910 | - if (do_echo) { | ||
911 | - sbappendsb(so_snd, m); | ||
912 | - m_free(m); | ||
913 | - tcp_output(sototcpcb(so)); /* XXX */ | ||
914 | - } else | ||
915 | - m_free(m); | ||
916 | - | ||
917 | - num = 0; | ||
918 | - while (num < so->so_rcv.sb_cc) { | ||
919 | - if (*(so->so_rcv.sb_rptr + num) == '\n' || | ||
920 | - *(so->so_rcv.sb_rptr + num) == '\r') { | ||
921 | - int n; | ||
922 | - | ||
923 | - *(so_rcv->sb_rptr + num) = 0; | ||
924 | - if (ctl_password && !ctl_password_ok) { | ||
925 | - /* Need a password */ | ||
926 | - if (sscanf(so_rcv->sb_rptr, "pass %256s", buff) == 1) { | ||
927 | - if (strcmp(buff, ctl_password) == 0) { | ||
928 | - ctl_password_ok = 1; | ||
929 | - n = sprintf(so_snd->sb_wptr, | ||
930 | - "Password OK.\r\n"); | ||
931 | - goto do_prompt; | ||
932 | - } | ||
933 | - } | ||
934 | - n = sprintf(so_snd->sb_wptr, | ||
935 | - "Error: Password required, log on with \"pass PASSWORD\"\r\n"); | ||
936 | - goto do_prompt; | ||
937 | - } | ||
938 | - cfg_quitting = 0; | ||
939 | - n = do_config(so_rcv->sb_rptr, so, PRN_SPRINTF); | ||
940 | - if (!cfg_quitting) { | ||
941 | - /* Register the printed data */ | ||
942 | -do_prompt: | ||
943 | - so_snd->sb_cc += n; | ||
944 | - so_snd->sb_wptr += n; | ||
945 | - /* Add prompt */ | ||
946 | - n = sprintf(so_snd->sb_wptr, "Slirp> "); | ||
947 | - so_snd->sb_cc += n; | ||
948 | - so_snd->sb_wptr += n; | ||
949 | - } | ||
950 | - /* Drop so_rcv data */ | ||
951 | - so_rcv->sb_cc = 0; | ||
952 | - so_rcv->sb_wptr = so_rcv->sb_rptr = so_rcv->sb_data; | ||
953 | - tcp_output(sototcpcb(so)); /* Send the reply */ | ||
954 | - } | ||
955 | - num++; | ||
956 | - } | ||
957 | - return 0; | ||
958 | - } | ||
959 | -#endif | ||
960 | case EMU_FTP: /* ftp */ | 602 | case EMU_FTP: /* ftp */ |
961 | *(m->m_data+m->m_len) = 0; /* NUL terminate for strstr */ | 603 | *(m->m_data+m->m_len) = 0; /* NUL terminate for strstr */ |
962 | if ((bptr = (char *)strstr(m->m_data, "ORT")) != NULL) { | 604 | if ((bptr = (char *)strstr(m->m_data, "ORT")) != NULL) { |
@@ -1100,7 +742,7 @@ do_prompt: | @@ -1100,7 +742,7 @@ do_prompt: | ||
1100 | * A typical packet for player version 1.0 (release version): | 742 | * A typical packet for player version 1.0 (release version): |
1101 | * | 743 | * |
1102 | * 0000:50 4E 41 00 05 | 744 | * 0000:50 4E 41 00 05 |
1103 | - * 0000:00 01 00 02 1B D7 00 00 67 E6 6C DC 63 00 12 50 .....ร..gรฆlรc..P | 745 | + * 0000:00 01 00 02 1B D7 00 00 67 E6 6C DC 63 00 12 50 ........g.l.c..P |
1104 | * 0010:4E 43 4C 49 45 4E 54 20 31 30 31 20 41 4C 50 48 NCLIENT 101 ALPH | 746 | * 0010:4E 43 4C 49 45 4E 54 20 31 30 31 20 41 4C 50 48 NCLIENT 101 ALPH |
1105 | * 0020:41 6C 00 00 52 00 17 72 61 66 69 6C 65 73 2F 76 Al..R..rafiles/v | 747 | * 0020:41 6C 00 00 52 00 17 72 61 66 69 6C 65 73 2F 76 Al..R..rafiles/v |
1106 | * 0030:6F 61 2F 65 6E 67 6C 69 73 68 5F 2E 72 61 79 42 oa/english_.rayB | 748 | * 0030:6F 61 2F 65 6E 67 6C 69 73 68 5F 2E 72 61 79 42 oa/english_.rayB |
@@ -1112,8 +754,8 @@ do_prompt: | @@ -1112,8 +754,8 @@ do_prompt: | ||
1112 | * | 754 | * |
1113 | * A typical packet for player version 2.0 (beta): | 755 | * A typical packet for player version 2.0 (beta): |
1114 | * | 756 | * |
1115 | - * 0000:50 4E 41 00 06 00 02 00 00 00 01 00 02 1B C1 00 PNA...........ร. | ||
1116 | - * 0010:00 67 75 78 F5 63 00 0A 57 69 6E 32 2E 30 2E 30 .guxรตc..Win2.0.0 | 757 | + * 0000:50 4E 41 00 06 00 02 00 00 00 01 00 02 1B C1 00 PNA............. |
758 | + * 0010:00 67 75 78 F5 63 00 0A 57 69 6E 32 2E 30 2E 30 .gux.c..Win2.0.0 | ||
1117 | * 0020:2E 35 6C 00 00 52 00 1C 72 61 66 69 6C 65 73 2F .5l..R..rafiles/ | 759 | * 0020:2E 35 6C 00 00 52 00 1C 72 61 66 69 6C 65 73 2F .5l..R..rafiles/ |
1118 | * 0030:77 65 62 73 69 74 65 2F 32 30 72 65 6C 65 61 73 website/20releas | 760 | * 0030:77 65 62 73 69 74 65 2F 32 30 72 65 6C 65 61 73 website/20releas |
1119 | * 0040:65 2E 72 61 79 53 00 00 06 36 42 e.rayS...6B | 761 | * 0040:65 2E 72 61 79 53 00 00 06 36 42 e.rayS...6B |
slirp/tcp_timer.c
@@ -102,10 +102,6 @@ tpgone: | @@ -102,10 +102,6 @@ tpgone: | ||
102 | ; | 102 | ; |
103 | } | 103 | } |
104 | tcp_iss += TCP_ISSINCR/PR_SLOWHZ; /* increment iss */ | 104 | tcp_iss += TCP_ISSINCR/PR_SLOWHZ; /* increment iss */ |
105 | -#ifdef TCP_COMPAT_42 | ||
106 | - if ((int)tcp_iss < 0) | ||
107 | - tcp_iss = 0; /* XXX */ | ||
108 | -#endif | ||
109 | tcp_now++; /* for timestamps */ | 105 | tcp_now++; /* for timestamps */ |
110 | } | 106 | } |
111 | 107 | ||
@@ -210,7 +206,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -210,7 +206,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
210 | * retransmit times until then. | 206 | * retransmit times until then. |
211 | */ | 207 | */ |
212 | if (tp->t_rxtshift > TCP_MAXRXTSHIFT / 4) { | 208 | if (tp->t_rxtshift > TCP_MAXRXTSHIFT / 4) { |
213 | -/* in_losing(tp->t_inpcb); */ | ||
214 | tp->t_rttvar += (tp->t_srtt >> TCP_RTT_SHIFT); | 209 | tp->t_rttvar += (tp->t_srtt >> TCP_RTT_SHIFT); |
215 | tp->t_srtt = 0; | 210 | tp->t_srtt = 0; |
216 | } | 211 | } |
@@ -275,7 +270,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -275,7 +270,6 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
275 | if (tp->t_state < TCPS_ESTABLISHED) | 270 | if (tp->t_state < TCPS_ESTABLISHED) |
276 | goto dropit; | 271 | goto dropit; |
277 | 272 | ||
278 | -/* if (tp->t_socket->so_options & SO_KEEPALIVE && */ | ||
279 | if ((SO_OPTIONS) && tp->t_state <= TCPS_CLOSE_WAIT) { | 273 | if ((SO_OPTIONS) && tp->t_state <= TCPS_CLOSE_WAIT) { |
280 | if (tp->t_idle >= TCPTV_KEEP_IDLE + TCP_MAXIDLE) | 274 | if (tp->t_idle >= TCPTV_KEEP_IDLE + TCP_MAXIDLE) |
281 | goto dropit; | 275 | goto dropit; |
@@ -292,17 +286,8 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -292,17 +286,8 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
292 | * correspondent TCP to respond. | 286 | * correspondent TCP to respond. |
293 | */ | 287 | */ |
294 | STAT(tcpstat.tcps_keepprobe++); | 288 | STAT(tcpstat.tcps_keepprobe++); |
295 | -#ifdef TCP_COMPAT_42 | ||
296 | - /* | ||
297 | - * The keepalive packet must have nonzero length | ||
298 | - * to get a 4.2 host to respond. | ||
299 | - */ | ||
300 | - tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, | ||
301 | - tp->rcv_nxt - 1, tp->snd_una - 1, 0); | ||
302 | -#else | ||
303 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, | 289 | tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL, |
304 | tp->rcv_nxt, tp->snd_una - 1, 0); | 290 | tp->rcv_nxt, tp->snd_una - 1, 0); |
305 | -#endif | ||
306 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; | 291 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL; |
307 | } else | 292 | } else |
308 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE; | 293 | tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE; |
@@ -310,7 +295,7 @@ tcp_timers(register struct tcpcb *tp, int timer) | @@ -310,7 +295,7 @@ tcp_timers(register struct tcpcb *tp, int timer) | ||
310 | 295 | ||
311 | dropit: | 296 | dropit: |
312 | STAT(tcpstat.tcps_keepdrops++); | 297 | STAT(tcpstat.tcps_keepdrops++); |
313 | - tp = tcp_drop(tp, 0); /* ETIMEDOUT); */ | 298 | + tp = tcp_drop(tp, 0); |
314 | break; | 299 | break; |
315 | } | 300 | } |
316 | 301 |
slirp/tcp_timer.h
@@ -98,7 +98,6 @@ | @@ -98,7 +98,6 @@ | ||
98 | #define TCPTV_KEEPCNT 8 /* max probes before drop */ | 98 | #define TCPTV_KEEPCNT 8 /* max probes before drop */ |
99 | 99 | ||
100 | #define TCPTV_MIN ( 1*PR_SLOWHZ) /* minimum allowable value */ | 100 | #define TCPTV_MIN ( 1*PR_SLOWHZ) /* minimum allowable value */ |
101 | -/* #define TCPTV_REXMTMAX ( 64*PR_SLOWHZ) */ /* max allowable REXMT value */ | ||
102 | #define TCPTV_REXMTMAX ( 12*PR_SLOWHZ) /* max allowable REXMT value */ | 101 | #define TCPTV_REXMTMAX ( 12*PR_SLOWHZ) /* max allowable REXMT value */ |
103 | 102 | ||
104 | #define TCP_LINGERTIME 120 /* linger at most 2 minutes */ | 103 | #define TCP_LINGERTIME 120 /* linger at most 2 minutes */ |
@@ -106,11 +105,6 @@ | @@ -106,11 +105,6 @@ | ||
106 | #define TCP_MAXRXTSHIFT 12 /* maximum retransmits */ | 105 | #define TCP_MAXRXTSHIFT 12 /* maximum retransmits */ |
107 | 106 | ||
108 | 107 | ||
109 | -#ifdef TCPTIMERS | ||
110 | -char *tcptimers[] = | ||
111 | - { "REXMT", "PERSIST", "KEEP", "2MSL" }; | ||
112 | -#endif | ||
113 | - | ||
114 | /* | 108 | /* |
115 | * Force a time value to be in a certain range. | 109 | * Force a time value to be in a certain range. |
116 | */ | 110 | */ |
slirp/tcp_var.h
@@ -61,9 +61,7 @@ struct tcpcb { | @@ -61,9 +61,7 @@ struct tcpcb { | ||
61 | #define TF_RCVD_TSTMP 0x0100 /* a timestamp was received in SYN */ | 61 | #define TF_RCVD_TSTMP 0x0100 /* a timestamp was received in SYN */ |
62 | #define TF_SACK_PERMIT 0x0200 /* other side said I could SACK */ | 62 | #define TF_SACK_PERMIT 0x0200 /* other side said I could SACK */ |
63 | 63 | ||
64 | - /* Make it static for now */ | ||
65 | -/* struct tcpiphdr *t_template; / * skeletal packet for transmit */ | ||
66 | - struct tcpiphdr t_template; | 64 | + struct tcpiphdr t_template; /* static skeletal packet for xmit */ |
67 | 65 | ||
68 | struct socket *t_socket; /* back pointer to socket */ | 66 | struct socket *t_socket; /* back pointer to socket */ |
69 | /* | 67 | /* |
@@ -199,7 +197,6 @@ struct tcpstat { | @@ -199,7 +197,6 @@ struct tcpstat { | ||
199 | u_long tcps_rcvbyte; /* bytes received in sequence */ | 197 | u_long tcps_rcvbyte; /* bytes received in sequence */ |
200 | u_long tcps_rcvbadsum; /* packets received with ccksum errs */ | 198 | u_long tcps_rcvbadsum; /* packets received with ccksum errs */ |
201 | u_long tcps_rcvbadoff; /* packets received with bad offset */ | 199 | u_long tcps_rcvbadoff; /* packets received with bad offset */ |
202 | -/* u_long tcps_rcvshort; */ /* packets received too short */ | ||
203 | u_long tcps_rcvduppack; /* duplicate-only packets received */ | 200 | u_long tcps_rcvduppack; /* duplicate-only packets received */ |
204 | u_long tcps_rcvdupbyte; /* duplicate-only bytes received */ | 201 | u_long tcps_rcvdupbyte; /* duplicate-only bytes received */ |
205 | u_long tcps_rcvpartduppack; /* packets with some duplicate data */ | 202 | u_long tcps_rcvpartduppack; /* packets with some duplicate data */ |
@@ -215,7 +212,6 @@ struct tcpstat { | @@ -215,7 +212,6 @@ struct tcpstat { | ||
215 | u_long tcps_rcvackpack; /* rcvd ack packets */ | 212 | u_long tcps_rcvackpack; /* rcvd ack packets */ |
216 | u_long tcps_rcvackbyte; /* bytes acked by rcvd acks */ | 213 | u_long tcps_rcvackbyte; /* bytes acked by rcvd acks */ |
217 | u_long tcps_rcvwinupd; /* rcvd window update packets */ | 214 | u_long tcps_rcvwinupd; /* rcvd window update packets */ |
218 | -/* u_long tcps_pawsdrop; */ /* segments dropped due to PAWS */ | ||
219 | u_long tcps_predack; /* times hdr predict ok for acks */ | 215 | u_long tcps_predack; /* times hdr predict ok for acks */ |
220 | u_long tcps_preddat; /* times hdr predict ok for data pkts */ | 216 | u_long tcps_preddat; /* times hdr predict ok for data pkts */ |
221 | u_long tcps_socachemiss; /* tcp_last_so misses */ | 217 | u_long tcps_socachemiss; /* tcp_last_so misses */ |
slirp/tftp.c
slirp/udp.c
@@ -50,16 +50,6 @@ struct socket udb; | @@ -50,16 +50,6 @@ struct socket udb; | ||
50 | static u_int8_t udp_tos(struct socket *so); | 50 | static u_int8_t udp_tos(struct socket *so); |
51 | static void udp_emu(struct socket *so, struct mbuf *m); | 51 | static void udp_emu(struct socket *so, struct mbuf *m); |
52 | 52 | ||
53 | -/* | ||
54 | - * UDP protocol implementation. | ||
55 | - * Per RFC 768, August, 1980. | ||
56 | - */ | ||
57 | -#ifndef COMPAT_42 | ||
58 | -#define UDPCKSUM 1 | ||
59 | -#else | ||
60 | -#define UDPCKSUM 0 /* XXX */ | ||
61 | -#endif | ||
62 | - | ||
63 | struct socket *udp_last_so = &udb; | 53 | struct socket *udp_last_so = &udb; |
64 | 54 | ||
65 | void | 55 | void |
@@ -76,7 +66,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -76,7 +66,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
76 | { | 66 | { |
77 | register struct ip *ip; | 67 | register struct ip *ip; |
78 | register struct udphdr *uh; | 68 | register struct udphdr *uh; |
79 | -/* struct mbuf *opts = 0;*/ | ||
80 | int len; | 69 | int len; |
81 | struct ip save_ip; | 70 | struct ip save_ip; |
82 | struct socket *so; | 71 | struct socket *so; |
@@ -129,14 +118,10 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -129,14 +118,10 @@ udp_input(register struct mbuf *m, int iphlen) | ||
129 | /* | 118 | /* |
130 | * Checksum extended UDP header and data. | 119 | * Checksum extended UDP header and data. |
131 | */ | 120 | */ |
132 | - if (UDPCKSUM && uh->uh_sum) { | 121 | + if (uh->uh_sum) { |
133 | memset(&((struct ipovly *)ip)->ih_mbuf, 0, sizeof(struct mbuf_ptr)); | 122 | memset(&((struct ipovly *)ip)->ih_mbuf, 0, sizeof(struct mbuf_ptr)); |
134 | ((struct ipovly *)ip)->ih_x1 = 0; | 123 | ((struct ipovly *)ip)->ih_x1 = 0; |
135 | ((struct ipovly *)ip)->ih_len = uh->uh_ulen; | 124 | ((struct ipovly *)ip)->ih_len = uh->uh_ulen; |
136 | - /* keep uh_sum for ICMP reply | ||
137 | - * uh->uh_sum = cksum(m, len + sizeof (struct ip)); | ||
138 | - * if (uh->uh_sum) { | ||
139 | - */ | ||
140 | if(cksum(m, len + sizeof(struct ip))) { | 125 | if(cksum(m, len + sizeof(struct ip))) { |
141 | STAT(udpstat.udps_badsum++); | 126 | STAT(udpstat.udps_badsum++); |
142 | goto bad; | 127 | goto bad; |
@@ -201,7 +186,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -201,7 +186,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
201 | /* | 186 | /* |
202 | * Setup fields | 187 | * Setup fields |
203 | */ | 188 | */ |
204 | - /* udp_last_so = so; */ | ||
205 | so->so_laddr = ip->ip_src; | 189 | so->so_laddr = ip->ip_src; |
206 | so->so_lport = uh->uh_sport; | 190 | so->so_lport = uh->uh_sport; |
207 | 191 | ||
@@ -246,7 +230,6 @@ udp_input(register struct mbuf *m, int iphlen) | @@ -246,7 +230,6 @@ udp_input(register struct mbuf *m, int iphlen) | ||
246 | return; | 230 | return; |
247 | bad: | 231 | bad: |
248 | m_freem(m); | 232 | m_freem(m); |
249 | - /* if (opts) m_freem(opts); */ | ||
250 | return; | 233 | return; |
251 | } | 234 | } |
252 | 235 | ||
@@ -277,7 +260,7 @@ int udp_output2(struct socket *so, struct mbuf *m, | @@ -277,7 +260,7 @@ int udp_output2(struct socket *so, struct mbuf *m, | ||
277 | memset(&ui->ui_i.ih_mbuf, 0 , sizeof(struct mbuf_ptr)); | 260 | memset(&ui->ui_i.ih_mbuf, 0 , sizeof(struct mbuf_ptr)); |
278 | ui->ui_x1 = 0; | 261 | ui->ui_x1 = 0; |
279 | ui->ui_pr = IPPROTO_UDP; | 262 | ui->ui_pr = IPPROTO_UDP; |
280 | - ui->ui_len = htons(m->m_len - sizeof(struct ip)); /* + sizeof (struct udphdr)); */ | 263 | + ui->ui_len = htons(m->m_len - sizeof(struct ip)); |
281 | /* XXXXX Check for from-one-location sockets, or from-any-location sockets */ | 264 | /* XXXXX Check for from-one-location sockets, or from-any-location sockets */ |
282 | ui->ui_src = saddr->sin_addr; | 265 | ui->ui_src = saddr->sin_addr; |
283 | ui->ui_dst = daddr->sin_addr; | 266 | ui->ui_dst = daddr->sin_addr; |
@@ -289,10 +272,8 @@ int udp_output2(struct socket *so, struct mbuf *m, | @@ -289,10 +272,8 @@ int udp_output2(struct socket *so, struct mbuf *m, | ||
289 | * Stuff checksum and output datagram. | 272 | * Stuff checksum and output datagram. |
290 | */ | 273 | */ |
291 | ui->ui_sum = 0; | 274 | ui->ui_sum = 0; |
292 | - if (UDPCKSUM) { | ||
293 | - if ((ui->ui_sum = cksum(m, /* sizeof (struct udpiphdr) + */ m->m_len)) == 0) | 275 | + if ((ui->ui_sum = cksum(m, m->m_len)) == 0) |
294 | ui->ui_sum = 0xffff; | 276 | ui->ui_sum = 0xffff; |
295 | - } | ||
296 | ((struct ip *)ui)->ip_len = m->m_len; | 277 | ((struct ip *)ui)->ip_len = m->m_len; |
297 | 278 | ||
298 | ((struct ip *)ui)->ip_ttl = IPDEFTTL; | 279 | ((struct ip *)ui)->ip_ttl = IPDEFTTL; |
@@ -363,8 +344,6 @@ void | @@ -363,8 +344,6 @@ void | ||
363 | udp_detach(struct socket *so) | 344 | udp_detach(struct socket *so) |
364 | { | 345 | { |
365 | closesocket(so->s); | 346 | closesocket(so->s); |
366 | - /* if (so->so_m) m_free(so->so_m); done by sofree */ | ||
367 | - | ||
368 | sofree(so); | 347 | sofree(so); |
369 | } | 348 | } |
370 | 349 | ||
@@ -651,7 +630,6 @@ udp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, | @@ -651,7 +630,6 @@ udp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, | ||
651 | return NULL; | 630 | return NULL; |
652 | } | 631 | } |
653 | setsockopt(so->s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)); | 632 | setsockopt(so->s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)); |
654 | -/* setsockopt(so->s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int)); */ | ||
655 | 633 | ||
656 | getsockname(so->s,(struct sockaddr *)&addr,&addrlen); | 634 | getsockname(so->s,(struct sockaddr *)&addr,&addrlen); |
657 | so->so_fport = addr.sin_port; | 635 | so->so_fport = addr.sin_port; |