summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_attr.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c
index 96429090..bb21fe19 100644
--- a/bgpd/bgp_attr.c
+++ b/bgpd/bgp_attr.c
@@ -577,11 +577,12 @@ bgp_attr_aggregate_intern (struct bgp *bgp, u_char origin,
{
struct attr attr;
struct attr *new;
- struct attr_extra *attre;
+ struct attr_extra attre;
memset (&attr, 0, sizeof (struct attr));
- attre = bgp_attr_extra_get (&attr);
-
+ memset (&attre, 0, sizeof (struct attr_extra));
+ attr.extra = &attre;
+
/* Origin attribute. */
attr.origin = origin;
attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_ORIGIN);
@@ -602,22 +603,21 @@ bgp_attr_aggregate_intern (struct bgp *bgp, u_char origin,
attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_COMMUNITIES);
}
- attre->weight = BGP_ATTR_DEFAULT_WEIGHT;
+ attre.weight = BGP_ATTR_DEFAULT_WEIGHT;
#ifdef HAVE_IPV6
- attre->mp_nexthop_len = IPV6_MAX_BYTELEN;
+ attre.mp_nexthop_len = IPV6_MAX_BYTELEN;
#endif
if (! as_set)
attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_ATOMIC_AGGREGATE);
attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_AGGREGATOR);
if (CHECK_FLAG (bgp->config, BGP_CONFIG_CONFEDERATION))
- attre->aggregator_as = bgp->confed_id;
+ attre.aggregator_as = bgp->confed_id;
else
- attre->aggregator_as = bgp->as;
- attre->aggregator_addr = bgp->router_id;
+ attre.aggregator_as = bgp->as;
+ attre.aggregator_addr = bgp->router_id;
new = bgp_attr_intern (&attr);
- bgp_attr_extra_free (&attr);
-
+
aspath_unintern (&new->aspath);
return new;
}