IBGP fixes.
This commit is contained in:
parent
e1ddd99377
commit
5db9bae286
2 changed files with 16 additions and 7 deletions
|
@ -343,12 +343,20 @@ bgp_get_bucket(struct bgp_proto *p, ea_list *old, ea_list *tmp, int originate)
|
|||
struct bgp_bucket *b;
|
||||
|
||||
/* Merge the attribute lists */
|
||||
for(t=tmp; t->next; t=t->next)
|
||||
;
|
||||
t->next = old;
|
||||
new = alloca(ea_scan(tmp));
|
||||
ea_merge(tmp, new);
|
||||
t->next = NULL;
|
||||
if (tmp)
|
||||
{
|
||||
for(t=tmp; t->next; t=t->next)
|
||||
;
|
||||
t->next = old;
|
||||
new = alloca(ea_scan(tmp));
|
||||
ea_merge(tmp, new);
|
||||
t->next = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
new = alloca(ea_scan(old));
|
||||
ea_merge(old, new);
|
||||
}
|
||||
ea_sort(new);
|
||||
|
||||
/* Normalize attributes */
|
||||
|
@ -668,7 +676,7 @@ bgp_path_loopy(struct bgp_proto *p, eattr *a)
|
|||
while (len > 0)
|
||||
{
|
||||
n = path[1];
|
||||
len -= 2 - 2*n;
|
||||
len -= 2 + 2*n;
|
||||
path += 2;
|
||||
for(i=0; i<n; i++)
|
||||
{
|
||||
|
|
|
@ -315,6 +315,7 @@ bgp_start_neighbor(struct bgp_proto *p)
|
|||
s->tos = IP_PREC_INTERNET_CONTROL;
|
||||
s->ttl = 1;
|
||||
s->rbsize = BGP_RX_BUFFER_SIZE;
|
||||
s->tbsize = BGP_TX_BUFFER_SIZE;
|
||||
s->rx_hook = bgp_incoming_connection;
|
||||
if (sk_open(s))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue