mrouted: DVMRP missing subnet
authorMatt Weber <matthew.weber@rockwellcollins.com>
Mon, 12 Oct 2015 16:03:08 +0000 (11:03 -0500)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 12 Oct 2015 19:15:47 +0000 (21:15 +0200)
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/mrouted/0001-DVMRP-report-missing-subnet.patch [new file with mode: 0644]

diff --git a/package/mrouted/0001-DVMRP-report-missing-subnet.patch b/package/mrouted/0001-DVMRP-report-missing-subnet.patch
new file mode 100644 (file)
index 0000000..023c8cf
--- /dev/null
@@ -0,0 +1,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
+