mirror of
https://github.com/curl/curl.git
synced 2025-03-19 15:40:42 +08:00
sws: retry send() on EWOULDBLOCK
Fixes spurious test 1060 and 1061 failures on OpenBSD, Solaris and more. Bug: https://curl.haxx.se/mail/lib-2017-01/0009.html Reported-by: Christian Weisgerber
This commit is contained in:
parent
d3a313c099
commit
62e67c7772
@ -5,7 +5,7 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@ -1200,14 +1200,21 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
|
||||
size_t num = count;
|
||||
if(num > 200)
|
||||
num = 200;
|
||||
|
||||
retry:
|
||||
written = swrite(sock, buffer, num);
|
||||
if(written < 0) {
|
||||
if((EWOULDBLOCK == errno) || (EAGAIN == errno)) {
|
||||
wait_ms(10);
|
||||
goto retry;
|
||||
}
|
||||
sendfailure = TRUE;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
logmsg("Sent off %zd bytes", written);
|
||||
}
|
||||
|
||||
/* write to file as well */
|
||||
fwrite(buffer, 1, (size_t)written, dump);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user