Skip to contentSkip to conversation

DECnet Fix for DECnet routing bug

PATCH Applied Patrick Caulfield 2 participants 2 messages Aug 2, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 DECnet Fix for DECnet routing bug

This patch fixes a bug in the DECnet routing code where we were selecting a loopback device in preference to an outward facing device even when the destination was known non-local. This patch should fix the problem.

net/decnet/dn_route.c +7 -2
index 1355614..743e9fc 100644
@@ -925,8 +925,13 @@ static int dn_route_output_slow(struct d
 		for(dev_out = dev_base; dev_out; dev_out = dev_out->next) {
 			if (!dev_out->dn_ptr)
 				continue;
-			if (dn_dev_islocal(dev_out, oldflp->fld_src))
-				break;
+			if (!dn_dev_islocal(dev_out, oldflp->fld_src))
+				continue;
+			if ((dev_out->flags & IFF_LOOPBACK) &&
+			    oldflp->fld_dst &&
+			    !dn_dev_islocal(dev_out, oldflp->fld_dst))
+				continue;
+			break;
 		}
 		read_unlock(&dev_base_lock);
 		if (dev_out == NULL)
maintainer Applied
#1 lore raw

From: Patrick Caulfield <[email protected]>
Date: Wed, 02 Aug 2006 15:19:24 +0100

Quoted 6 lines

This patch fixes a bug in the DECnet routing code where we were selecting a loopback device in preference to an outward facing device even when the destination was known non-local. This patch should fix the problem.

Applied, thanks Patrick.