#### Pre-Submission Checklist - [x] Commit message has the format required by CONTRIBUTING guide - [x] Commits are split per component (core, individual modules, libs, utils, ...) - [x] Each component has a single commit (if not, squash them into one commit) - [x] No commits to README files for modules (changes must be done to docbook files in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change - [ ] Small bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds new functionality) - [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist: - [ ] PR should be backported to stable branches - [x] Tested changes locally - [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
A new parameter timeout_mode is added. This parameter defines if timeouts are enabled, and in which unit timeout values are expressed. - 0 - Timeouts are disabled. - 1 - Timeout values are in seconds (default). - 2 - Timeout values are in milliseconds.
For reference, see discussion in: https://github.com/kamailio/kamailio/pull/3611
Implementation detail:
``` default global timeout = 0 (unconfigured).
Parse connections as usual. If they have a timeout configured, use it.
In mod_init: if global timeout == 0 (unconfigured), and timeout_mode is 1 or 2: if timeout_mode == 1 -> global timeout = 4 (seconds) if timeout_mode == 2 -> global timeout = 4000 (milliseconds)
for each connection "conn" (fixup): if timeout_mode is not 1 or 2 -> conn.timeout = 0 (to reflect the fact that no timeout will be handled) else if conn.timeout is not configured -> conn.timeout = global timeout (in seconds or milliseconds, depending on timeout_mode).
When doing Curl requests (curL_request_url): if timeout_mode == 1: set CURLOPT_TIMEOUT if timeout_mode == 2: set CURLOPT_TIMEOUT_MS ```
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3615
-- Commit Summary --
* http_client: Add parameter timeout_mode (timeout in seconds or milliseconds)
-- File Changes --
M src/modules/http_client/curlcon.c (27) M src/modules/http_client/curlcon.h (14) M src/modules/http_client/doc/http_client_admin.xml (35) M src/modules/http_client/functions.c (21) M src/modules/http_client/http_client.c (32) M src/modules/http_client/http_client.h (11)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3615.patch https://github.com/kamailio/kamailio/pull/3615.diff