From 5df4be11657fc49d74e1e6b39c0003f7cf2f3772 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Wed, 18 Oct 2006 21:05:40 +0000 Subject: Check for USE_WINSOCK instead of WIN32 where the check was done to verify winsock API availability. --- ares/adig.c | 4 ++-- ares/ahost.c | 4 ++-- ares/ares_process.c | 2 +- ares/setup.h | 2 +- lib/connect.c | 4 ++-- lib/easy.c | 10 +++++----- lib/inet_ntop.c | 2 +- lib/inet_pton.c | 2 +- lib/select.c | 4 ++-- lib/sendf.c | 2 +- lib/strerror.c | 10 +++++----- lib/telnet.c | 9 +++++---- tests/libtest/first.c | 2 +- tests/server/sockfilt.c | 2 +- tests/server/util.c | 20 +++++++++++--------- tests/server/util.h | 14 ++++++++------ 16 files changed, 49 insertions(+), 44 deletions(-) diff --git a/ares/adig.c b/ares/adig.c index fb3a43222..a0f622abd 100644 --- a/ares/adig.c +++ b/ares/adig.c @@ -153,8 +153,8 @@ int main(int argc, char **argv) fd_set read_fds, write_fds; struct timeval *tvp, tv; -#ifdef WIN32 - WORD wVersionRequested = MAKEWORD(1,1); +#ifdef USE_WINSOCK + WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK); WSADATA wsaData; WSAStartup(wVersionRequested, &wsaData); #endif diff --git a/ares/ahost.c b/ares/ahost.c index 40cd08439..92eacd76a 100644 --- a/ares/ahost.c +++ b/ares/ahost.c @@ -64,8 +64,8 @@ int main(int argc, char **argv) struct in_addr addr4; struct in6_addr addr6; -#ifdef WIN32 - WORD wVersionRequested = MAKEWORD(1,1); +#ifdef USE_WINSOCK + WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK); WSADATA wsaData; WSAStartup(wVersionRequested, &wsaData); #endif diff --git a/ares/ares_process.c b/ares/ares_process.c index fb98e70b9..f34ae9e5c 100644 --- a/ares/ares_process.c +++ b/ares/ares_process.c @@ -59,7 +59,7 @@ #define TRUE 1 #endif -#if (defined(WIN32) || defined(WATT32)) && !defined(MSDOS) +#ifdef USE_WINSOCK #define GET_ERRNO() WSAGetLastError() #else #define GET_ERRNO() errno diff --git a/ares/setup.h b/ares/setup.h index 3b97e273e..a5899d883 100644 --- a/ares/setup.h +++ b/ares/setup.h @@ -121,7 +121,7 @@ * Typedef our socket type */ -#if defined(WIN32) && !defined(WATT32) +#ifdef USE_WINSOCK typedef SOCKET ares_socket_t; #define ARES_SOCKET_BAD INVALID_SOCKET #else diff --git a/lib/connect.c b/lib/connect.c index 17dddaf87..1ffb98b37 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -84,7 +84,7 @@ #define FALSE 0 #endif -#ifdef WIN32 +#ifdef USE_WINSOCK #define EINPROGRESS WSAEINPROGRESS #define EWOULDBLOCK WSAEWOULDBLOCK #define EISCONN WSAEISCONN @@ -121,7 +121,7 @@ singleipconnect(struct connectdata *conn, */ int Curl_sockerrno(void) { -#ifdef WIN32 +#ifdef USE_WINSOCK return (int)WSAGetLastError(); #else return errno; diff --git a/lib/easy.c b/lib/easy.c index a400f84f1..b2e026326 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -106,7 +106,7 @@ /* The last #include file should be: */ #include "memdebug.h" -#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__) +#ifdef USE_WINSOCK /* win32_cleanup() is for win32 socket cleanup functionality, the opposite of win32_init() */ static void win32_cleanup(void) @@ -122,12 +122,12 @@ static CURLcode win32_init(void) WSADATA wsaData; int err; -#ifdef ENABLE_IPV6 - wVersionRequested = MAKEWORD(2, 0); -#else - wVersionRequested = MAKEWORD(1, 1); +#if defined(ENABLE_IPV6) && (USE_WINSOCK < 2) + Error IPV6_requires_winsock2 #endif + wVersionRequested = MAKEWORD(USE_WINSOCK, USE_WINSOCK); + err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) diff --git a/lib/inet_ntop.c b/lib/inet_ntop.c index 3bbd9eb14..9381963f5 100644 --- a/lib/inet_ntop.c +++ b/lib/inet_ntop.c @@ -55,7 +55,7 @@ #define INADDRSZ 4 #define INT16SZ 2 -#ifdef WIN32 +#ifdef USE_WINSOCK #define EAFNOSUPPORT WSAEAFNOSUPPORT #define SET_ERRNO(e) WSASetLastError(errno = (e)) #else diff --git a/lib/inet_pton.c b/lib/inet_pton.c index c290330cb..9b9f88b5e 100644 --- a/lib/inet_pton.c +++ b/lib/inet_pton.c @@ -44,7 +44,7 @@ #define INADDRSZ 4 #define INT16SZ 2 -#ifdef WIN32 +#ifdef USE_WINSOCK #define EAFNOSUPPORT WSAEAFNOSUPPORT #endif diff --git a/lib/select.c b/lib/select.c index 7c2f2624f..b25067b6c 100644 --- a/lib/select.c +++ b/lib/select.c @@ -50,7 +50,7 @@ #include "connect.h" #include "select.h" -#if defined(WIN32) || defined(TPF) +#if defined(USE_WINSOCK) || defined(TPF) #define VERIFY_SOCK(x) /* sockets are not in range [0..FD_SETSIZE] */ #else #define VALID_SOCK(s) (((s) >= 0) && ((s) < FD_SETSIZE)) @@ -224,7 +224,7 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms) for (i = 0; i < nfds; i++) { if (ufds[i].fd == CURL_SOCKET_BAD) continue; -#ifndef WIN32 /* This is harmless and wrong on Win32 */ +#ifndef USE_WINSOCK /* winsock sockets are not in range [0..FD_SETSIZE] */ if (ufds[i].fd >= FD_SETSIZE) { errno = EINVAL; return -1; diff --git a/lib/sendf.c b/lib/sendf.c index c964849d9..e289e2046 100644 --- a/lib/sendf.c +++ b/lib/sendf.c @@ -500,7 +500,7 @@ int Curl_read(struct connectdata *conn, /* connection data */ if(-1 == nread && bytestocopy == 0) { int err = Curl_sockerrno(); -#ifdef WIN32 +#ifdef USE_WINSOCK if(WSAEWOULDBLOCK == err) #else if((EWOULDBLOCK == err) || (EAGAIN == err) || (EINTR == err)) diff --git a/lib/strerror.c b/lib/strerror.c index 5a1a83dd1..62ccfe9a0 100644 --- a/lib/strerror.c +++ b/lib/strerror.c @@ -382,7 +382,7 @@ curl_share_strerror(CURLSHcode error) #endif } -#ifdef WIN32 +#ifdef USE_WINSOCK /* This function handles most / all (?) Winsock errors cURL is able to produce. */ @@ -570,7 +570,7 @@ get_winsock_error (int err, char *buf, size_t len) buf [len-1] = '\0'; return buf; } -#endif /* WIN32 */ +#endif /* USE_WINSOCK */ /* * Our thread-safe and smart strerror() replacement. @@ -595,7 +595,7 @@ const char *Curl_strerror(struct connectdata *conn, int err) max = sizeof(conn->syserr_buf)-1; *buf = '\0'; -#ifdef WIN32 +#ifdef USE_WINSOCK #ifdef _WIN32_WCE buf[0]=0; @@ -619,7 +619,7 @@ const char *Curl_strerror(struct connectdata *conn, int err) snprintf(buf, max, "Unknown error %d (%#x)", err, err); } #endif -#else /* not native Windows coming up */ +#else /* not USE_WINSOCK coming up */ /* These should be atomic and hopefully thread-safe */ #ifdef HAVE_STRERROR_R @@ -647,7 +647,7 @@ const char *Curl_strerror(struct connectdata *conn, int err) #else /* HAVE_STRERROR_R */ strncpy(buf, strerror(err), max); #endif /* end of HAVE_STRERROR_R */ -#endif /* end of ! Windows */ +#endif /* end of ! USE_WINSOCK */ buf[max] = '\0'; /* make sure the string is zero terminated */ diff --git a/lib/telnet.c b/lib/telnet.c index 34cb8db20..3d3961078 100644 --- a/lib/telnet.c +++ b/lib/telnet.c @@ -102,7 +102,7 @@ #define CURL_SB_EOF(x) (x->subpointer >= x->subend) #define CURL_SB_LEN(x) (x->subend - x->subpointer) -#ifdef WIN32 +#ifdef USE_WINSOCK typedef FARPROC WSOCK2_FUNC; static CURLcode check_wsock2 ( struct SessionHandle *data ); #endif @@ -171,7 +171,7 @@ struct TELNET { TelnetReceive telrcv_state; }; -#ifdef WIN32 +#ifdef USE_WINSOCK static CURLcode check_wsock2 ( struct SessionHandle *data ) { @@ -210,6 +210,7 @@ check_wsock2 ( struct SessionHandle *data ) return CURLE_OK; } #endif + static CURLcode init_telnet(struct connectdata *conn) { @@ -1090,7 +1091,7 @@ CURLcode Curl_telnet(struct connectdata *conn, bool *done) CURLcode code; struct SessionHandle *data = conn->data; curl_socket_t sockfd = conn->sock[FIRSTSOCKET]; -#ifdef WIN32 +#ifdef USE_WINSOCK HMODULE wsock2; WSOCK2_FUNC close_event_func; WSOCK2_FUNC create_event_func; @@ -1125,7 +1126,7 @@ CURLcode Curl_telnet(struct connectdata *conn, bool *done) if(code) return code; -#ifdef WIN32 +#ifdef USE_WINSOCK /* ** This functionality only works with WinSock >= 2.0. So, ** make sure have it. diff --git a/tests/libtest/first.c b/tests/libtest/first.c index fda1a7fb5..782daca17 100644 --- a/tests/libtest/first.c +++ b/tests/libtest/first.c @@ -12,7 +12,7 @@ int test(char *url); int select_test (int num_fds, fd_set *rd, fd_set *wr, fd_set *exc, struct timeval *tv) { -#ifdef WIN32 +#ifdef USE_WINSOCK /* Winsock doesn't like no socket set in 'rd', 'wr' or 'exc'. This is * case when 'num_fds <= 0. So sleep. */ diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index bf60a2c64..66c5e4b89 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -238,7 +238,7 @@ static int juggle(curl_socket_t *sockfdp, do { rc = select(maxfd + 1, &fds_read, &fds_write, &fds_err, &timeout); - } while((rc == -1) && (ourerrno() == EINTR)); + } while((rc == -1) && (our_sockerrno() == EINTR)); switch(rc) { case -1: diff --git a/tests/server/util.c b/tests/server/util.c index 7bf8bdc82..ddc4bc949 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -60,13 +60,13 @@ const struct in6_addr in6addr_any = {{ IN6ADDR_ANY_INIT }}; #endif /* - * ourerrno() returns the errno (or equivalent) on this platform to - * hide platform specific for the function that calls this. + * our_sockerrno() returns the *socket-related* errno (or equivalent) on this + * platform to hide platform specific for the function that calls this. */ -int ourerrno(void) +int our_sockerrno(void) { -#ifdef WIN32 - return (int)GetLastError(); +#ifdef USE_WINSOCK + return (int)WSAGetLastError(); #else return errno; #endif @@ -115,13 +115,15 @@ void win32_perror (const char *msg) fprintf(stderr, "%s: ", msg); fprintf(stderr, "%s\n", buf); } +#endif /* WIN32 */ +#ifdef USE_WINSOCK void win32_init(void) { WORD wVersionRequested; WSADATA wsaData; int err; - wVersionRequested = MAKEWORD(2, 0); + wVersionRequested = MAKEWORD(USE_WINSOCK, USE_WINSOCK); err = WSAStartup(wVersionRequested, &wsaData); @@ -131,8 +133,8 @@ void win32_init(void) exit(1); } - if ( LOBYTE( wsaData.wVersion ) != 2 || - HIBYTE( wsaData.wVersion ) != 0 ) { + if ( LOBYTE( wsaData.wVersion ) != USE_WINSOCK || + HIBYTE( wsaData.wVersion ) != USE_WINSOCK ) { WSACleanup(); perror("Winsock init failed"); @@ -145,7 +147,7 @@ void win32_cleanup(void) { WSACleanup(); } -#endif /* WIN32 */ +#endif /* USE_WINSOCK */ /* set by the main code to point to where the test dir is */ const char *path="."; diff --git a/tests/server/util.h b/tests/server/util.h index acda12159..17d82f156 100644 --- a/tests/server/util.h +++ b/tests/server/util.h @@ -23,7 +23,7 @@ * $Id$ ***************************************************************************/ -int ourerrno(void); +int our_sockerrno(void); void logmsg(const char *msg, ...); #ifndef FALSE @@ -44,19 +44,21 @@ extern const char *path; #define sleep(sec) Sleep ((sec)*1000) +#undef perror +#define perror(m) win32_perror(m) +void win32_perror (const char *msg); +#endif /* WIN32 */ + +#ifdef USE_WINSOCK #define EINPROGRESS WSAEINPROGRESS #define EWOULDBLOCK WSAEWOULDBLOCK #define EISCONN WSAEISCONN #define ENOTSOCK WSAENOTSOCK #define ECONNREFUSED WSAECONNREFUSED -#undef perror -#define perror(m) win32_perror(m) -void win32_perror (const char *msg); - void win32_init(void); void win32_cleanup(void); -#endif /* WIN32 */ +#endif /* USE_WINSOCK */ /* returns the path name to the test case file */ char *test2file(long testno); -- cgit v1.2.3