X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=windows%2Fwinnet.c;h=a5fc383419d6abee981cbeb34764177fcf7b425a;hb=90e7bf4228fa74fda1c65cb2597c9d964329f702;hp=f8838bec302ee0eff2738225ae2755bb93065e06;hpb=dc03c3948f7e0abff77464b96edba7f45edb2040;p=PuTTY.git diff --git a/windows/winnet.c b/windows/winnet.c index f8838bec..a5fc3834 100644 --- a/windows/winnet.c +++ b/windows/winnet.c @@ -1473,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 */ @@ -1572,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. */