diff options
author | Henning Brauer <henning@cvs.openbsd.org> | 2004-07-04 03:51:32 +0000 |
---|---|---|
committer | Henning Brauer <henning@cvs.openbsd.org> | 2004-07-04 03:51:32 +0000 |
commit | 19dc9d31e9066fe484f3eeae0f4930c1f480e1c8 (patch) | |
tree | 9edd1679244ee8f25d85ff6eca3161773559a306 | |
parent | 8a66a965f7ea065f86f9f74241ba8cb602a8fde6 (diff) |
2 more file descriptors for each RDE and SE inherited from the parent
we should close
-rw-r--r-- | usr.sbin/bgpd/bgpd.c | 7 | ||||
-rw-r--r-- | usr.sbin/bgpd/rde.c | 6 | ||||
-rw-r--r-- | usr.sbin/bgpd/session.c | 6 | ||||
-rw-r--r-- | usr.sbin/bgpd/session.h | 6 |
4 files changed, 15 insertions, 10 deletions
diff --git a/usr.sbin/bgpd/bgpd.c b/usr.sbin/bgpd/bgpd.c index 92da4dee163..487096bcdc1 100644 --- a/usr.sbin/bgpd/bgpd.c +++ b/usr.sbin/bgpd/bgpd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bgpd.c,v 1.99 2004/07/04 03:37:03 henning Exp $ */ +/* $OpenBSD: bgpd.c,v 1.100 2004/07/04 03:51:31 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -195,9 +195,10 @@ main(int argc, char *argv[]) prepare_listeners(&conf); /* fork children */ - rde_pid = rde_main(&conf, &net_l, rules_l, &mrt_l, pipe_m2r, pipe_s2r); + rde_pid = rde_main(&conf, &net_l, rules_l, &mrt_l, pipe_m2r, pipe_s2r, + pipe_m2s); io_pid = session_main(&conf, peer_l, &net_l, rules_l, &mrt_l, - pipe_m2s, pipe_s2r); + pipe_m2s, pipe_s2r, pipe_m2r); setproctitle("parent"); diff --git a/usr.sbin/bgpd/rde.c b/usr.sbin/bgpd/rde.c index 9eaa4e613ad..fa3d902bd76 100644 --- a/usr.sbin/bgpd/rde.c +++ b/usr.sbin/bgpd/rde.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde.c,v 1.123 2004/07/04 03:37:03 henning Exp $ */ +/* $OpenBSD: rde.c,v 1.124 2004/07/04 03:51:31 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -105,7 +105,7 @@ u_int32_t nexthophashsize = 64; int rde_main(struct bgpd_config *config, struct network_head *net_l, struct filter_head *rules, struct mrt_head *mrt_l, - int pipe_m2r[2], int pipe_s2r[2]) + int pipe_m2r[2], int pipe_s2r[2], int pipe_m2s[2]) { pid_t pid; struct passwd *pw; @@ -148,6 +148,8 @@ rde_main(struct bgpd_config *config, struct network_head *net_l, close(pipe_s2r[0]); close(pipe_m2r[0]); + close(pipe_m2s[0]); + close(pipe_m2s[1]); /* initialize the RIB structures */ imsg_init(&ibuf_se, pipe_s2r[1]); diff --git a/usr.sbin/bgpd/session.c b/usr.sbin/bgpd/session.c index 91fa899164b..83b8b7c28a3 100644 --- a/usr.sbin/bgpd/session.c +++ b/usr.sbin/bgpd/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.181 2004/07/03 17:19:59 claudio Exp $ */ +/* $OpenBSD: session.c,v 1.182 2004/07/04 03:51:31 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -158,7 +158,7 @@ setup_listeners(u_int *la_cnt) int session_main(struct bgpd_config *config, struct peer *cpeers, struct network_head *net_l, struct filter_head *rules, - struct mrt_head *m_l, int pipe_m2s[2], int pipe_s2r[2]) + struct mrt_head *m_l, int pipe_m2s[2], int pipe_s2r[2], int pipe_m2r[2]) { int nfds, i, j, timeout; int idx_peers, idx_listeners, idx_mrts; @@ -224,6 +224,8 @@ session_main(struct bgpd_config *config, struct peer *cpeers, log_info("session engine ready"); close(pipe_m2s[0]); close(pipe_s2r[1]); + close(pipe_m2r[0]); + close(pipe_m2r[1]); init_conf(conf); imsg_init(&ibuf_rde, pipe_s2r[0]); imsg_init(&ibuf_main, pipe_m2s[1]); diff --git a/usr.sbin/bgpd/session.h b/usr.sbin/bgpd/session.h index c11240cb76c..a7e961cb28b 100644 --- a/usr.sbin/bgpd/session.h +++ b/usr.sbin/bgpd/session.h @@ -1,4 +1,4 @@ -/* $OpenBSD: session.h,v 1.57 2004/06/20 18:35:12 henning Exp $ */ +/* $OpenBSD: session.h,v 1.58 2004/07/04 03:51:31 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -189,7 +189,7 @@ struct peer *peers; void session_socket_blockmode(int, enum blockmodes); int session_main(struct bgpd_config *, struct peer *, struct network_head *, struct filter_head *, - struct mrt_head *, int[2], int[2]); + struct mrt_head *, int[2], int[2], int[2]); void bgp_fsm(struct peer *, enum session_events); struct peer *getpeerbyaddr(struct bgpd_addr *); int imsg_compose_parent(int, pid_t, void *, u_int16_t); @@ -214,7 +214,7 @@ void prepare_listeners(struct bgpd_config *); /* rde.c */ int rde_main(struct bgpd_config *, struct network_head *, - struct filter_head *, struct mrt_head *, int[2], int[2]); + struct filter_head *, struct mrt_head *, int[2], int[2], int[2]); /* control.c */ int control_listen(void); |