Professional Documents
Culture Documents
==================
This is a basic port of curl and libcurl to Symbian OS. The port is
a straightforward one using Symbian's P.I.P.S. POSIX compatibility
layer, which was first available for OS version 9.1. A more complete
port would involve writing a Symbian C++ binding, or wrapping libcurl
as a Symbian application server with a C++ API to handle requests
from client applications as well as creating a GUI application to allow
file transfers. The author has no current plans to do so.
Following are some things to keep in mind when using this port.
curl notes
----------
When starting curl in the Windows emulator from the Windows command-line,
place a double-dash -- before the first curl command-line option.
e.g. \epoc32\release\winscw\udeb\curl -- -v http://localhost/
Failure to do so may mean that some of your options won't be correctly
processed.
Symbian's ESHELL allows for redirecting stdin and stdout to files, but
stderr goes to the epocwind.out file (on the emulator). The standard
curl options -o, --stderr and --trace-ascii can be used to
redirect output to a file (or stdout) instead.
All screen output disappears after curl exits, so after a command completes,
curl waits by default for Enter to be pressed before exiting. This behaviour
is suppressed when the -s option is given.
libcurl notes
-------------
libcurl uses writable static data, so the EPOCALLOWDLLDATA option is
used in its MMP file, with the corresponding additional memory usage
and limitations on the Windows emulator.
curl_global_init() *must* be called (either explicitly or implicitly through
calling certain other libcurl functions) before any libcurl functions
that could allocate memory (like curl_getenv()).
LDAP, SCP or SFTP methods are not supported due to lack of support for
the dependent libraries on Symbian.
NTLM authentication may not work on some servers due to the lack of
MD4 support in the OpenSSL libraries included with Open C.
Debug builds are not supported (i.e. --enable-debug) because they cause
additional symbol exports in the library which are not frozen in the .def
files.
Dan Fandrich
dan@coneharvesters.com
March 2010