From acfce55c8637988954543c60597cd2f1525ba6ec Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 7 May 2000 10:41:45 +0000 Subject: [PATCH] Setup of incoming connection is now a separate function. --- TODO | 2 -- proto/bgp/bgp.c | 17 ++++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/TODO b/TODO index 6faae87e..c8162b4d 100644 --- a/TODO +++ b/TODO @@ -15,8 +15,6 @@ Core - filters: deletion of mandatory attributes? -- bgp: wait on restart - Documentation ~~~~~~~~~~~~~ - write doctool diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index 41081f26..ecaa9e36 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -27,6 +27,7 @@ static char *bgp_state_names[] = { "Idle", "Connect", "Active", "OpenSent", "Ope static void bgp_connect(struct bgp_proto *p); static void bgp_initiate(struct bgp_proto *p); +static void bgp_setup_listen_sk(void); void bgp_close(struct bgp_proto *p) @@ -309,12 +310,8 @@ bgp_incoming_connection(sock *sk, int dummy) } static void -bgp_start_neighbor(struct bgp_proto *p) +bgp_setup_listen_sk(void) { - p->local_addr = p->neigh->iface->addr->ip; - DBG("BGP: local=%I remote=%I\n", p->local_addr, p->next_hop); - if (!bgp_counter++) - init_list(&bgp_list); if (!bgp_listen_sk) { sock *s = sk_new(&root_pool); @@ -334,6 +331,16 @@ bgp_start_neighbor(struct bgp_proto *p) else bgp_listen_sk = s; } +} + +static void +bgp_start_neighbor(struct bgp_proto *p) +{ + p->local_addr = p->neigh->iface->addr->ip; + DBG("BGP: local=%I remote=%I\n", p->local_addr, p->next_hop); + if (!bgp_counter++) + init_list(&bgp_list); + bgp_setup_listen_sk(); if (!bgp_linpool) bgp_linpool = lp_new(&root_pool, 4080); add_tail(&bgp_list, &p->bgp_node);