[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnurl] 150/411: multi: align WinSock mask variables in Curl_multi_wait
From: |
gnunet |
Subject: |
[gnurl] 150/411: multi: align WinSock mask variables in Curl_multi_wait |
Date: |
Wed, 13 Jan 2021 01:19:25 +0100 |
This is an automated email from the git hooks/post-receive script.
nikita pushed a commit to branch master
in repository gnurl.
commit 1060955a617dceddeccf6ba1505fe92df317d40b
Author: Marc Hoersken <info@marc-hoersken.de>
AuthorDate: Sat Sep 12 22:02:25 2020 +0200
multi: align WinSock mask variables in Curl_multi_wait
Also skip pre-checking sockets to set timeout_ms to 0
after the first socket has been detected to be ready.
Reviewed-by: rcombs on github
Reviewed-by: Daniel Stenberg
Follow up to #5886
---
lib/multi.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/lib/multi.c b/lib/multi.c
index f374b2721..4cc7c5ae6 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1183,9 +1183,9 @@ static CURLMcode Curl_multi_wait(struct Curl_multi *multi,
#endif
if(bitmap & GETSOCK_READSOCK(i)) {
#ifdef USE_WINSOCK
- if(SOCKET_READABLE(sockbunch[i], 0) > 0)
+ if(timeout_ms && SOCKET_READABLE(sockbunch[i], 0) > 0)
timeout_ms = 0;
- mask |= (FD_READ|FD_ACCEPT|FD_CLOSE);
+ mask |= FD_READ|FD_ACCEPT|FD_CLOSE;
#else
ufds[nfds].fd = sockbunch[i];
ufds[nfds].events = POLLIN;
@@ -1195,9 +1195,9 @@ static CURLMcode Curl_multi_wait(struct Curl_multi *multi,
}
if(bitmap & GETSOCK_WRITESOCK(i)) {
#ifdef USE_WINSOCK
- if(SOCKET_WRITABLE(sockbunch[i], 0) > 0)
+ if(timeout_ms && SOCKET_WRITABLE(sockbunch[i], 0) > 0)
timeout_ms = 0;
- mask |= (FD_WRITE|FD_CONNECT|FD_CLOSE);
+ mask |= FD_WRITE|FD_CONNECT|FD_CLOSE;
#else
ufds[nfds].fd = sockbunch[i];
ufds[nfds].events = POLLOUT;
@@ -1221,34 +1221,34 @@ static CURLMcode Curl_multi_wait(struct Curl_multi
*multi,
/* Add external file descriptions from poll-like struct curl_waitfd */
for(i = 0; i < extra_nfds; i++) {
#ifdef USE_WINSOCK
- long events = 0;
+ long mask = 0;
extra_fds[i].revents = 0;
pre_poll.fd = extra_fds[i].fd;
pre_poll.events = 0;
pre_poll.revents = 0;
if(extra_fds[i].events & CURL_WAIT_POLLIN) {
- events |= (FD_READ|FD_ACCEPT|FD_CLOSE);
+ mask |= FD_READ|FD_ACCEPT|FD_CLOSE;
pre_poll.events |= POLLIN;
}
if(extra_fds[i].events & CURL_WAIT_POLLPRI) {
- events |= FD_OOB;
+ mask |= FD_OOB;
pre_poll.events |= POLLPRI;
}
if(extra_fds[i].events & CURL_WAIT_POLLOUT) {
- events |= (FD_WRITE|FD_CONNECT|FD_CLOSE);
+ mask |= FD_WRITE|FD_CONNECT|FD_CLOSE;
pre_poll.events |= POLLOUT;
}
if(Curl_poll(&pre_poll, 1, 0) > 0) {
if(pre_poll.revents & POLLIN)
extra_fds[i].revents |= CURL_WAIT_POLLIN;
- if(pre_poll.revents & POLLOUT)
- extra_fds[i].revents |= CURL_WAIT_POLLOUT;
if(pre_poll.revents & POLLPRI)
extra_fds[i].revents |= CURL_WAIT_POLLPRI;
+ if(pre_poll.revents & POLLOUT)
+ extra_fds[i].revents |= CURL_WAIT_POLLOUT;
if(extra_fds[i].revents)
timeout_ms = 0;
}
- if(WSAEventSelect(extra_fds[i].fd, multi->wsa_event, events) != 0)
+ if(WSAEventSelect(extra_fds[i].fd, multi->wsa_event, mask) != 0)
return CURLM_INTERNAL_ERROR;
#else
ufds[nfds].fd = extra_fds[i].fd;
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnurl] 233/411: strerror: Revert to local codepage for Windows error string, (continued)
- [gnurl] 233/411: strerror: Revert to local codepage for Windows error string, gnunet, 2021/01/12
- [gnurl] 226/411: mbedtls: add missing header when defining MBEDTLS_DEBUG, gnunet, 2021/01/12
- [gnurl] 159/411: CHECKSRC: document two missing warnings, gnunet, 2021/01/12
- [gnurl] 133/411: curl: make file2memory use dynbuf, gnunet, 2021/01/12
- [gnurl] 154/411: man pages: switch to https://example.com URLs, gnunet, 2021/01/12
- [gnurl] 259/411: packages/OS400: make the source code-style compliant, gnunet, 2021/01/12
- [gnurl] 241/411: src/tool_filetime: disable -Wformat on mingw for this file, gnunet, 2021/01/12
- [gnurl] 132/411: curl: make file2string use dynbuf, gnunet, 2021/01/12
- [gnurl] 180/411: pingpong: use a dynbuf for the *_pp_sendf() function, gnunet, 2021/01/12
- [gnurl] 143/411: test3015: verify stdout "as text", gnunet, 2021/01/12
- [gnurl] 150/411: multi: align WinSock mask variables in Curl_multi_wait,
gnunet <=
- [gnurl] 145/411: CI/azure: disable test 571 in the msys2 builds, gnunet, 2021/01/12
- [gnurl] 163/411: docs/RESOURCES: remove, gnunet, 2021/01/12
- [gnurl] 169/411: krb5: merged security.c and krb specific FTP functions in here, gnunet, 2021/01/12
- [gnurl] 179/411: dynbuf: add Curl_dyn_vaddf, gnunet, 2021/01/12
- [gnurl] 137/411: vtls: deduplicate client certificates in ssl_config_data, gnunet, 2021/01/12
- [gnurl] 196/411: TODO: SSH over HTTPS proxy with more backends, gnunet, 2021/01/12
- [gnurl] 138/411: tool_urlglob: fix compiler warning "unreachable code", gnunet, 2021/01/12
- [gnurl] 189/411: ftp: make a 552 response return CURLE_REMOTE_DISK_FULL, gnunet, 2021/01/12
- [gnurl] 236/411: projects/build-wolfssl.bat: fix the copyright year range, gnunet, 2021/01/12
- [gnurl] 212/411: curl: make --libcurl show binary posts correctly, gnunet, 2021/01/12