mirror of git://git.gnupg.org/gnupg.git
dirmngr,w32: Hack around a select problem.
* dirmngr/dns.c (FD_SETSIZE): Bump up to 1024. (dns_poll): Return an error instead of hitting an assertion failure. -- For unknown reasons socket() return fd with values 244, 252, 268. The latter is above the FD_SETSIZE of 256. It seems that select has been build with a highler FD_SETSIZE limit. Bump up to a reasonable large value. A better solution would be to grab some code from npth_eselect to replace select. We could also use npth_eselect direclty in dns-stuff.c instead of using dns_res_poll. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
aec89a7297
commit
d51499fdc5
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
#if _WIN32
|
#if _WIN32
|
||||||
#ifndef FD_SETSIZE
|
#ifndef FD_SETSIZE
|
||||||
#define FD_SETSIZE 256
|
#define FD_SETSIZE 1024
|
||||||
#endif
|
#endif
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
|
@ -1107,7 +1107,8 @@ static int dns_poll(int fd, short events, int timeout) {
|
||||||
if (!events)
|
if (!events)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
assert(fd >= 0 && (unsigned)fd < FD_SETSIZE);
|
if (fd < 0 || (unsigned)fd >= FD_SETSIZE)
|
||||||
|
return EINVAL;
|
||||||
|
|
||||||
FD_ZERO(&rset);
|
FD_ZERO(&rset);
|
||||||
FD_ZERO(&wset);
|
FD_ZERO(&wset);
|
||||||
|
|
Loading…
Reference in New Issue