@nchaigne commented on this pull request.


In src/modules/http_client/doc/http_client_admin.xml:

> @@ -187,15 +187,35 @@ modparam("http_client", "maxdatasize", 2000)
 			</para>
 			<para>
 			<emphasis>
-				Default value is zero, i.e.,
-				the timeout function is disabled.
+				Default value is 4.

Current behaviour is messy and confusing. Depending on the order of declarations in configuration, the actual behaviour changes.
I propose to add parameter "timeout_mode" as suggested by Daniel, and rework the timeout behaviour as described hereafter.

A curl timeout will always be set. It makes no sense to allow to block forever, and it's dangerous.
If need be, user can configure a very large timeout.

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):
    if timeout_mode == 0 -> global timeout = 4 (seconds)
    else -> global timeout = 4000 (milliseconds)

  for each connection "conn":
    if conn.timeout is configured, keep its value.
    else: conn.timeout = global timeout (in seconds or milliseconds, depending on timeout_mode).

When doing Curl requests (curL_request_url):
  if timeout_mode == 0: set CURLOPT_TIMEOUT
  else: set CURLOPT_TIMEOUT_MS

Let me know what you think.
I you agree, I will do a pull request with this proposal.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/pull/3611/review/1692191634@github.com>