Allow setting CURL timeout from curl API command

Previously the `timeout` option to the curl API command set only
`CURLOPT_CONNECTTIMEOUT` -- the maximum amount of time that curl will
wait to connect to the server.  If the server accepted the connection
but then never replied, curl would wait essentially forever.  There
was no way to set `CURLOPT_TIMEOUT` -- the maximum amount of time the
entire request operation is allowed to take.

With this change, the `timeout` option sets `CURLOPT_TIMEOUT`.  We've
earlier added a `connect-timeout` option to set
`CURLOPT_CONNECTTIMEOUT`.

This is a change to existing behavior.  However, it's likely that this
is what people expected it to do all along.  The curl application
call, for example, accepts both `curl_connect_timeout` and
`curl_timeout` channel variables, with the latter setting
`CURLOPT_TIMEOUT`.

If people really were relying on this odd behavior, we'll rename the
option with the new behavior to something else and come up with a
transition plan.
This commit is contained in:
Travis Cross 2014-11-16 19:20:07 +00:00
parent 1ee325df48
commit f1df8d6096
1 changed files with 1 additions and 1 deletions

View File

@ -959,7 +959,7 @@ SWITCH_STANDARD_API(curl_function)
int tmp = atoi(argv[i]);
if (tmp > 0) {
options.connect_timeout = tmp;
options.timeout = tmp;
} else {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "Invalid timeout!\n");
}