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
This commit is contained in:
20
lib/select.c
20
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;
|
||||
|
||||
Reference in New Issue
Block a user