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



Reply via email to