From f8c9f9df8c6d537b3db60823b5920d78705b929b Mon Sep 17 00:00:00 2001 From: jacob Date: Thu, 17 Feb 2005 02:00:01 +0000 Subject: [PATCH] ssh_do_close() should close any listening sockets associated with port-forwardings. git-svn-id: svn://svn.tartarus.org/sgt/putty@5325 cda61777-01e9-0310-a592-d414129be87e --- ssh.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ssh.c b/ssh.c index 825731e8..e2e80772 100644 --- a/ssh.c +++ b/ssh.c @@ -2409,6 +2409,20 @@ static int ssh_do_close(Ssh ssh, int notify_exit) sfree(c); } } + /* + * Go through port-forwardings, and close any associated + * listening sockets. + */ + if (ssh->portfwds) { + struct ssh_portfwd *pf; + while (NULL != (pf = index234(ssh->portfwds, 0))) { + /* Dispose of any listening socket. */ + if (pf->local) + pfd_terminate(pf->local); + del234(ssh->portfwds, pf); /* moving next one to index 0 */ + free_portfwd(pf); + } + } return ret; } -- 2.11.0