From: jacob Date: Thu, 17 Feb 2005 02:00:01 +0000 (+0000) Subject: ssh_do_close() should close any listening sockets associated with X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/commitdiff_plain/f8c9f9df8c6d537b3db60823b5920d78705b929b?hp=80ffa58b3185ab7a88830235b2b3a4bd3ec4021a 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 --- 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; }