mirror of https://github.com/aria2/aria2
Merge d57666d618
into 8f5eaa4bbb
commit
aa10039148
|
@ -174,6 +174,18 @@ void SelectEventPoll::poll(const struct timeval& tv)
|
||||||
|
|
||||||
memcpy(&rfds, &rfdset_, sizeof(fd_set));
|
memcpy(&rfds, &rfdset_, sizeof(fd_set));
|
||||||
memcpy(&wfds, &wfdset_, sizeof(fd_set));
|
memcpy(&wfds, &wfdset_, sizeof(fd_set));
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
fd_set efds;
|
||||||
|
FD_ZERO(&efds);
|
||||||
|
FD_SET(dummySocket_, &efds);
|
||||||
|
|
||||||
|
if (rfds.fd_count <= 0) {
|
||||||
|
FD_SET(dummySocket_, &rfds);
|
||||||
|
}
|
||||||
|
if (wfds.fd_count <= 0) {
|
||||||
|
FD_SET(dummySocket_, &wfds);
|
||||||
|
}
|
||||||
|
#endif // __MINGW32__
|
||||||
#ifdef ENABLE_ASYNC_DNS
|
#ifdef ENABLE_ASYNC_DNS
|
||||||
|
|
||||||
for (auto& i : nameResolverEntries_) {
|
for (auto& i : nameResolverEntries_) {
|
||||||
|
@ -190,11 +202,10 @@ void SelectEventPoll::poll(const struct timeval& tv)
|
||||||
do {
|
do {
|
||||||
struct timeval ttv = tv;
|
struct timeval ttv = tv;
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
|
// TODO
|
||||||
// winsock will report non-blocking connect() errors in exceptfds, unlike
|
// winsock will report non-blocking connect() errors in exceptfds, unlike
|
||||||
// posix, which will mark such sockets as writable.
|
// posix, which will mark such sockets as writable.
|
||||||
// So just pass in our write socket set to exceptfds, too, to get connect()
|
retval = select(fdmax_ + 1, &rfds, &wfds, &efds, &ttv);
|
||||||
// error notifications on Windows.
|
|
||||||
retval = select(fdmax_ + 1, &rfds, &wfds, &wfds, &ttv);
|
|
||||||
#else // !__MINGW32__
|
#else // !__MINGW32__
|
||||||
retval = select(fdmax_ + 1, &rfds, &wfds, nullptr, &ttv);
|
retval = select(fdmax_ + 1, &rfds, &wfds, nullptr, &ttv);
|
||||||
#endif // !__MINGW32__
|
#endif // !__MINGW32__
|
||||||
|
@ -243,8 +254,6 @@ void SelectEventPoll::updateFdSet()
|
||||||
FD_ZERO(&rfdset_);
|
FD_ZERO(&rfdset_);
|
||||||
FD_ZERO(&wfdset_);
|
FD_ZERO(&wfdset_);
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
FD_SET(dummySocket_, &rfdset_);
|
|
||||||
FD_SET(dummySocket_, &wfdset_);
|
|
||||||
fdmax_ = dummySocket_;
|
fdmax_ = dummySocket_;
|
||||||
#else // !__MINGW32__
|
#else // !__MINGW32__
|
||||||
fdmax_ = 0;
|
fdmax_ = 0;
|
||||||
|
|
Loading…
Reference in New Issue