IBGP fixes.

This commit is contained in:
Martin Mares 2000-04-26 13:26:31 +00:00
parent e1ddd99377
commit 5db9bae286
2 changed files with 16 additions and 7 deletions

View file

@ -343,12 +343,20 @@ bgp_get_bucket(struct bgp_proto *p, ea_list *old, ea_list *tmp, int originate)
struct bgp_bucket *b; struct bgp_bucket *b;
/* Merge the attribute lists */ /* Merge the attribute lists */
if (tmp)
{
for(t=tmp; t->next; t=t->next) for(t=tmp; t->next; t=t->next)
; ;
t->next = old; t->next = old;
new = alloca(ea_scan(tmp)); new = alloca(ea_scan(tmp));
ea_merge(tmp, new); ea_merge(tmp, new);
t->next = NULL; t->next = NULL;
}
else
{
new = alloca(ea_scan(old));
ea_merge(old, new);
}
ea_sort(new); ea_sort(new);
/* Normalize attributes */ /* Normalize attributes */
@ -668,7 +676,7 @@ bgp_path_loopy(struct bgp_proto *p, eattr *a)
while (len > 0) while (len > 0)
{ {
n = path[1]; n = path[1];
len -= 2 - 2*n; len -= 2 + 2*n;
path += 2; path += 2;
for(i=0; i<n; i++) for(i=0; i<n; i++)
{ {

View file

@ -315,6 +315,7 @@ bgp_start_neighbor(struct bgp_proto *p)
s->tos = IP_PREC_INTERNET_CONTROL; s->tos = IP_PREC_INTERNET_CONTROL;
s->ttl = 1; s->ttl = 1;
s->rbsize = BGP_RX_BUFFER_SIZE; s->rbsize = BGP_RX_BUFFER_SIZE;
s->tbsize = BGP_TX_BUFFER_SIZE;
s->rx_hook = bgp_incoming_connection; s->rx_hook = bgp_incoming_connection;
if (sk_open(s)) if (sk_open(s))
{ {