ssh_setup_portfwd() should usually be looking at the new cfg, not the old
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Thu, 10 Feb 2005 01:03:08 +0000 (01:03 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Thu, 10 Feb 2005 01:03:08 +0000 (01:03 +0000)
one, so that changes to port visibility are honoured in new forwardings.

git-svn-id: svn://svn.tartarus.org/sgt/putty@5282 cda61777-01e9-0310-a592-d414129be87e

ssh.c

diff --git a/ssh.c b/ssh.c
index 2f75933..25c236e 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -3903,6 +3903,9 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg)
                    if (epf->saddr) {
                        ssh2_pkt_addstring(pktout, epf->saddr);
                    } else if (ssh->cfg.rport_acceptall) {
+                       /* XXX: ssh->cfg.rport_acceptall may not represent
+                        * what was used to open the original connection,
+                        * since it's reconfigurable. */
                        ssh2_pkt_addstring(pktout, "0.0.0.0");
                    } else {
                        ssh2_pkt_addstring(pktout, "127.0.0.1");
@@ -3949,7 +3952,7 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg)
            if (epf->type == 'L') {
                const char *err = pfd_addforward(epf->daddr, epf->dport,
                                                 epf->saddr, epf->sport,
-                                                ssh, &ssh->cfg,
+                                                ssh, cfg,
                                                 &epf->local,
                                                 epf->addressfamily);
 
@@ -3961,7 +3964,7 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg)
            } else if (epf->type == 'D') {
                const char *err = pfd_addforward(NULL, -1,
                                                 epf->saddr, epf->sport,
-                                                ssh, &ssh->cfg,
+                                                ssh, cfg,
                                                 &epf->local,
                                                 epf->addressfamily);
 
@@ -4017,7 +4020,7 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg)
                        ssh2_pkt_addbool(pktout, 1);/* want reply */
                        if (epf->saddr) {
                            ssh2_pkt_addstring(pktout, epf->saddr);
-                       } else if (ssh->cfg.rport_acceptall) {
+                       } else if (cfg->rport_acceptall) {
                            ssh2_pkt_addstring(pktout, "0.0.0.0");
                        } else {
                            ssh2_pkt_addstring(pktout, "127.0.0.1");