home *** CD-ROM | disk | FTP | other *** search
- diff -u --recursive v1.0.6/linux/Makefile linux/Makefile
- --- v1.0.6/linux/Makefile Fri Mar 18 10:21:30 1994
- +++ linux/Makefile Wed Apr 6 13:13:31 1994
- @@ -1,6 +1,6 @@
- VERSION = 1
- PATCHLEVEL = 0
- -SUBLEVEL = 6
- +SUBLEVEL = 7
-
- all: Version zImage
-
- diff -u --recursive --new-file v1.0.6/linux/net/inet/tcp.c linux/net/inet/tcp.c
- --- v1.0.6/linux/net/inet/tcp.c Fri Mar 18 10:21:35 1994
- +++ linux/net/inet/tcp.c Wed Apr 6 13:13:35 1994
- @@ -3404,6 +3404,16 @@
- release_sock(sk);
- return(0);
-
- + case TCP_SYN_RECV:
- + if (th->syn) {
- + /* Probably a retransmitted syn */
- + printk("syn while in TCP_SYN_RECV\n");
- + kfree_skb(skb, FREE_READ);
- + release_sock(sk);
- + return(0);
- + }
- +
- +
- default:
- if (!tcp_sequence(sk, th, len, opt, saddr,dev)) {
- kfree_skb(skb, FREE_READ);
- diff -u --recursive --new-file v1.0.6/linux/net/inet/icmp.c linux/net/inet/icmp.c
- --- v1.0.6/linux/net/inet/icmp.c Tue Mar 1 18:51:41 1994
- +++ linux/net/inet/icmp.c Wed Apr 6 13:13:33 1994
- @@ -285,6 +285,65 @@
- }
-
-
- +/* Handle ICMP Timestamp requests. */
- +static void
- +icmp_timestamp(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
- + unsigned long saddr, unsigned long daddr, int len,
- + struct options *opt)
- +{
- + struct icmphdr *icmphr;
- + struct sk_buff *skb2;
- + int size, offset;
- + unsigned long *timeptr, midtime;
- + extern struct timeval xtime; /* kernel/time.c */
- +
- + size = sizeof(struct sk_buff) + dev->hard_header_len + 64 + len;
- + if (! (skb2 = alloc_skb(size, GFP_ATOMIC))) {
- + skb->sk = NULL;
- + kfree_skb(skb, FREE_READ);
- + return;
- + }
- + skb2->sk = NULL;
- + skb2->mem_addr = skb2;
- + skb2->mem_len = size;
- + skb2->free = 1;
- +
- + /* Build Layer 2-3 headers for message back to source */
- + offset = ip_build_header(skb2, daddr, saddr, &dev, IPPROTO_ICMP, opt, len,
- + skb->ip_hdr->tos, 255);
- + if (offset < 0) {
- + printk("ICMP: Could not build IP Header for ICMP TIMESTAMP Response\n");
- + kfree_skb(skb2, FREE_WRITE);
- + skb->sk = NULL;
- + kfree_skb(skb, FREE_READ);
- + return;
- + }
- +
- + /* Re-adjust length according to actual IP header size. */
- + skb2->len = offset + len;
- +
- + /* Build ICMP_TIMESTAMP Response message. */
- + icmphr = (struct icmphdr *) ((char *) (skb2 + 1) + offset);
- + memcpy((char *) icmphr, (char *) icmph, len);
- + icmphr->type = ICMP_TIMESTAMPREPLY;
- + icmphr->code = icmphr->checksum = 0;
- +
- + /* fill in the current time as ms since midnight UT: */
- + midtime = (xtime.tv_sec % 86400) * 1000 + xtime.tv_usec / 1000;
- + timeptr = (unsigned long *) (icmphr + 1);
- + /* the originate timestamp (timeptr [0]) is still in the copy: */
- + timeptr [1] = timeptr [2] = htonl(midtime);
- +
- + icmphr->checksum = ip_compute_csum((unsigned char *) icmphr, len);
- +
- + /* Ship it out - free it when done */
- + ip_queue_xmit((struct sock *) NULL, dev, skb2, 1);
- +
- + skb->sk = NULL;
- + kfree_skb(skb, FREE_READ);
- +}
- +
- +
- /* Handle the ICMP INFORMATION REQUEST. */
- static void
- icmp_info(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
- @@ -397,6 +456,13 @@
- icmp_echo(icmph, skb1, dev, saddr, daddr, len, opt);
- return 0;
- case ICMP_ECHOREPLY:
- + skb1->sk = NULL;
- + kfree_skb(skb1, FREE_READ);
- + return(0);
- + case ICMP_TIMESTAMP:
- + icmp_timestamp(icmph, skb1, dev, saddr, daddr, len, opt);
- + return 0;
- + case ICMP_TIMESTAMPREPLY:
- skb1->sk = NULL;
- kfree_skb(skb1, FREE_READ);
- return(0);
-