There's no real need for portfwd.c to reference `cfg' directly, when
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 12 Jan 2003 14:56:19 +0000 (14:56 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 12 Jan 2003 14:56:19 +0000 (14:56 +0000)
it only needs one item from it and that can easily be passed in from
the call site in ssh.c.

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

portfwd.c
ssh.c
ssh.h

index 94aec6e..010838e 100644 (file)
--- a/portfwd.c
+++ b/portfwd.c
@@ -204,7 +204,7 @@ static int pfd_accepting(Plug p, void *sock)
  sets up a listener on the local machine on (srcaddr:)port
  */
 char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
-                    void *backhandle)
+                    void *backhandle, int acceptall)
 {
     static struct plug_function_table fn_table = {
        pfd_closing,
@@ -230,7 +230,7 @@ char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
     pr->waiting = NULL;
     pr->backhandle = backhandle;
 
-    pr->s = s = new_listener(srcaddr, port, (Plug) pr, !cfg.lport_acceptall);
+    pr->s = s = new_listener(srcaddr, port, (Plug) pr, !acceptall);
     if ((err = sk_socket_error(s)) != NULL) {
        sfree(pr);
        return err;
diff --git a/ssh.c b/ssh.c
index 70f3a06..dde5bfa 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -3121,7 +3121,7 @@ static void ssh1_protocol(Ssh ssh, unsigned char *in, int inlen, int ispkt)
            if (sport && dport) {
                if (type == 'L') {
                    pfd_addforward(host, dport, *saddr ? saddr : NULL,
-                                  sport, ssh);
+                                  sport, ssh, ssh->cfg.lport_acceptall);
                    logeventf(ssh, "Local port %.*s%.*s%.*s%.*s%d%.*s"
                              " forwarding to %s:%.*s%.*s%d%.*s",
                              (int)(*saddr?strlen(saddr):0), *saddr?saddr:NULL,
@@ -5185,7 +5185,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, int ispkt)
            if (sport && dport) {
                if (type == 'L') {
                    pfd_addforward(host, dport, *saddr ? saddr : NULL,
-                                  sport, ssh);
+                                  sport, ssh, ssh->cfg.lport_acceptall);
                    logeventf(ssh, "Local port %.*s%.*s%.*s%.*s%d%.*s"
                              " forwarding to %s:%.*s%.*s%d%.*s",
                              (int)(*saddr?strlen(saddr):0), *saddr?saddr:NULL,
diff --git a/ssh.h b/ssh.h
index 640a7f1..56f9f26 100644 (file)
--- a/ssh.h
+++ b/ssh.h
@@ -258,7 +258,7 @@ void ssh_send_port_open(void *channel, char *hostname, int port, char *org);
 /* Exports from portfwd.c */
 extern char *pfd_newconnect(Socket * s, char *hostname, int port, void *c);
 extern char *pfd_addforward(char *desthost, int destport, char *srcaddr,
-                           int port, void *backhandle);
+                           int port, void *backhandle, int acceptall);
 extern void pfd_close(Socket s);
 extern int pfd_send(Socket s, char *data, int len);
 extern void pfd_confirm(Socket s);