X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=windows%2Fwinnet.c;h=a5fc383419d6abee981cbeb34764177fcf7b425a;hb=12e019bafc75cb441e965c63e15dfceeaf71ca1e;hp=1c574e31a52a70d4fd0ccdb53627aeddbda8920f;hpb=d86e01e8362019ca2845f56878e299c84e77d177;p=PuTTY.git diff --git a/windows/winnet.c b/windows/winnet.c index 1c574e31..a5fc3834 100644 --- a/windows/winnet.c +++ b/windows/winnet.c @@ -205,7 +205,10 @@ int sk_startup(int hi, int lo) void sk_init(void) { - winsock2_module = winsock_module = LoadLibrary("WS2_32.DLL"); +#ifndef NO_IPV6 + winsock2_module = +#endif + winsock_module = LoadLibrary("WS2_32.DLL"); if (!winsock_module) { winsock_module = LoadLibrary("WSOCK32.DLL"); } @@ -1470,10 +1473,11 @@ int select_result(WPARAM wParam, LPARAM lParam) #ifndef NO_IPV6 if (isa.ss_family == AF_INET && s->localhost_only && - !ipv4_is_local_addr(((struct sockaddr_in *)&isa)->sin_addr)) { + !ipv4_is_local_addr(((struct sockaddr_in *)&isa)->sin_addr)) #else - if (s->localhost_only && !ipv4_is_local_addr(isa.sin_addr)) { + if (s->localhost_only && !ipv4_is_local_addr(isa.sin_addr)) #endif + { p_closesocket(t); /* dodgy WinSock let nonlocal through */ } else if (plug_accepting(s->plug, (void*)t)) { p_closesocket(t); /* denied or error */ @@ -1569,6 +1573,17 @@ static void sk_tcp_set_frozen(Socket sock, int is_frozen) s->frozen_readable = 0; } +void socket_reselect_all(void) +{ + Actual_Socket s; + int i; + + for (i = 0; (s = index234(sktree, i)) != NULL; i++) { + if (!s->frozen) + do_select(s->s, 1); + } +} + /* * For Plink: enumerate all sockets currently active. */