diff options
| -rw-r--r-- | bgpd/bgp_nexthop.c | 26 | 
1 files changed, 23 insertions, 3 deletions
| diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c index e9c78b3f..fdf251b2 100644 --- a/bgpd/bgp_nexthop.c +++ b/bgpd/bgp_nexthop.c @@ -174,7 +174,11 @@ int  bgp_nexthop_onlink (afi_t afi, struct attr *attr)  {    struct bgp_node *rn; - +   +  /* If zebra is not enabled return */ +  if (zlookup->sock < 0) +    return 1; +      /* Lookup the address is onlink or not. */    if (afi == AFI_IP)      { @@ -218,7 +222,15 @@ bgp_nexthop_lookup_ipv6 (struct peer *peer, struct bgp_info *ri, int *changed,    struct prefix p;    struct bgp_nexthop_cache *bnc;    struct attr *attr; - +   +  /* If lookup is not enabled, return valid. */ +  if (zlookup->sock < 0) +    { +      if (ri->extra) +        ri->extra->igpmetric = 0; +      return 1; +    } +      /* Only check IPv6 global address only nexthop. */    attr = ri->attr; @@ -296,7 +308,15 @@ bgp_nexthop_lookup (afi_t afi, struct peer *peer, struct bgp_info *ri,    struct prefix p;    struct bgp_nexthop_cache *bnc;    struct in_addr addr; - +   +  /* If lookup is not enabled, return valid. */ +  if (zlookup->sock < 0) +    { +      if (ri->extra) +        ri->extra->igpmetric = 0; +      return 1; +    } +    #ifdef HAVE_IPV6    if (afi == AFI_IP6)      return bgp_nexthop_lookup_ipv6 (peer, ri, changed, metricchanged); | 
