It's impossible to write a checklist from scratch without leaving
[u/mdw/putty] / winnet.c
index e94075b..56d1500 100644 (file)
--- a/winnet.c
+++ b/winnet.c
@@ -224,7 +224,7 @@ char *winsock_error_string(int error)
     }
 }
 
-SockAddr sk_namelookup(char *host, char **canonicalname)
+SockAddr sk_namelookup(const char *host, char **canonicalname)
 {
     SockAddr ret = smalloc(sizeof(struct SockAddr_tag));
     unsigned long a;
@@ -362,9 +362,10 @@ SockAddr sk_namelookup(char *host, char **canonicalname)
     return ret;
 }
 
-SockAddr sk_nonamelookup(char *host)
+SockAddr sk_nonamelookup(const char *host)
 {
     SockAddr ret = smalloc(sizeof(struct SockAddr_tag));
+    ret->error = NULL;
     ret->family = AF_UNSPEC;
     strncpy(ret->hostname, host, lenof(ret->hostname));
     ret->hostname[lenof(ret->hostname)-1] = '\0';
@@ -459,8 +460,8 @@ static void sk_tcp_flush(Socket s)
 }
 
 static void sk_tcp_close(Socket s);
-static int sk_tcp_write(Socket s, char *data, int len);
-static int sk_tcp_write_oob(Socket s, char *data, int len);
+static int sk_tcp_write(Socket s, const char *data, int len);
+static int sk_tcp_write_oob(Socket s, const char *data, int len);
 static void sk_tcp_set_private_ptr(Socket s, void *ptr);
 static void *sk_tcp_get_private_ptr(Socket s);
 static void sk_tcp_set_frozen(Socket s, int is_frozen);
@@ -923,7 +924,7 @@ void try_send(Actual_Socket s)
     }
 }
 
-static int sk_tcp_write(Socket sock, char *buf, int len)
+static int sk_tcp_write(Socket sock, const char *buf, int len)
 {
     Actual_Socket s = (Actual_Socket) sock;
 
@@ -941,7 +942,7 @@ static int sk_tcp_write(Socket sock, char *buf, int len)
     return bufchain_size(&s->output_data);
 }
 
-static int sk_tcp_write_oob(Socket sock, char *buf, int len)
+static int sk_tcp_write_oob(Socket sock, const char *buf, int len)
 {
     Actual_Socket s = (Actual_Socket) sock;
 
@@ -972,23 +973,8 @@ int select_result(WPARAM wParam, LPARAM lParam)
 
     /* wParam is the socket itself */
 
-    /*
-     * One user has reported an assertion failure in tree234 which
-     * indicates a null element pointer has been passed to a
-     * find*234 function. The following find234 is the only one in
-     * the whole program that I can see being capable of doing
-     * this, hence I'm forced to conclude that WinSock is capable
-     * of sending me netevent messages with wParam==0. I want to
-     * know what the rest of the message is if it does so!
-     */
-    if (wParam == 0) {
-       char *str;
-       str = dupprintf("Strange WinSock message: wp=%08x lp=%08x",
-                       (int)wParam, (int)lParam);
-       logevent(NULL, str);
-       connection_fatal(NULL, str);
-       sfree(str);
-    }
+    if (wParam == 0)
+       return 1;                      /* boggle */
 
     s = find234(sktree, (void *) wParam, cmpforsearch);
     if (!s)