mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-05 04:16:46 +02:00
main/opennhrp: add the forgotten patch
(cherry picked from commit 8ab866f1ba6dd836a4c4e45545360c9e1a373035)
This commit is contained in:
parent
8435d08383
commit
422708b448
@ -0,0 +1,54 @@
|
||||
From 7747c86253114ed9702346a93587e4e6cac444aa Mon Sep 17 00:00:00 2001
|
||||
From: David Ward <david.ward@ll.mit.edu>
|
||||
Date: Tue, 29 Mar 2011 22:43:03 -0400
|
||||
Subject: [PATCH] netlink: ignore kernel routes for GRE interfaces
|
||||
|
||||
The kernel route should not be added as a peer, except on shortcut-
|
||||
destination interfaces. It can prevent NHRP resolution requests from
|
||||
being routed correctly to a statically-configured next hop server.
|
||||
|
||||
Signed-off-by: David Ward <david.ward@ll.mit.edu>
|
||||
---
|
||||
nhrp/sysdep_netlink.c | 9 ++++-----
|
||||
1 files changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/nhrp/sysdep_netlink.c b/nhrp/sysdep_netlink.c
|
||||
index a76acc2..e3e588b 100644
|
||||
--- a/nhrp/sysdep_netlink.c
|
||||
+++ b/nhrp/sysdep_netlink.c
|
||||
@@ -691,7 +691,8 @@ static void netlink_route_new(struct nlmsghdr *msg)
|
||||
} else if (iface->flags & NHRP_INTERFACE_FLAG_CONFIGURED) {
|
||||
/* Routes which might get additional outbound
|
||||
* shortcuts */
|
||||
- if (rtm->rtm_table != iface->route_table)
|
||||
+ if (rtm->rtm_table != iface->route_table ||
|
||||
+ rtm->rtm_protocol == RTPROT_KERNEL)
|
||||
return;
|
||||
type = NHRP_PEER_TYPE_LOCAL_ROUTE;
|
||||
}
|
||||
@@ -728,12 +729,9 @@ static void netlink_route_del(struct nlmsghdr *msg)
|
||||
if (rta[RTA_OIF] == NULL || rta[RTA_DST] == NULL)
|
||||
return;
|
||||
|
||||
- /* Consider only routes from main table */
|
||||
if (rtm->rtm_family != PF_INET)
|
||||
return;
|
||||
|
||||
- /* Only consider routes for local interfaces that accept
|
||||
- * shortcut connections */
|
||||
iface = nhrp_interface_get_by_index(*(int*)RTA_DATA(rta[RTA_OIF]),
|
||||
FALSE);
|
||||
if (iface == NULL)
|
||||
@@ -747,7 +745,8 @@ static void netlink_route_del(struct nlmsghdr *msg)
|
||||
} else if (iface->flags & NHRP_INTERFACE_FLAG_CONFIGURED) {
|
||||
/* Routes which might get additional outbound
|
||||
* shortcuts */
|
||||
- if (rtm->rtm_table != iface->route_table)
|
||||
+ if (rtm->rtm_table != iface->route_table ||
|
||||
+ rtm->rtm_protocol == RTPROT_KERNEL)
|
||||
return;
|
||||
type = NHRP_PEER_TYPE_LOCAL_ROUTE;
|
||||
}
|
||||
--
|
||||
1.7.1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user