From cbdcdcb45693be455c0a57c1e972407e07f7c031 Mon Sep 17 00:00:00 2001 From: acinonyx Date: Mon, 16 Apr 2012 19:15:24 +0000 Subject: [PATCH] [packages] olsrd: Fix quagga plugin metric parsing git-svn-id: svn://svn.openwrt.org/openwrt/packages@31319 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- net/olsrd/patches/110-fix_metric_parsing.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 net/olsrd/patches/110-fix_metric_parsing.patch diff --git a/net/olsrd/patches/110-fix_metric_parsing.patch b/net/olsrd/patches/110-fix_metric_parsing.patch new file mode 100644 index 000000000..2b0d531fd --- /dev/null +++ b/net/olsrd/patches/110-fix_metric_parsing.patch @@ -0,0 +1,18 @@ +diff --git a/lib/quagga/src/parse.c b/lib/quagga/src/parse.c +index 5220849..8672fab 100644 +--- a/lib/quagga/src/parse.c ++++ b/lib/quagga/src/parse.c +@@ -103,11 +103,11 @@ static struct zroute + + // Quagga v0.98.6 BUG workaround: metric is always sent by zebra + // even without ZAPI_MESSAGE_METRIC message. +-// if (r.message & ZAPI_MESSAGE_METRIC) { ++ if ((r->message & ZAPI_MESSAGE_METRIC) || !zebra.version) { + memcpy(&r->metric, pnt, sizeof r->metric); + r->metric = ntohl(r->metric); + pnt += sizeof r->metric; +-// } ++ } + + if (pnt - opt != length) { + olsr_exit("(QUAGGA) Length does not match!", EXIT_FAILURE);