From 666231f91b6d55c5d70468f4910b1789ac479086 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 12 Mar 2014 13:47:24 -0500 Subject: [PATCH] BNPH-6149: allow to use system curl again, fix some types on auth_scheme values to all be long, don't use curl private function in our wrapper. This may cause missing symbol curl_easy_setopt with visibility turned on, if it does that, please let me know --- configure.ac | 2 +- src/include/switch_curl.h | 1 + src/mod/applications/mod_httapi/mod_httapi.c | 6 +++--- .../mod_format_cdr/mod_format_cdr.c | 4 ++-- .../event_handlers/mod_json_cdr/mod_json_cdr.c | 4 ++-- .../mod_spidermonkey/mod_spidermonkey_curl.c | 2 +- src/mod/languages/mod_v8/src/fscurl.cpp | 2 +- src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c | 4 ++-- src/mod/xml_int/mod_xml_curl/mod_xml_curl.c | 6 +++--- src/switch_curl.c | 15 --------------- 10 files changed, 16 insertions(+), 30 deletions(-) diff --git a/configure.ac b/configure.ac index ebecc772c8..ab4d6b49dd 100644 --- a/configure.ac +++ b/configure.ac @@ -1030,7 +1030,7 @@ fi if test "$ac_cv_use_system_curl" = "yes" ; then AC_CACHE_CHECK([whether to use system libcurl library], [ac_cv_curl_usable], [ - AC_CHECK_LIB(curl, Curl_setopt, [ac_cv_curl_usable="yes"], [ac_cv_curl_usable="no"]) + AC_CHECK_LIB(curl, curl_easy_setopt, [ac_cv_curl_usable="yes"], [ac_cv_curl_usable="no"]) ]) fi diff --git a/src/include/switch_curl.h b/src/include/switch_curl.h index b8c7b9e67a..e97cafa69f 100644 --- a/src/include/switch_curl.h +++ b/src/include/switch_curl.h @@ -51,6 +51,7 @@ SWITCH_DECLARE(const char *) switch_curl_easy_strerror(switch_CURLcode errornum SWITCH_DECLARE(void) switch_curl_init(void); SWITCH_DECLARE(void) switch_curl_destroy(void); SWITCH_DECLARE(switch_status_t) switch_curl_process_form_post_params(switch_event_t *event, switch_CURL *curl_handle, struct curl_httppost **formpostp); +#define switch_curl_easy_setopt curl_easy_setopt SWITCH_END_EXTERN_C diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 954d4b31aa..4e3c2b716e 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -86,7 +86,7 @@ typedef struct client_profile_s { uint32_t enable_ssl_verifyhost; char *cookie_file; switch_hash_t *vars_map; - int auth_scheme; + long auth_scheme; int timeout; profile_perms_t perms; char *ua; @@ -1749,7 +1749,7 @@ static switch_status_t do_config(void) char *cookie_file = NULL; char *ua = "mod_httapi/1.0"; hash_node_t *hash_node; - int auth_scheme = CURLAUTH_BASIC; + long auth_scheme = CURLAUTH_BASIC; need_vars_map = 0; vars_map = NULL; @@ -1791,7 +1791,7 @@ static switch_status_t do_config(void) } else if (!strcasecmp(val, "GSS-NEGOTIATE")) { auth_scheme |= CURLAUTH_GSSNEGOTIATE; } else if (!strcasecmp(val, "any")) { - auth_scheme = CURLAUTH_ANY; + auth_scheme = (long)CURLAUTH_ANY; } } else if (!strcasecmp(var, "disable-100-continue") && !switch_true(val)) { disable100continue = 0; diff --git a/src/mod/event_handlers/mod_format_cdr/mod_format_cdr.c b/src/mod/event_handlers/mod_format_cdr/mod_format_cdr.c index ca6dbe83a5..7995bef751 100644 --- a/src/mod/event_handlers/mod_format_cdr/mod_format_cdr.c +++ b/src/mod/event_handlers/mod_format_cdr/mod_format_cdr.c @@ -79,7 +79,7 @@ struct cdr_profile { int prefix_a; int disable100continue; int rotate; - int auth_scheme; + long auth_scheme; int timeout; switch_memory_pool_t *pool; }; @@ -671,7 +671,7 @@ switch_status_t mod_format_cdr_load_profile_xml(switch_xml_t xprofile) } else if (!strcasecmp(val, "GSS-NEGOTIATE")) { profile->auth_scheme |= CURLAUTH_GSSNEGOTIATE; } else if (!strcasecmp(val, "any")) { - profile->auth_scheme = CURLAUTH_ANY; + profile->auth_scheme = (long)CURLAUTH_ANY; } } else if (!strcasecmp(var, "encode-values") && !zstr(val)) { profile->encode_values = switch_true(val) ? ENCODING_DEFAULT : ENCODING_NONE; diff --git a/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.c b/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.c index 5fc4064ee0..ecce4427b8 100644 --- a/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.c +++ b/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.c @@ -69,7 +69,7 @@ static struct { int prefix_a; int disable100continue; int rotate; - int auth_scheme; + long auth_scheme; switch_memory_pool_t *pool; switch_event_node_t *node; int encode_values; @@ -689,7 +689,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_json_cdr_load) } else if (!strcasecmp(val, "GSS-NEGOTIATE")) { globals.auth_scheme |= CURLAUTH_GSSNEGOTIATE; } else if (!strcasecmp(val, "any")) { - globals.auth_scheme = CURLAUTH_ANY; + globals.auth_scheme = (long)CURLAUTH_ANY; } } else if (!strcasecmp(var, "encode-values") && !zstr(val)) { globals.encode_values = switch_true(val) ? ENCODING_DEFAULT : ENCODING_NONE; diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.c b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.c index a704a32c26..c78bec8e4d 100644 --- a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.c +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.c @@ -146,7 +146,7 @@ static JSBool curl_run(JSContext * cx, JSObject * obj, uintN argc, jsval * argv, if (argc > 5) { cred = JS_GetStringBytes(JS_ValueToString(cx, argv[5])); if (!zstr(cred)) { - switch_curl_easy_setopt(co->curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); + switch_curl_easy_setopt(co->curl_handle, CURLOPT_HTTPAUTH, (long)CURLAUTH_ANY); switch_curl_easy_setopt(co->curl_handle, CURLOPT_USERPWD, cred); } } diff --git a/src/mod/languages/mod_v8/src/fscurl.cpp b/src/mod/languages/mod_v8/src/fscurl.cpp index d81c9d9caa..3c0184c4ee 100644 --- a/src/mod/languages/mod_v8/src/fscurl.cpp +++ b/src/mod/languages/mod_v8/src/fscurl.cpp @@ -165,7 +165,7 @@ JS_CURL_FUNCTION_IMPL(Run) String::Utf8Value str4(info[5]); cred = js_safe_str(*str4); if (cred.length() > 0) { - switch_curl_easy_setopt(_curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); + switch_curl_easy_setopt(_curl_handle, CURLOPT_HTTPAUTH, (long)CURLAUTH_ANY); switch_curl_easy_setopt(_curl_handle, CURLOPT_USERPWD, cred.c_str()); } } diff --git a/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c b/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c index d2bc69cde0..d11ef8ff11 100644 --- a/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c +++ b/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c @@ -66,7 +66,7 @@ static struct { int prefix_a; int disable100continue; int rotate; - int auth_scheme; + long auth_scheme; int timeout; switch_memory_pool_t *pool; switch_event_node_t *node; @@ -576,7 +576,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load) } else if (!strcasecmp(val, "GSS-NEGOTIATE")) { globals.auth_scheme |= CURLAUTH_GSSNEGOTIATE; } else if (!strcasecmp(val, "any")) { - globals.auth_scheme = CURLAUTH_ANY; + globals.auth_scheme = (long)CURLAUTH_ANY; } } } diff --git a/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c b/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c index d55ae9989e..f988520452 100644 --- a/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c +++ b/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c @@ -57,7 +57,7 @@ struct xml_binding { char *cookie_file; switch_hash_t *vars_map; int use_dynamic_url; - int auth_scheme; + long auth_scheme; int timeout; }; @@ -368,7 +368,7 @@ static switch_status_t do_config(void) uint32_t enable_ssl_verifyhost = 0; char *cookie_file = NULL; hash_node_t *hash_node; - int auth_scheme = CURLAUTH_BASIC; + long auth_scheme = CURLAUTH_BASIC; need_vars_map = 0; vars_map = NULL; @@ -399,7 +399,7 @@ static switch_status_t do_config(void) } else if (!strcasecmp(val, "GSS-NEGOTIATE")) { auth_scheme |= CURLAUTH_GSSNEGOTIATE; } else if (!strcasecmp(val, "any")) { - auth_scheme = CURLAUTH_ANY; + auth_scheme = (long)CURLAUTH_ANY; } } else if (!strcasecmp(var, "disable-100-continue") && !switch_true(val)) { disable100continue = 0; diff --git a/src/switch_curl.c b/src/switch_curl.c index 1e37b2a074..c0f08bbefa 100644 --- a/src/switch_curl.c +++ b/src/switch_curl.c @@ -2,9 +2,6 @@ #include "switch_curl.h" #include -CURLcode Curl_setopt(switch_CURL *curl, CURLoption option, va_list arg); - - SWITCH_DECLARE(switch_CURL *) switch_curl_easy_init(void) { return curl_easy_init(); @@ -46,18 +43,6 @@ SWITCH_DECLARE(void) switch_curl_slist_free_all(switch_curl_slist_t * list) curl_slist_free_all((struct curl_slist *) list); } -SWITCH_DECLARE(switch_CURLcode) switch_curl_easy_setopt(CURL *handle, switch_CURLoption option, ...) -{ - va_list ap; - switch_CURLcode code; - - va_start(ap, option); - code = Curl_setopt(handle, option, ap); - va_end(ap); - - return code; -} - SWITCH_DECLARE(const char *) switch_curl_easy_strerror(switch_CURLcode errornum ) { return curl_easy_strerror(errornum);