From 5db9bae28676d743f53636d74997c85039d09278 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Wed, 26 Apr 2000 13:26:31 +0000 Subject: IBGP fixes. --- proto/bgp/attrs.c | 22 +++++++++++++++------- proto/bgp/bgp.c | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'proto/bgp') diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c index 6b8332b..74e2ef8 100644 --- a/proto/bgp/attrs.c +++ b/proto/bgp/attrs.c @@ -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; itos = 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)) { -- cgit v1.2.3