]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - unix/uxproxy.c
Giant const-correctness patch of doom!
[PuTTY.git] / unix / uxproxy.c
index 9dee690e1d9c934c8eabeb97931081450000b39a..f230604a2c41634cec5afe725b99cdff3685c02b 100644 (file)
@@ -30,8 +30,6 @@ struct Socket_localproxy_tag {
     bufchain pending_output_data;
     bufchain pending_input_data;
     enum { EOF_NO, EOF_PENDING, EOF_SENT } outgoingeof;
-
-    void *privptr;
 };
 
 static int localproxy_select_result(int fd, int event);
@@ -186,18 +184,6 @@ static void sk_localproxy_flush (Socket s)
     /* do nothing */
 }
 
-static void sk_localproxy_set_private_ptr (Socket s, void *ptr)
-{
-    Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
-    ps->privptr = ptr;
-}
-
-static void * sk_localproxy_get_private_ptr (Socket s)
-{
-    Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
-    return ps->privptr;
-}
-
 static void sk_localproxy_set_frozen (Socket s, int is_frozen)
 {
     Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
@@ -244,7 +230,7 @@ static int localproxy_select_result(int fd, int event)
     return 1;
 }
 
-Socket platform_new_connection(SockAddr addr, char *hostname,
+Socket platform_new_connection(SockAddr addr, const char *hostname,
                               int port, int privport,
                               int oobinline, int nodelay, int keepalive,
                               Plug plug, Conf *conf)
@@ -258,8 +244,6 @@ Socket platform_new_connection(SockAddr addr, char *hostname,
        sk_localproxy_write_oob,
        sk_localproxy_write_eof,
        sk_localproxy_flush,
-       sk_localproxy_set_private_ptr,
-       sk_localproxy_get_private_ptr,
        sk_localproxy_set_frozen,
        sk_localproxy_socket_error
     };
@@ -288,6 +272,7 @@ Socket platform_new_connection(SockAddr addr, char *hostname,
     if (pipe(to_cmd_pipe) < 0 ||
        pipe(from_cmd_pipe) < 0) {
        ret->error = dupprintf("pipe: %s", strerror(errno));
+        sfree(cmd);
        return (Socket)ret;
     }
     cloexec(to_cmd_pipe[1]);
@@ -306,8 +291,8 @@ Socket platform_new_connection(SockAddr addr, char *hostname,
        dup2(from_cmd_pipe[1], 1);
        close(to_cmd_pipe[0]);
        close(from_cmd_pipe[1]);
-       fcntl(0, F_SETFD, 0);
-       fcntl(1, F_SETFD, 0);
+       noncloexec(0);
+       noncloexec(1);
        execl("/bin/sh", "sh", "-c", cmd, (void *)NULL);
        _exit(255);
     }