lib: prefer var = time(NULL) over time(&var)

Following up on previous occurrences showing up as gcc warnings, replace
the remaining `time(&var)` calls with `var = time(NULL)`, though these
aren't specifically causing compiler warnings. These are in the TFTP
client code (`lib/tftp.c`), except one which is in a debug branch in
`lib/http_aws_sigv4.c`.

What's unexplainable is that this patch seems to mitigate TFTP tests
often hanging or going into an infinite loop on GHA windows workflows
with MSYS2, mingw-w64 and MSVC (Cygwin is unaffected):
  https://github.com/curl/curl/pull/13599#issuecomment-2119372376
TFTP hangs did not entirely disappear though, so could be unrelated.

`time()` docs:
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/time-time32-time64
https://manpages.debian.org/bookworm/manpages-dev/time.2.en.html

Follow-up to 58ca0a2f07 #13800
Follow-up to d0728c9109 #13643
Closes #13815
This commit is contained in:
Viktor Szakats 2024-05-28 16:16:01 +02:00
parent 0b520e1250
commit 3b9569c3e2
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201
2 changed files with 6 additions and 6 deletions

View File

@ -694,7 +694,7 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
if(force_timestamp) if(force_timestamp)
clock = 0; clock = 0;
else else
time(&clock); clock = time(NULL);
} }
#else #else
clock = time(NULL); clock = time(NULL);

View File

@ -245,7 +245,7 @@ static CURLcode tftp_set_timeouts(struct tftp_state_data *state)
(int)state->state, timeout_ms, state->retry_time, state->retry_max); (int)state->state, timeout_ms, state->retry_time, state->retry_max);
/* init RX time */ /* init RX time */
time(&state->rx_time); state->rx_time = time(NULL);
return CURLE_OK; return CURLE_OK;
} }
@ -626,7 +626,7 @@ static CURLcode tftp_rx(struct tftp_state_data *state,
else { else {
state->state = TFTP_STATE_RX; state->state = TFTP_STATE_RX;
} }
time(&state->rx_time); state->rx_time = time(NULL);
break; break;
case TFTP_EVENT_OACK: case TFTP_EVENT_OACK:
@ -646,7 +646,7 @@ static CURLcode tftp_rx(struct tftp_state_data *state,
/* we're ready to RX data */ /* we're ready to RX data */
state->state = TFTP_STATE_RX; state->state = TFTP_STATE_RX;
time(&state->rx_time); state->rx_time = time(NULL);
break; break;
case TFTP_EVENT_TIMEOUT: case TFTP_EVENT_TIMEOUT:
@ -753,7 +753,7 @@ static CURLcode tftp_tx(struct tftp_state_data *state, tftp_event_t event)
} }
/* This is the expected packet. Reset the counters and send the next /* This is the expected packet. Reset the counters and send the next
block */ block */
time(&state->rx_time); state->rx_time = time(NULL);
state->block++; state->block++;
} }
else else
@ -1208,7 +1208,7 @@ static timediff_t tftp_state_timeout(struct Curl_easy *data,
if(current > state->rx_time + state->retry_time) { if(current > state->rx_time + state->retry_time) {
if(event) if(event)
*event = TFTP_EVENT_TIMEOUT; *event = TFTP_EVENT_TIMEOUT;
time(&state->rx_time); /* update even though we received nothing */ state->rx_time = time(NULL); /* update even though we received nothing */
} }
return timeout_ms; return timeout_ms;