diff options
-rw-r--r-- | lib/vtls/schannel.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index cb70d5309..96c1dbc67 100644 --- a/lib/vtls/schannel.c +++ b/lib/vtls/schannel.c @@ -1631,13 +1631,13 @@ schannel_send(struct connectdata *conn, int sockindex, /* send entire message or fail */ while(len > (size_t)written) { ssize_t this_write; - timediff_t timeleft; + timediff_t timeout_ms; int what; this_write = 0; - timeleft = Curl_timeleft(conn->data, NULL, FALSE); - if(timeleft < 0) { + timeout_ms = Curl_timeleft(conn->data, NULL, FALSE); + if(timeout_ms < 0) { /* we already got the timeout */ failf(conn->data, "schannel: timed out sending data " "(bytes sent: %zd)", written); @@ -1645,9 +1645,9 @@ schannel_send(struct connectdata *conn, int sockindex, written = -1; break; } - if(timeleft > TIME_T_MAX) - timeleft = TIME_T_MAX; - what = SOCKET_WRITABLE(conn->sock[sockindex], (time_t)timeleft); + if(!timeout_ms || timeout_ms > TIME_T_MAX) + timeout_ms = TIME_T_MAX; + what = SOCKET_WRITABLE(conn->sock[sockindex], (time_t)timeout_ms); if(what < 0) { /* fatal error */ failf(conn->data, "select/poll on SSL socket, errno: %d", SOCKERRNO); |