https://issues.shibboleth.net/jira/browse/CPPXT-95
authorScott Cantor <cantor.2@osu.edu>
Mon, 20 May 2013 16:27:35 +0000 (16:27 +0000)
committerScott Cantor <cantor.2@osu.edu>
Mon, 20 May 2013 16:27:35 +0000 (16:27 +0000)
xmltooling/XMLToolingConfig.cpp
xmltooling/soap/impl/CURLSOAPTransport.cpp
xmltooling/util/CurlURLInputStream.cpp

index 97c0a93..4a6e873 100644 (file)
@@ -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 {
index d91ecfc..b2490fb 100644 (file)
@@ -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"));
index 2c91f4b..e5036da 100644 (file)
@@ -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;
         }