[OpenSIPS-Devel] [OpenSIPS/opensips] 47776b: rest_client: Improve cURL compatibility when using...

Liviu Chircu noreply at github.com
Wed Feb 21 12:57:31 UTC 2024


  Branch: refs/heads/3.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 47776bc008632c93402dae84bcd7f5b45c8669ac
      https://github.com/OpenSIPS/opensips/commit/47776bc008632c93402dae84bcd7f5b45c8669ac
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M async.h
    M modules/rest_client/rest_client.c
    M modules/rest_client/rest_methods.c
    M modules/rest_client/rest_methods.h
    M modules/tm/async.c

  Log Message:
  -----------
  rest_client: Improve cURL compatibility when using async()

This patch aims to fix a regression in 1ecb32491f, breaking the
"SUCCESS" async download test case.  Mitigation as follows:

* improved detection for the "Request Sent" state, before putting the
    download on async hold.  It seems that whenever both the
    CURLINFO_CONNECT_TIME_T and CURLINFO_REQUEST_SIZE become available,
    the file descriptor can be safely polled on, awaiting the reply.
    Note: there is no official cURL library mechanism to detect this
    state.

* make the async() statement timeout accessible to modules.  This fixes
a bug where a GET on a dead HTTP server would time out after
`curl_timeout` seconds, instead of `async()` seconds (lower).

Fixes #3286

(cherry picked from commit 7e85fddb6e463cbdfb43015c3384ef5dbb5e5896)



To unsubscribe from these emails, change your notification settings at https://github.com/OpenSIPS/opensips/settings/notifications



More information about the Devel mailing list