curl-library
RE: Using HTTPS in multi-threaded dynamic library plugin on CentOS
Date: Fri, 16 Apr 2010 12:58:26 +0100
I have tried building libcurl using the normal way, but https: still doesn't work (CURL_VERSION_SSL on, ssl_version empty, https in the list of supported protocols).
I have run:
===========
export CFLAGS="-m32 -fPIC"
./configure --prefix=/home/admin/Desktop/libcurl-local --disable-shared
make
make install
Configure output:
=================
curl version: 7.20.1
Host setup: x86_64-unknown-linux-gnu
Install prefix: /home/admin/Desktop/libcurl-local
Compiler: gcc
SSL support: enabled (OpenSSL)
SSH support: no (--with-libssh2)
zlib support: enabled
krb4 support: no (--with-krb4*)
GSSAPI support: no (--with-gssapi)
SPNEGO support: no (--with-spnego)
c-ares support: no (--enable-ares)
ipv6 support: enabled
IDN support: enabled
Build libcurl: Shared=no, Static=yes
Built-in manual: enabled
Verbose errors: enabled (--disable-verbose)
SSPI support: no (--enable-sspi)
ca cert bundle: /etc/pki/tls/certs/ca-bundle.crt
ca cert path: no
LDAP support: enabled (OpenLDAP)
LDAPS support: no (--enable-ldaps)
RTSP support: enabled
Protocols: DICT FILE FTP FTPS HTTP HTTPS IMAP IMAPS LDAP POP3 POP3S RTSP SMTP SMTPS TELNET TFTP
===============
I removed all the libcurl source code files from my project.
I have deleted all the intermediary build files, to make sure nothing was left behind.
I uninstalled libcurl-devel (both 32 and 64) from the machine.
I verified that there is no other curl.h file on the system.
ldd on my module doesn't list libcurl.so.
I verified that not adding libcurl.a to my dynamic library made it's loading fail (missing import).
I don't know what else to try.
I'm not sure my plugin init function it's called from the main application thread. It could be called from one of it's worker threads. I know this is a bad idea since you can have a race condition (in this particular case is safe). Could this somehow break libcurl/OpenSSL?
The exact same code, with the same building options except changing the target to a standalone application (which is single-threaded) instead of dynamic library works fine.
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2010-04-16