cURL / Mailing Lists / curl-library / Single Mail

curl-library

Getting libcurl 7.19.4 to work with Symbian

From: Frank McGeough <fmcgeough_at_mac.com>
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