summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Ovsienko <infrastation@yandex.ru>2011-08-08 19:36:44 +0400
committerDenis Ovsienko <infrastation@yandex.ru>2011-08-08 19:36:44 +0400
commit15b1d9d0b0f54b9afbfdb784d535b3761d5efde7 (patch)
treec01058a48d917cf5ccd523580f9e5285d4c6519b
parent5990281d4e91e40e0e3cc9149e73c887a7119415 (diff)
bgpd: dismiss some zlookup checks
bgp_nexthop_onlink(): zlookup is not used here at all bgp_nexthop_lookup_ipv6(): rely on the detection performed by "query" function (this also changes the fallback value to 0), reorder if-block bgp_nexthop_lookup(): idem
-rw-r--r--bgpd/bgp_nexthop.c38
1 files changed, 6 insertions, 32 deletions
diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index cb5a0504..95369045 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -175,10 +175,6 @@ 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)
{
@@ -223,14 +219,6 @@ bgp_nexthop_lookup_ipv6 (struct peer *peer, struct bgp_info *ri, int *changed,
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;
@@ -253,8 +241,9 @@ bgp_nexthop_lookup_ipv6 (struct peer *peer, struct bgp_info *ri, int *changed,
}
else
{
- bnc = zlookup_query_ipv6 (&attr->extra->mp_nexthop_global);
- if (bnc)
+ if (NULL == (bnc = zlookup_query_ipv6 (&attr->extra->mp_nexthop_global)))
+ bnc = bnc_new ();
+ else
{
if (changed)
{
@@ -278,10 +267,6 @@ bgp_nexthop_lookup_ipv6 (struct peer *peer, struct bgp_info *ri, int *changed,
}
}
}
- else
- {
- bnc = bnc_new ();
- }
rn->info = bnc;
}
@@ -310,14 +295,6 @@ bgp_nexthop_lookup (afi_t afi, struct peer *peer, struct bgp_info *ri,
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);
@@ -340,8 +317,9 @@ bgp_nexthop_lookup (afi_t afi, struct peer *peer, struct bgp_info *ri,
}
else
{
- bnc = zlookup_query (addr);
- if (bnc)
+ if (NULL == (bnc = zlookup_query (addr)))
+ bnc = bnc_new ();
+ else
{
if (changed)
{
@@ -365,10 +343,6 @@ bgp_nexthop_lookup (afi_t afi, struct peer *peer, struct bgp_info *ri,
}
}
}
- else
- {
- bnc = bnc_new ();
- }
rn->info = bnc;
}