On 04/12/2013 10:37 PM, Rich Wolski wrote: > Hi There, > > I just installed Centos 6.4 and did a build of 0.9.16. Looks like there > might be an ssl incompatibility with curl. > > Ric > > make[5]: Entering directory > `/home/rich/src/c-monstr/libmicrohttpd-0.9.16/src/testcurl/https' > curl version: libcurl/7.19.7 NSS/3.13.6.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Error: received handshake message out of context > curl_easy_perform failed: `SSL connect error' >
That's because your libcurl is linked against NSS instead of libgcrypt/gnutls. Various versions of curl doesn't work properly with SSL; IIRC the OpenSSL version contains a blocking read (or write?) and then the SSL handshake stalls (as the other end of the TCP socket is in the same process...). I believe the above is similarly an issue related to using NSS. I'm not sure if it's a client error (NSS-SSL-client) or a server error (gnutls-SSL-server), or just an incompatibility between NSS & gnuTLS that cannot be attributed. If you are feeling lucky, you might try reporting this one to curl, libgnutls and NSS developers --- MHD is the most innocent party here as we merely call on libgnutls to do the handshake. In any case, the _only_ impact on MHD is that this particular test fails. The test was written for libcurl-gnutls, and if you link libcurl against some other crypto library, it likely breaks. I've considered changing the test to not run if NSS is in the curl version, but I figured it was better to let users know that they had a broken variant of libcurl ;-). Finally, I'm pretty sure this is NOT Centos-specific and you should be able to use MHD (even with SSL) fine despite the failure. Happy hacking! Christian
