This is already addressed and included in round 8 branch.

--Jafar


On 6/14/2016 1:06 PM, Christian Franke wrote:
From: Christian Franke <[email protected]>

zsend_ipv4_nexthop_lookup_mrib is called with rib == NULL if the
lookup does not yield any result. Therefore, rib->vrf_id cannot be
used to construct the response and vrf has to be passed explicitly.

Signed-off-by: Christian Franke <[email protected]>
---
  zebra/zserv.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/zebra/zserv.c b/zebra/zserv.c
index e624ef2..ecca253 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -614,7 +614,7 @@ zsend_ipv4_nexthop_lookup (struct zserv *client, struct 
in_addr addr,
  */
  static int
  zsend_ipv4_nexthop_lookup_mrib (struct zserv *client, struct in_addr addr,
-                               struct rib *rib)
+                               struct rib *rib, vrf_id_t vrf_id)
  {
    struct stream *s;
    unsigned long nump;
@@ -626,7 +626,7 @@ zsend_ipv4_nexthop_lookup_mrib (struct zserv *client, 
struct in_addr addr,
    stream_reset (s);
/* Fill in result. */
-  zserv_create_header (s, ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB, rib->vrf_id);
+  zserv_create_header (s, ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB, vrf_id);
    stream_put_in_addr (s, &addr);
if (rib)
@@ -1016,7 +1016,7 @@ zread_ipv4_nexthop_lookup_mrib (struct zserv *client, 
u_short length,
addr.s_addr = stream_get_ipv4 (client->ibuf);
    rib = rib_match_ipv4_multicast (addr, NULL, vrf_id);
-  return zsend_ipv4_nexthop_lookup_mrib (client, addr, rib);
+  return zsend_ipv4_nexthop_lookup_mrib (client, addr, rib, vrf_id);
  }
/* Nexthop lookup for IPv4. */


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to