X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/ab0873ab80d0c927315329be0cbeb96bb4ace89a..c85623f918b8a6c639afc15604414f9b113bb20d:/winnet.c diff --git a/winnet.c b/winnet.c index 0b93fcd2..f617b0fc 100644 --- a/winnet.c +++ b/winnet.c @@ -59,7 +59,7 @@ ((ntohl(addr.s_addr) & 0xFF000000L) == 0x7F000000L) struct Socket_tag { - struct socket_function_table *fn; + const struct socket_function_table *fn; /* the above variable absolutely *must* be the first in this structure */ char *error; SOCKET s; @@ -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,7 +362,7 @@ 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; @@ -460,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); @@ -471,7 +471,7 @@ extern char *do_select(SOCKET skt, int startup); Socket sk_register(void *sock, Plug plug) { - static struct socket_function_table fn_table = { + static const struct socket_function_table fn_table = { sk_tcp_plug, sk_tcp_close, sk_tcp_write, @@ -528,7 +528,7 @@ Socket sk_register(void *sock, Plug plug) Socket sk_new(SockAddr addr, int port, int privport, int oobinline, int nodelay, Plug plug) { - static struct socket_function_table fn_table = { + static const struct socket_function_table fn_table = { sk_tcp_plug, sk_tcp_close, sk_tcp_write, @@ -706,7 +706,7 @@ Socket sk_new(SockAddr addr, int port, int privport, int oobinline, Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only) { - static struct socket_function_table fn_table = { + static const struct socket_function_table fn_table = { sk_tcp_plug, sk_tcp_close, sk_tcp_write, @@ -924,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; @@ -942,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; @@ -973,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)