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");
}
#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 */
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.
*/