diff options
author | Henning Brauer <henning@cvs.openbsd.org> | 2005-03-15 14:40:09 +0000 |
---|---|---|
committer | Henning Brauer <henning@cvs.openbsd.org> | 2005-03-15 14:40:09 +0000 |
commit | f112b9a6769601ba2436b5e14a7425300b3b0aa4 (patch) | |
tree | 4f55e9c085e1d7c4be465946c994e0f4ddfca601 | |
parent | 80b7ee28149fa704f8e234644549d15add3a7347 (diff) |
remove listener if bind() fails. no point in having a defunct listener
in the list; causes issues with upcoming changes, spotted by
Jason Ackley <jason@ackley.net>, claudio ok
-rw-r--r-- | usr.sbin/bgpd/config.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/bgpd/config.c b/usr.sbin/bgpd/config.c index fe52c4a4df4..9e7cabf33eb 100644 --- a/usr.sbin/bgpd/config.c +++ b/usr.sbin/bgpd/config.c @@ -1,4 +1,4 @@ -/* $OpenBSD: config.c,v 1.40 2004/10/01 15:11:12 henning Exp $ */ +/* $OpenBSD: config.c,v 1.41 2005/03/15 14:40:08 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -276,7 +276,9 @@ prepare_listeners(struct bgpd_config *conf) log_warn("cannot bind to %s", log_sockaddr((struct sockaddr *)&la->sa)); close(la->fd); - la->fd = -1; + TAILQ_REMOVE(conf->listen_addrs, la, entry); + free(la); + continue; } } } |