mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-04 04:52:47 -05:00
sshshare: notify cl when last downstream goes away.
The check_termination function in ssh2connection is supposed to be called whenever it's possible that we've run out of (a) channels, and (b) sharing downstreams. I've been calling it on every channel close, but apparently completely forgot to add a callback from sshshare.c that also arranges to call it when we run out of downstreams.
This commit is contained in:
5
ssh.h
5
ssh.h
@ -236,6 +236,9 @@ struct ConnectionLayerVtable {
|
||||
void (*sharing_queue_global_request)(
|
||||
ConnectionLayer *cl, ssh_sharing_connstate *connstate);
|
||||
|
||||
/* Indicate that the last downstream has disconnected */
|
||||
void (*sharing_no_more_downstreams)(ConnectionLayer *cl);
|
||||
|
||||
/* Query whether the connection layer is doing agent forwarding */
|
||||
int (*agent_forwarding_permitted)(ConnectionLayer *cl);
|
||||
|
||||
@ -281,6 +284,8 @@ struct ConnectionLayer {
|
||||
((cl)->vt->delete_sharing_channel(cl, ch))
|
||||
#define ssh_sharing_queue_global_request(cl, cs) \
|
||||
((cl)->vt->sharing_queue_global_request(cl, cs))
|
||||
#define ssh_sharing_no_more_downstreams(cl) \
|
||||
((cl)->vt->sharing_no_more_downstreams(cl))
|
||||
#define ssh_agent_forwarding_permitted(cl) \
|
||||
((cl)->vt->agent_forwarding_permitted(cl))
|
||||
#define ssh_terminal_size(cl, w, h) ((cl)->vt->terminal_size(cl, w, h))
|
||||
|
Reference in New Issue
Block a user