diff options
Diffstat (limited to 'bgpd/bgpd.c')
| -rw-r--r-- | bgpd/bgpd.c | 23 | 
1 files changed, 11 insertions, 12 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index edda82b63c..8a3ae538dc 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -3410,6 +3410,17 @@ static struct bgp *bgp_create(as_t *as, const char *name,  	}  	bgp = XCALLOC(MTYPE_BGP, sizeof(struct bgp)); +	bgp->as = *as; +	if (as_pretty) +		bgp->as_pretty = XSTRDUP(MTYPE_BGP_NAME, as_pretty); +	else +		bgp->as_pretty = XSTRDUP(MTYPE_BGP_NAME, asn_asn2asplain(*as)); + +	if (asnotation != ASNOTATION_UNDEFINED) { +		bgp->asnotation = asnotation; +		SET_FLAG(bgp->config, BGP_CONFIG_ASNOTATION); +	} else +		asn_str2asn_notation(bgp->as_pretty, NULL, &bgp->asnotation);  	if (BGP_DEBUG(zebra, ZEBRA)) {  		if (inst_type == BGP_INSTANCE_TYPE_DEFAULT) @@ -3453,18 +3464,6 @@ static struct bgp *bgp_create(as_t *as, const char *name,  	bgp->peer = list_new();  peer_init: -	bgp->as = *as; -	if (as_pretty) -		bgp->as_pretty = XSTRDUP(MTYPE_BGP_NAME, as_pretty); -	else -		bgp->as_pretty = XSTRDUP(MTYPE_BGP_NAME, asn_asn2asplain(*as)); - -	if (asnotation != ASNOTATION_UNDEFINED) { -		bgp->asnotation = asnotation; -		SET_FLAG(bgp->config, BGP_CONFIG_ASNOTATION); -	} else -		asn_str2asn_notation(bgp->as_pretty, NULL, &bgp->asnotation); -  	bgp->peer->cmp = (int (*)(void *, void *))peer_cmp;  	bgp->peerhash = hash_create(peer_hash_key_make, peer_hash_same,  				    "BGP Peer Hash");  | 
