]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
func_curl: Don't hold exclusive lock when performing HTTP request.
authorJoshua Colp <jcolp@digium.com>
Sat, 14 Mar 2015 02:00:29 +0000 (02:00 +0000)
committerJoshua Colp <jcolp@digium.com>
Sat, 14 Mar 2015 02:00:29 +0000 (02:00 +0000)
This code originally kept a lock held when performing the HTTP
request to ensure that the options provided to curl remain valid.
This doesn't seem to be necessary these days and holding the lock
caused requests to happen sequentially instead of in parallel.

ASTERISK-18708 #close
Reported by: Dave Cabot
........

Merged revisions 432948 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432949 65c4cc65-6c06-0410-ace0-fbb531ad65f3

funcs/func_curl.c

index 12b2c7c6f7b2e9005c89124a033c52b0f8801c30..1e152b73a03f98a1e734c982a40b4eda58649921 100644 (file)
@@ -654,6 +654,7 @@ static int acf_curl_helper(struct ast_channel *chan, const char *cmd, char *info
                        curl_easy_setopt(*curl, cur->key, cur->value);
                }
        }
+       AST_LIST_UNLOCK(&global_curl_info);
 
        if (chan && (store = ast_channel_datastore_find(chan, &curl_info, NULL))) {
                list = store->data;
@@ -692,7 +693,6 @@ static int acf_curl_helper(struct ast_channel *chan, const char *cmd, char *info
        if (store) {
                AST_LIST_UNLOCK(list);
        }
-       AST_LIST_UNLOCK(&global_curl_info);
 
        if (args.postdata) {
                curl_easy_setopt(*curl, CURLOPT_POST, 0);