Control of 'addr' is now handed over to {platform_,}new_connection() and
[u/mdw/putty] / portfwd.c
index e21ed3a..e61c05b 100644 (file)
--- a/portfwd.c
+++ b/portfwd.c
@@ -86,7 +86,7 @@ struct PFwdPrivate {
     int buflen;
 };
 
-static int pfd_closing(Plug plug, char *error_msg, int error_code,
+static int pfd_closing(Plug plug, const char *error_msg, int error_code,
                       int calling_back)
 {
     struct PFwdPrivate *pr = (struct PFwdPrivate *) plug;
@@ -331,8 +331,8 @@ static void pfd_sent(Plug plug, int bufsize)
 /*
  * Called when receiving a PORT OPEN from the server
  */
-char *pfd_newconnect(Socket *s, char *hostname, int port, void *c,
-                    const Config *cfg)
+const char *pfd_newconnect(Socket *s, char *hostname, int port,
+                          void *c, const Config *cfg)
 {
     static const struct plug_function_table fn_table = {
        pfd_closing,
@@ -342,15 +342,18 @@ char *pfd_newconnect(Socket *s, char *hostname, int port, void *c,
     };
 
     SockAddr addr;
-    char *err, *dummy_realhost;
+    const char *err;
+    char *dummy_realhost;
     struct PFwdPrivate *pr;
 
     /*
      * Try to find host.
      */
     addr = name_lookup(hostname, port, &dummy_realhost, cfg);
-    if ((err = sk_addr_error(addr)) != NULL)
+    if ((err = sk_addr_error(addr)) != NULL) {
+       sk_addr_free(addr);
        return err;
+    }
 
     /*
      * Open socket.
@@ -372,7 +375,6 @@ char *pfd_newconnect(Socket *s, char *hostname, int port, void *c,
     }
 
     sk_set_private_ptr(*s, pr);
-    sk_addr_free(addr);
     return NULL;
 }
 
@@ -380,7 +382,7 @@ char *pfd_newconnect(Socket *s, char *hostname, int port, void *c,
  called when someone connects to the local port
  */
 
-static int pfd_accepting(Plug p, void *sock)
+static int pfd_accepting(Plug p, OSSocket sock)
 {
     static const struct plug_function_table fn_table = {
        pfd_closing,
@@ -390,7 +392,7 @@ static int pfd_accepting(Plug p, void *sock)
     };
     struct PFwdPrivate *pr, *org;
     Socket s;
-    char *err;
+    const char *err;
 
     org = (struct PFwdPrivate *)p;
     pr = snew(struct PFwdPrivate);
@@ -437,8 +439,8 @@ static int pfd_accepting(Plug p, void *sock)
 /* Add a new forwarding from port -> desthost:destport
  sets up a listener on the local machine on (srcaddr:)port
  */
-char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
-                    void *backhandle, const Config *cfg)
+const char *pfd_addforward(char *desthost, int destport, char *srcaddr,
+                          int port, void *backhandle, const Config *cfg)
 {
     static const struct plug_function_table fn_table = {
        pfd_closing,
@@ -447,7 +449,7 @@ char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
        pfd_accepting
     };
 
-    char *err;
+    const char *err;
     struct PFwdPrivate *pr;
     Socket s;