X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/403941c05d088f9c179e635cec6813cc7f1d2652..c00c193154b8922d3f88a65d341027c54ffdd123:/ssh.c diff --git a/ssh.c b/ssh.c index 0aec421e..23afa6aa 100644 --- a/ssh.c +++ b/ssh.c @@ -4427,12 +4427,19 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg) epfrec = add234(ssh->portfwds, pfrec); if (epfrec != pfrec) { + if (epfrec->status == DESTROY) { + /* + * We already have a port forwarding up and running + * with precisely these parameters. Hence, no need + * to do anything; simply re-tag the existing one + * as KEEP. + */ + epfrec->status = KEEP; + } /* - * We already have a port forwarding with precisely - * these parameters. Hence, no need to do anything; - * simply tag the existing one as KEEP. + * Anything else indicates that there was a duplicate + * in our input, which we'll silently ignore. */ - epfrec->status = KEEP; free_portfwd(pfrec); } else { pfrec->status = CREATE;