netdev
[Top] [All Lists]

AX.25 cb lookup patch

To: "David S. Miller" <davem@xxxxxxxxxxxxx>
Subject: AX.25 cb lookup patch
From: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Tue, 9 Nov 2004 04:36:18 +0100
Cc: netdev@xxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.1i
Ax AX.25 connection is identified only by it's source and destination,
not by the device it's routed through, so fix the connection block
lookup to ignore the device of a connection.  This fixes dying connections
in case of an AX.25 routing flap.

Index: net/ax25/af_ax25.c
===================================================================
RCS file: /home/cvs/linux/net/ax25/af_ax25.c,v
retrieving revision 1.59
diff -u -r1.59 af_ax25.c
--- net/ax25/af_ax25.c  12 Oct 2004 01:45:52 -0000      1.59
+++ net/ax25/af_ax25.c  3 Nov 2004 03:23:53 -0000
@@ -207,16 +207,8 @@
                        continue;
                if (s->ax25_dev == NULL)
                        continue;
-               if (ax25cmp(&s->source_addr, src_addr) == 0 && 
ax25cmp(&s->dest_addr, dest_addr) == 0 && s->ax25_dev->dev == dev) {
-                       if (digi != NULL && digi->ndigi != 0) {
-                               if (s->digipeat == NULL)
-                                       continue;
-                               if (ax25digicmp(s->digipeat, digi) != 0)
-                                       continue;
-                       } else {
-                               if (s->digipeat != NULL && s->digipeat->ndigi 
!= 0)
-                                       continue;
-                       }
+               if (ax25cmp(&s->source_addr, src_addr) == 0 &&
+                   ax25cmp(&s->dest_addr, dest_addr) == 0) {
                        ax25_cb_hold(s);
                        spin_unlock_bh(&ax25_list_lock);
 


<Prev in Thread] Current Thread [Next in Thread>