diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | clientloop.c | 4 | ||||
-rw-r--r-- | clientloop.h | 3 | ||||
-rw-r--r-- | mux.c | 4 |
4 files changed, 12 insertions, 4 deletions
@@ -4,6 +4,11 @@ | |||
4 | [ssh-keygen.1] | 4 | [ssh-keygen.1] |
5 | a little more info on certificate validity; | 5 | a little more info on certificate validity; |
6 | requested by Ross L Richardson, and provided by djm | 6 | requested by Ross L Richardson, and provided by djm |
7 | - dtucker@cvs.openbsd.org 2012/08/17 00:45:45 | ||
8 | [clientloop.c clientloop.h mux.c] | ||
9 | Force a clean shutdown of ControlMaster client sessions when the ~. escape | ||
10 | sequence is used. This means that ~. should now work in mux clients even | ||
11 | if the server is no longer responding. Found by tedu, ok djm. | ||
7 | 12 | ||
8 | 20120830 | 13 | 20120830 |
9 | - (dtucker) [moduli] Import new moduli file. | 14 | - (dtucker) [moduli] Import new moduli file. |
diff --git a/clientloop.c b/clientloop.c index 1c1a77088..65664cbcd 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.c,v 1.240 2012/06/20 04:42:58 djm Exp $ */ | 1 | /* $OpenBSD: clientloop.c,v 1.241 2012/08/17 00:45:45 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -1046,6 +1046,8 @@ process_escapes(Channel *c, Buffer *bin, Buffer *bout, Buffer *berr, | |||
1046 | if (c && c->ctl_chan != -1) { | 1046 | if (c && c->ctl_chan != -1) { |
1047 | chan_read_failed(c); | 1047 | chan_read_failed(c); |
1048 | chan_write_failed(c); | 1048 | chan_write_failed(c); |
1049 | mux_master_session_cleanup_cb(c->self, | ||
1050 | NULL); | ||
1049 | return 0; | 1051 | return 0; |
1050 | } else | 1052 | } else |
1051 | quit_pending = 1; | 1053 | quit_pending = 1; |
diff --git a/clientloop.h b/clientloop.h index 3bb794879..d2baa0324 100644 --- a/clientloop.h +++ b/clientloop.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.h,v 1.29 2011/09/09 22:46:44 djm Exp $ */ | 1 | /* $OpenBSD: clientloop.h,v 1.30 2012/08/17 00:45:45 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -76,4 +76,5 @@ void muxserver_listen(void); | |||
76 | void muxclient(const char *); | 76 | void muxclient(const char *); |
77 | void mux_exit_message(Channel *, int); | 77 | void mux_exit_message(Channel *, int); |
78 | void mux_tty_alloc_failed(Channel *); | 78 | void mux_tty_alloc_failed(Channel *); |
79 | void mux_master_session_cleanup_cb(int, void *); | ||
79 | 80 | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: mux.c,v 1.36 2012/07/06 01:37:21 djm Exp $ */ | 1 | /* $OpenBSD: mux.c,v 1.37 2012/08/17 00:45:45 dtucker 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 | * |
@@ -188,7 +188,7 @@ static const struct { | |||
188 | 188 | ||
189 | /* Cleanup callback fired on closure of mux slave _session_ channel */ | 189 | /* Cleanup callback fired on closure of mux slave _session_ channel */ |
190 | /* ARGSUSED */ | 190 | /* ARGSUSED */ |
191 | static void | 191 | void |
192 | mux_master_session_cleanup_cb(int cid, void *unused) | 192 | mux_master_session_cleanup_cb(int cid, void *unused) |
193 | { | 193 | { |
194 | Channel *cc, *c = channel_by_id(cid); | 194 | Channel *cc, *c = channel_by_id(cid); |