Unverified Commit 0d85eed3 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Curl_timeleft: change return type to timediff_t

returning 'time_t' is problematic when that type is unsigned and we
return values less than zero to signal "already expired", used in
several places in the code.

Closes #2021
parent 9dfc541d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -354,7 +354,7 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
{
  CURLcode result = CURLE_OK;
  struct Curl_easy *data = conn->data;
  long timeout;
  timediff_t timeout;
  struct curltime now = Curl_now();
  struct Curl_dns_entry *temp_entry;

+5 −5
Original line number Diff line number Diff line
@@ -179,12 +179,12 @@ singleipconnect(struct connectdata *conn,
 *
 * @unittest: 1303
 */
time_t Curl_timeleft(struct Curl_easy *data,
timediff_t Curl_timeleft(struct Curl_easy *data,
                         struct curltime *nowp,
                         bool duringconnect)
{
  int timeout_set = 0;
  time_t timeout_ms = duringconnect?DEFAULT_CONNECT_TIMEOUT:0;
  timediff_t timeout_ms = duringconnect?DEFAULT_CONNECT_TIMEOUT:0;
  struct curltime now;

  /* if a timeout is set, use the most restrictive one */
@@ -1148,7 +1148,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */
  struct curltime before = Curl_now();
  CURLcode result = CURLE_COULDNT_CONNECT;

  time_t timeout_ms = Curl_timeleft(data, &before, TRUE);
  timediff_t timeout_ms = Curl_timeleft(data, &before, TRUE);

  if(timeout_ms < 0) {
    /* a precaution, no need to continue if time already is up */
+4 −3
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@

#include "nonblock.h" /* for curlx_nonblock(), formerly Curl_nonblock() */
#include "sockaddr.h"
#include "timeval.h"

CURLcode Curl_is_connected(struct connectdata *conn,
                           int sockindex,
@@ -35,7 +36,7 @@ CURLcode Curl_connecthost(struct connectdata *conn,

/* generic function that returns how much time there's left to run, according
   to the timeouts set */
time_t Curl_timeleft(struct Curl_easy *data,
timediff_t Curl_timeleft(struct Curl_easy *data,
                         struct curltime *nowp,
                         bool duringconnect);

+3 −3
Original line number Diff line number Diff line
@@ -333,10 +333,10 @@ static CURLcode AcceptServerConnect(struct connectdata *conn)
 * Curl_pgrsTime(..., TIMER_STARTACCEPT);
 *
 */
static time_t ftp_timeleft_accept(struct Curl_easy *data)
static timediff_t ftp_timeleft_accept(struct Curl_easy *data)
{
  time_t timeout_ms = DEFAULT_ACCEPT_TIMEOUT;
  time_t other;
  timediff_t timeout_ms = DEFAULT_ACCEPT_TIMEOUT;
  timediff_t other;
  struct curltime now;

  if(data->set.accepttimeout > 0)
+1 −1
Original line number Diff line number Diff line
@@ -1318,7 +1318,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
  struct SingleRequest *k;
  time_t timeout_ms;
  time_t recv_timeout_ms;
  time_t send_timeout_ms;
  timediff_t send_timeout_ms;
  int control;

  if(!GOOD_EASY_HANDLE(data))
Loading