Module: kamailio
Branch: master
Commit: b882db36bbb7f7f13366bcc8f1db9f50910d2c0c
URL: https://github.com/kamailio/kamailio/commit/b882db36bbb7f7f13366bcc8f1db9f5…
Author: Nicolas C <nchaigne(a)capgemini.fr>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2023-10-24T20:36:39+02:00
http_client: Add parameter timeout_mode (timeout in seconds or milliseconds)
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.
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
---
Modified: src/modules/http_client/curlcon.c
Modified: src/modules/http_client/curlcon.h
Modified: src/modules/http_client/doc/http_client_admin.xml
Modified: src/modules/http_client/functions.c
Modified: src/modules/http_client/http_client.c
Modified: src/modules/http_client/http_client.h
---
Diff: https://github.com/kamailio/kamailio/commit/b882db36bbb7f7f13366bcc8f1db9f5…
Patch: https://github.com/kamailio/kamailio/commit/b882db36bbb7f7f13366bcc8f1db9f5…
#### 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.patchhttps://github.com/kamailio/kamailio/pull/3615.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3615
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3615(a)github.com>
- Add new function to clear OpenSSL errors prior to any SSL_* call
- Apply function where appropriate
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [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
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [x] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
This PR proposes similar fixes like https://github.com/kamailio/kamailio/pull/3607.
OpenSSL docs suggest that the error stack must be empty for [SSL_get_error() to work reliably](https://www.openssl.org/docs/man3.0/man3/SSL_get_error.html).
_Note: This has not been tested like previous PR and any feedback of course is appreciated._
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3612
-- Commit Summary --
* cdp: Add and apply cdp_openssl_clear_errors function
-- File Changes --
M src/modules/cdp/cdp_tls.c (2)
M src/modules/cdp/receiver.c (3)
A src/modules/cdp/utils.c (21)
M src/modules/cdp/utils.h (2)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3612.patchhttps://github.com/kamailio/kamailio/pull/3612.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3612
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3612(a)github.com>