]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Allow setting CURL timeout from curl API command
authorTravis Cross <tc@traviscross.com>
Sun, 16 Nov 2014 19:20:07 +0000 (19:20 +0000)
committerTravis Cross <tc@traviscross.com>
Sun, 16 Nov 2014 19:31:00 +0000 (19:31 +0000)
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.

src/mod/applications/mod_curl/mod_curl.c

index 68c21f61e48054cc55f7ce59ae59377654ec4b28..86e2924073aef493e821d6e1e25f2df719cf4716 100644 (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");
                                        }