patch-2.4.17 linux/net/ipv4/tcp_ipv4.c
Next file: linux/net/ipv4/tcp_output.c
Previous file: linux/net/ipv4/tcp_input.c
Back to the patch index
Back to the overall index
- Lines: 62
- Date:
Fri Dec 21 16:40:33 2001
- Orig file:
linux-2.4.16/net/ipv4/tcp_ipv4.c
- Orig date:
Mon Nov 5 17:46:12 2001
diff -Naur -X /home/marcelo/lib/dontdiff linux-2.4.16/net/ipv4/tcp_ipv4.c linux/net/ipv4/tcp_ipv4.c
@@ -5,7 +5,7 @@
*
* Implementation of the Transmission Control Protocol(TCP).
*
- * Version: $Id: tcp_ipv4.c,v 1.235 2001/10/26 14:51:13 davem Exp $
+ * Version: $Id: tcp_ipv4.c,v 1.237 2001/12/05 08:54:10 davem Exp $
*
* IPv4 specific functions
*
@@ -754,21 +754,19 @@
}
static struct open_request *tcp_v4_search_req(struct tcp_opt *tp,
- struct iphdr *iph,
- struct tcphdr *th,
- struct open_request ***prevp)
+ struct open_request ***prevp,
+ __u16 rport,
+ __u32 raddr, __u32 laddr)
{
struct tcp_listen_opt *lopt = tp->listen_opt;
struct open_request *req, **prev;
- __u16 rport = th->source;
- __u32 raddr = iph->saddr;
for (prev = &lopt->syn_table[tcp_v4_synq_hash(raddr, rport)];
(req = *prev) != NULL;
prev = &req->dl_next) {
if (req->rmt_port == rport &&
req->af.v4_req.rmt_addr == raddr &&
- req->af.v4_req.loc_addr == iph->daddr &&
+ req->af.v4_req.loc_addr == laddr &&
TCP_INET_FAMILY(req->class->family)) {
BUG_TRAP(req->sk == NULL);
*prevp = prev;
@@ -939,7 +937,9 @@
if (sk->lock.users != 0)
goto out;
- req = tcp_v4_search_req(tp, iph, th, &prev);
+ req = tcp_v4_search_req(tp, &prev,
+ th->dest,
+ iph->daddr, iph->saddr);
if (!req)
goto out;
@@ -1473,11 +1473,14 @@
{
struct open_request *req, **prev;
struct tcphdr *th = skb->h.th;
+ struct iphdr *iph = skb->nh.iph;
struct tcp_opt *tp = &(sk->tp_pinfo.af_tcp);
struct sock *nsk;
/* Find possible connection requests. */
- req = tcp_v4_search_req(tp, skb->nh.iph, th, &prev);
+ req = tcp_v4_search_req(tp, &prev,
+ th->source,
+ iph->saddr, iph->daddr);
if (req)
return tcp_check_req(sk, skb, req, prev);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)