curl-library
Getting libcurl 7.19.4 to work with Symbian
Date: Tue, 12 May 2009 09:46:49 -0700
I've gotten libcurl to work with Nokia's S60_5th_Edition_SDK_v0.9 for both HTTP and HTTPS. Although there are definitely things to investigate and change about what I've done I thought I'd share what I did in case someone else finds it helpful. Take this with a grain of salt because I'm neither a Symbian nor a libcurl expert and this applies only to the environment noted.
I added the following to the liibcurl.mmp file :
#ifdef ENABLE_SSL
SYSTEMINCLUDE /epoc32/include/stdapis/openssl
#endif
this is needed if you want to use SSL.
Compiling libcurl will give the following warnings :
mwldsym2.exe: warning: Option 'Use default libraries' is enabled but linker used
mwldsym2.exe: warning: runtime library from MW[...]LibraryFiles (msl_all_static_mse_symbian_d.lib);
mwldsym2.exe: warning: this indicates a potential settings/libraries mismatch
as far as I can tell (and I'm on real thin ice here) this is a warning specific to the emulator and means that you can't use the libcurl.dll from multiple processes because of how Symbian deals with dll data.
in the config-symbian file :
Comment out ENABLE_IPV6 #define. Open-c on Symbian doesn't support it. Not only doesn't support it but It crashed on a socket call with this enabled (instead of just returning an invalid socket).
I also added this :
/* disable NTLM for Symbian */
#define CURL_DISABLE_NTLM 1
The NTLM stuff didn't compile and I didn't need it.
in the ssluse.c file there were a few errors:
line 477: illegal implicit conversion from 'int' to:'struct ui_method_st *'
I don't know why this is complaining. For now I just added an explicit cast :
UI_METHOD *ui_method = (UI_METHOD *)UI_OpenSSL();
lines 1998 through 2008...the compiler had trouble with these. For now I just #ifdef'd them out.
case EVP_PKEY_DSA:
#if NOT_WORKING_YET
print_pubkey_BN(dsa, p, i);
print_pubkey_BN(dsa, q, i);
print_pubkey_BN(dsa, g, i);
print_pubkey_BN(dsa, priv_key, i);
print_pubkey_BN(dsa, pub_key, i);
#endif
break;
case EVP_PKEY_DH:
#if NOT_WORKING_YET
print_pubkey_BN(dh, p, i);
print_pubkey_BN(dh, g, i);
print_pubkey_BN(dh, priv_key, i);
print_pubkey_BN(dh, pub_key, i);
#endif
Received on 2009-05-12