net: lib: http: ensure SYS_FOREVER_MS behavior

The http_client_req() function's timeout parameter is allowed
to be SYS_FOREVER_MS. However, K_MSEC() does not convert this
to a proper k_timeout_t, so sys_timepoint_calc() ends up
returning 0, which is causes immediate timeouts.

Check for this case specifically and force value passed to
sys_timepoint_calc() to be correct.

Signed-off-by: Pete Skeggs <peter.skeggs@nordicsemi.no>
This commit is contained in:
Pete Skeggs 2024-09-28 13:43:13 -07:00 committed by Henrik Brix Andersen
parent f55cf43ddf
commit 09fab7e680
1 changed files with 1 additions and 1 deletions

View File

@ -562,7 +562,7 @@ int http_client_req(int sock, struct http_request *req,
int total_sent = 0;
int ret, total_recv, i;
const char *method;
k_timeout_t req_timeout = K_MSEC(timeout);
k_timeout_t req_timeout = (timeout == SYS_FOREVER_MS) ? K_FOREVER : K_MSEC(timeout);
k_timepoint_t req_end_timepoint = sys_timepoint_calc(req_timeout);
if (sock < 0 || req == NULL || req->response == NULL ||