diff -u3 -Hb nmap-3.59ALPHA5\scan_engine.cc .\scan_engine.cc --- nmap-3.59ALPHA5\scan_engine.cc Thu Aug 26 06:35:50 2004 +++ .\scan_engine.cc Fri Aug 27 14:36:43 2004 @@ -1607,8 +1607,9 @@ #endif hss->lastprobe_sent = probe->sent = USI->now; rc = connect(CP->sd, (struct sockaddr *)&sock, socklen); + if (rc == -1) + connect_errno = socket_errno(); gettimeofday(&USI->now, NULL); - if (rc == -1) connect_errno = socket_errno(); PacketTrace::traceConnect(IPPROTO_TCP, (sockaddr *) &sock, socklen, rc, connect_errno, &USI->now); /* This counts as probe being sent, so update structures */ @@ -2000,8 +2001,15 @@ gettimeofday(&USI->now, NULL); - if (selectres == -1) + if (selectres == -1) { +#ifdef WIN32 + int err = WSAGetLastError(); + if (err == WSANOTINITIALISED) /* ignore; sigdie() called */ + exit(0); + WSASetLastError(err); +#endif pfatal("select failed in do_one_select_round()"); + } if (!selectres) return false; @@ -2106,6 +2114,10 @@ snprintf(buf, sizeof(buf), "Strange SO_ERROR from connection to %s (%d) -- bailing scan", host->target->targetipstr(), optval); pfatal(buf); break; +#ifdef WIN32 + case WSANOTINITIALISED: /* ignore; sigdie() called */ + break; +#endif default: snprintf(buf, sizeof(buf), "Strange read error from %s (%d)", host->target->targetipstr(), optval); perror(buf); diff -u3 -Hb nmap-3.59ALPHA5\targets.cc .\targets.cc --- nmap-3.59ALPHA5\targets.cc Thu Aug 26 02:30:17 2004 +++ .\targets.cc Fri Aug 27 14:24:53 2004 @@ -963,6 +963,10 @@ foundsomething = 1; newstate = HOST_DOWN; break; +#ifdef WIN32 + case WSANOTINITIALISED: /* ignore; sigdie() called */ + break; +#endif default: snprintf (buf, sizeof(buf), "Strange read error from %s", hostbatch[hostindex]->targetipstr()); fprintf(stderr, "%s: %s\n", buf, strerror(sock_err));