openwrt-routing/patches/110-fix_metric_parsing.patch

19 lines
635 B
Diff

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);