@@ -611,59 +611,62 @@ char *oidc_http_form_encoded_data(request_rec *r, const apr_table_t *params) {
611611
612612#define OIDC_CURLOPT_SSL_OPTIONS "CURLOPT_SSL_OPTIONS"
613613
614- #define OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , option , key , val ) \
614+ #define OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , option , key , val ) \
615615 if (_oidc_strstr(env_var_value, option) != NULL) { \
616616 oidc_debug(r, "curl_easy_setopt (%d) %s (%d)", key, option, val); \
617- curl_easy_setopt(curl, key, val); \
617+ code = curl_easy_setopt(curl, key, val); \
618+ if (code != CURLE_OK) \
619+ oidc_error(r, "curl_easy_setopt for '%s' failed with: %s", option, curl_easy_strerror(code)); \
618620 }
619621
620622static void oidc_http_set_curl_ssl_options (request_rec * r , CURL * curl ) {
621623 const char * env_var_value = NULL ;
624+ CURLcode code = CURLE_OK ;
622625 if (r -> subprocess_env != NULL )
623626 env_var_value = apr_table_get (r -> subprocess_env , OIDC_CURLOPT_SSL_OPTIONS );
624627 if (env_var_value == NULL )
625628 return ;
626629 oidc_debug (r , "SSL options environment variable %s=%s found" , OIDC_CURLOPT_SSL_OPTIONS , env_var_value );
627630#if LIBCURL_VERSION_NUM >= 0x071900
628- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURLSSLOPT_ALLOW_BEAST" , CURLOPT_SSL_OPTIONS ,
631+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURLSSLOPT_ALLOW_BEAST" , CURLOPT_SSL_OPTIONS ,
629632 CURLSSLOPT_ALLOW_BEAST )
630633#endif
631634#if LIBCURL_VERSION_NUM >= 0x072c00
632- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURLSSLOPT_NO_REVOKE" , CURLOPT_SSL_OPTIONS ,
635+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURLSSLOPT_NO_REVOKE" , CURLOPT_SSL_OPTIONS ,
633636 CURLSSLOPT_NO_REVOKE )
634637#endif
635638#if LIBCURL_VERSION_NUM >= 0x074400
636- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURLSSLOPT_NO_PARTIALCHAIN" , CURLOPT_SSL_OPTIONS ,
639+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURLSSLOPT_NO_PARTIALCHAIN" , CURLOPT_SSL_OPTIONS ,
637640 CURLSSLOPT_NO_PARTIALCHAIN )
638641#endif
639642#if LIBCURL_VERSION_NUM >= 0x074600
640- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURLSSLOPT_REVOKE_BEST_EFFORT" , CURLOPT_SSL_OPTIONS ,
643+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURLSSLOPT_REVOKE_BEST_EFFORT" , CURLOPT_SSL_OPTIONS ,
641644 CURLSSLOPT_REVOKE_BEST_EFFORT )
642645#endif
643646#if LIBCURL_VERSION_NUM >= 0x074700
644- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURLSSLOPT_NATIVE_CA" , CURLOPT_SSL_OPTIONS ,
647+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURLSSLOPT_NATIVE_CA" , CURLOPT_SSL_OPTIONS ,
645648 CURLSSLOPT_NATIVE_CA )
646649#endif
647650#if LIBCURL_VERSION_NUM >= 0x072200
648- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_TLSv1_0" , CURLOPT_SSLVERSION ,
651+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_TLSv1_0" , CURLOPT_SSLVERSION ,
649652 CURL_SSLVERSION_TLSv1_0 )
650- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_TLSv1_1" , CURLOPT_SSLVERSION ,
653+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_TLSv1_1" , CURLOPT_SSLVERSION ,
651654 CURL_SSLVERSION_TLSv1_1 )
652- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_TLSv1_2" , CURLOPT_SSLVERSION ,
655+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_TLSv1_2" , CURLOPT_SSLVERSION ,
653656 CURL_SSLVERSION_TLSv1_2 )
654657#endif
655658#if LIBCURL_VERSION_NUM >= 0x073400
656- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_TLSv1_3" , CURLOPT_SSLVERSION ,
659+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_TLSv1_3" , CURLOPT_SSLVERSION ,
657660 CURL_SSLVERSION_TLSv1_3 )
658661#endif
659662#if LIBCURL_VERSION_NUM >= 0x073600
660- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_0" , CURLOPT_SSLVERSION ,
663+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_0" , CURLOPT_SSLVERSION ,
661664 CURL_SSLVERSION_MAX_TLSv1_0 )
662- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_1" , CURLOPT_SSLVERSION ,
665+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_1" , CURLOPT_SSLVERSION ,
663666 CURL_SSLVERSION_MAX_TLSv1_1 )
664- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_2" , CURLOPT_SSLVERSION ,
667+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_2" , CURLOPT_SSLVERSION ,
665668 CURL_SSLVERSION_MAX_TLSv1_2 )
666- OIDC_HTTP_SET_CURL_OPTION (r , curl , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_3" , CURLOPT_SSLVERSION ,
669+ OIDC_HTTP_SET_CURL_OPTION (r , curl , code , env_var_value , "CURL_SSLVERSION_MAX_TLSv1_3" , CURLOPT_SSLVERSION ,
667670 CURL_SSLVERSION_MAX_TLSv1_3 )
668671#endif
669672}
0 commit comments