SCCS-vsn: sys/netinet/tcp_input.c 1.28
-/* tcp_input.c 1.27 81/11/22 */
+/* tcp_input.c 1.28 81/11/23 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
ti->ti_next = ti->ti_prev = 0;
ti->ti_x1 = 0;
ti->ti_len = htons((u_short)tlen);
ti->ti_next = ti->ti_prev = 0;
ti->ti_x1 = 0;
ti->ti_len = htons((u_short)tlen);
- if (ti->ti_sum = inet_cksum(m, len)) {
+ if ((ti->ti_sum = inet_cksum(m, len)) != 0xffff) {
tcpstat.tcps_badsum++;
printf("tcp cksum %x\ti", ti->ti_sum);
goto bad;
tcpstat.tcps_badsum++;
printf("tcp cksum %x\ti", ti->ti_sum);
goto bad;
- * Convert addresses and ports to host format.
* Locate pcb for segment.
*/
* Locate pcb for segment.
*/
- ti->ti_src.s_addr = ntohl(ti->ti_src.s_addr);
- ti->ti_dst.s_addr = ntohl(ti->ti_dst.s_addr);
- ti->ti_sport = ntohs(ti->ti_sport);
- ti->ti_dport = ntohs(ti->ti_dport);
inp = in_pcblookup(&tcb, ti->ti_src, ti->ti_sport, ti->ti_dst, ti->ti_dport);
if (inp == 0)
goto notwanted;
inp = in_pcblookup(&tcb, ti->ti_src, ti->ti_sport, ti->ti_dst, ti->ti_dport);
if (inp == 0)
goto notwanted;
ti->ti_off = 5;
ti->ti_sum = inet_cksum(m, sizeof(struct tcpiphdr));
((struct ip *)ti)->ip_len = sizeof(struct tcpiphdr);
ti->ti_off = 5;
ti->ti_sum = inet_cksum(m, sizeof(struct tcpiphdr));
((struct ip *)ti)->ip_len = sizeof(struct tcpiphdr);
+ ((struct ip *)ti)->ip_ttl = MAXTTL;
ip_output(m);
tcpstat.tcps_badsegs++;
}
ip_output(m);
tcpstat.tcps_badsegs++;
}