summaryrefslogtreecommitdiff
path: root/package/mrouted/0001-DVMRP-report-missing-subnet.patch
blob: 023c8cfd8ddc71f5a91c59d48cff6233ca4bb18d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From 687f41680d51585e9a5a135e39efee330588bea7 Mon Sep 17 00:00:00 2001
From: Matt Weber <matthew.weber@rockwellcollins.com>
Date: Fri, 11 Sep 2015 12:49:30 -0500
Subject: [PATCH 1/1] DVMRP report missing subnet

Accepted upstream and will be included in 3.9.8.
https://github.com/troglobit/mrouted/commit/512af5ffe0f48ffa2ba3b45898c66c2a561a5c2d

A subnet is missing in the DVMRP report sent to it's neighbor after
the initial probe occurs.  The issue was with the traversal of a double
linked list from end to start. Once the traversing pointer reaches
the start of routing table for loop (condition) it would break and
always drop the first subnet.

Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
---
 route.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/route.c b/route.c
index f74e601..9fe779d 100644
--- a/route.c
+++ b/route.c
@@ -1193,7 +1193,7 @@ static int report_chunk(int which_routes, struct rtentry *start_rt, vifi_t vifi,
 
     p = send_buf + MIN_IP_HEADER_LEN + IGMP_MINLEN;
 
-    for (r = start_rt; r != routing_table; r = r->rt_prev) {
+    for (r = start_rt; r != NULL; r = r->rt_prev) {
 	if (which_routes == CHANGED_ROUTES && !(r->rt_flags & RTF_CHANGED)) {
 	    nrt++;
 	    continue;
-- 
1.9.1