diff options
author | Gisle Vanem <gvanem@yahoo.no> | 2015-12-07 14:27:29 -0500 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2015-12-07 14:27:55 -0500 |
commit | e1b6b2219d2e5b44c50b9809a19321ee0d0c77db (patch) | |
tree | ec78e53e1c801f1f34d85ecebb74a25f7600f35b /lib/select.c | |
parent | ec26399bf9c2b3dc6c68eb847530bfd669598e47 (diff) | |
download | curl-e1b6b2219d2e5b44c50b9809a19321ee0d0c77db.tar.gz |
lwip: Fix compatibility issues with later versions
The name of the header guard in lwIP's <lwip/opt.h> has changed from
'__LWIP_OPT_H__' to 'LWIP_HDR_OPT_H' (bug #35874 in May 2015).
Other fixes:
- In curl_setup.h, the problem with an old PSDK doesn't apply if lwIP is
used.
- In memdebug.h, the 'socket' should be undefined first due to lwIP's
lwip_socket() macro.
- In curl_addrinfo.c lwIP's getaddrinfo() + freeaddrinfo() macros need
special handling because they were undef'ed in memdebug.h.
- In select.c we can't use preprocessor conditionals inside select if
MSVC and select is a macro, as it is with lwIP.
http://curl.haxx.se/mail/lib-2015-12/0023.html
http://curl.haxx.se/mail/lib-2015-12/0024.html
Diffstat (limited to 'lib/select.c')
-rw-r--r-- | lib/select.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/select.c b/lib/select.c index 24dc5fd79..5d1639747 100644 --- a/lib/select.c +++ b/lib/select.c @@ -316,15 +316,15 @@ int Curl_socket_check(curl_socket_t readfd0, /* two sockets to read from */ curl_socket_t is unsigned in such cases and thus -1 is the largest value). */ +#ifdef USE_WINSOCK r = select((int)maxfd + 1, -#ifndef USE_WINSOCK - &fds_read, - &fds_write, -#else fds_read.fd_count ? &fds_read : NULL, fds_write.fd_count ? &fds_write : NULL, -#endif &fds_err, ptimeout); +#else + r = select((int)maxfd + 1, &fds_read, &fds_write, &fds_err, ptimeout); +#endif + if(r != -1) break; error = SOCKERRNO; @@ -505,19 +505,19 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms) pending_tv.tv_sec = 0; pending_tv.tv_usec = 0; } + +#ifdef USE_WINSOCK r = select((int)maxfd + 1, -#ifndef USE_WINSOCK - &fds_read, &fds_write, &fds_err, -#else /* WinSock select() can't handle fd_sets with zero bits set, so don't give it such arguments. See the comment about this in Curl_check_socket(). */ fds_read.fd_count ? &fds_read : NULL, fds_write.fd_count ? &fds_write : NULL, - fds_err.fd_count ? &fds_err : NULL, + fds_err.fd_count ? &fds_err : NULL, ptimeout); +#else + r = select((int)maxfd + 1, &fds_read, &fds_write, &fds_err, ptimeout); #endif - ptimeout); if(r != -1) break; error = SOCKERRNO; |