summaryrefslogtreecommitdiff
path: root/mux.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2010-05-10 11:53:02 +1000
committerDamien Miller <djm@mindrot.org>2010-05-10 11:53:02 +1000
commit85c50d7858424aa38a560142c04c93a70d50dff7 (patch)
treef409fb156f7cc784c490627e642abf21637953a0 /mux.c
parent50af79b1186b26425d100b1cf1ba615b72124c0e (diff)
- djm@cvs.openbsd.org 2010/04/23 22:27:38
[mux.c] set "detach_close" flag when registering channel cleanup callbacks. This causes the channel to close normally when its fds close and hangs when terminating a mux slave using ~. bz#1758; ok markus@
Diffstat (limited to 'mux.c')
-rw-r--r--mux.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mux.c b/mux.c
index b0d4abe19..ac477a0e7 100644
--- a/mux.c
+++ b/mux.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: mux.c,v 1.15 2010/04/10 05:48:16 djm Exp $ */ 1/* $OpenBSD: mux.c,v 1.16 2010/04/23 22:27:38 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> 3 * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
4 * 4 *
@@ -454,7 +454,7 @@ process_mux_new_session(u_int rid, Channel *c, Buffer *m, Buffer *r)
454 454
455 channel_send_open(nc->self); 455 channel_send_open(nc->self);
456 channel_register_open_confirm(nc->self, mux_session_confirm, cctx); 456 channel_register_open_confirm(nc->self, mux_session_confirm, cctx);
457 channel_register_cleanup(nc->self, mux_master_session_cleanup_cb, 0); 457 channel_register_cleanup(nc->self, mux_master_session_cleanup_cb, 1);
458 458
459 /* prepare reply */ 459 /* prepare reply */
460 /* XXX defer until mux_session_confirm() fires */ 460 /* XXX defer until mux_session_confirm() fires */
@@ -826,7 +826,7 @@ process_mux_stdio_fwd(u_int rid, Channel *c, Buffer *m, Buffer *r)
826 debug2("%s: channel_new: %d linked to control channel %d", 826 debug2("%s: channel_new: %d linked to control channel %d",
827 __func__, nc->self, nc->ctl_chan); 827 __func__, nc->self, nc->ctl_chan);
828 828
829 channel_register_cleanup(nc->self, mux_master_session_cleanup_cb, 0); 829 channel_register_cleanup(nc->self, mux_master_session_cleanup_cb, 1);
830 830
831 /* prepare reply */ 831 /* prepare reply */
832 /* XXX defer until channel confirmed */ 832 /* XXX defer until channel confirmed */