From: Scott Cantor Date: Mon, 20 May 2013 16:27:35 +0000 (+0000) Subject: https://issues.shibboleth.net/jira/browse/CPPXT-95 X-Git-Tag: 1.5.3~5 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=commitdiff_plain;h=59831dcbb9b9f7fe5edf11a11340a83b65050444 https://issues.shibboleth.net/jira/browse/CPPXT-95 --- diff --git a/xmltooling/XMLToolingConfig.cpp b/xmltooling/XMLToolingConfig.cpp index 97c0a93..4a6e873 100644 --- a/xmltooling/XMLToolingConfig.cpp +++ b/xmltooling/XMLToolingConfig.cpp @@ -397,7 +397,9 @@ bool XMLToolingInternalConfig::init() if (curlver) { log.debug("libcurl %s initialization complete", curlver->version); if (!(curlver->features & CURL_VERSION_SSL)) { - log.warn("libcurl lacks TLS/SSL support, this will greatly limit functionality"); + log.crit("libcurl lacks TLS/SSL support, this will greatly limit functionality"); + } else if (curlver->ssl_version && !strstr(curlver->ssl_version, "OpenSSL")) { + log.crit("libcurl lacks OpenSSL-specific options, this will greatly limit functionality"); } } else { diff --git a/xmltooling/soap/impl/CURLSOAPTransport.cpp b/xmltooling/soap/impl/CURLSOAPTransport.cpp index d91ecfc..b2490fb 100644 --- a/xmltooling/soap/impl/CURLSOAPTransport.cpp +++ b/xmltooling/soap/impl/CURLSOAPTransport.cpp @@ -568,7 +568,11 @@ void CURLSOAPTransport::send(istream* in) // Make the call. log.debug("sending SOAP message to %s", m_endpoint.c_str()); - if (curl_easy_perform(m_handle) != CURLE_OK) { + CURLcode code = curl_easy_perform(m_handle); + if (code != CURLE_OK) { + if (code == CURLE_SSL_CIPHER) { + log.error("on Red Hat 6+, make sure libcurl used is built with OpenSSL"); + } throw IOException( string("CURLSOAPTransport failed while contacting SOAP endpoint (") + m_endpoint + "): " + (curl_errorbuf[0] ? curl_errorbuf : "no further information available")); diff --git a/xmltooling/util/CurlURLInputStream.cpp b/xmltooling/util/CurlURLInputStream.cpp index 2c91f4b..e5036da 100644 --- a/xmltooling/util/CurlURLInputStream.cpp +++ b/xmltooling/util/CurlURLInputStream.cpp @@ -523,6 +523,9 @@ bool CurlURLInputStream::readMore(int* runningHandles) default: fLog.error("error while fetching %s: (%d) %s", fURL.c_str(), msg->data.result, fError); + if (msg->data.result == CURLE_SSL_CIPHER) { + fLog.error("on Red Hat 6+, make sure libcurl used is built with OpenSSL"); + } ThrowXML1(NetAccessorException, XMLExcepts::NetAcc_InternalError, fURL.c_str()); break; }