Return to readme.txt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / packages / Symbian |
1.1 ! misho 1: Curl on Symbian OS ! 2: ================== ! 3: This is a basic port of curl and libcurl to Symbian OS. The port is ! 4: a straightforward one using Symbian's P.I.P.S. POSIX compatibility ! 5: layer, which was first available for OS version 9.1. A more complete ! 6: port would involve writing a Symbian C++ binding, or wrapping libcurl ! 7: as a Symbian application server with a C++ API to handle requests ! 8: from client applications as well as creating a GUI application to allow ! 9: file transfers. The author has no current plans to do so. ! 10: ! 11: This means that integration with standard Symbian OS programs can be ! 12: tricky, since libcurl isn't designed with Symbian's native asynchronous ! 13: message passing idioms in mind. However, it may be possible to use libcurl ! 14: in an active object-based application through libcurl's multi interface. ! 15: The port is most easily used when porting POSIX applications to Symbian ! 16: OS using P.I.P.S. (a.k.a. Open C). ! 17: ! 18: libcurl is built as a standard Symbian ordinal-linked DLL, and curl is ! 19: built as a text mode EXE application. They have not been Symbian ! 20: Signed, which is required in order to install them on most phones. ! 21: ! 22: Following are some things to keep in mind when using this port. ! 23: ! 24: ! 25: curl notes ! 26: ---------- ! 27: When starting curl in the Windows emulator from the Windows command-line, ! 28: place a double-dash -- before the first curl command-line option. ! 29: e.g. \epoc32\release\winscw\udeb\curl -- -v http://localhost/ ! 30: Failure to do so may mean that some of your options won't be correctly ! 31: processed. ! 32: ! 33: Symbian's ESHELL allows for redirecting stdin and stdout to files, but ! 34: stderr goes to the epocwind.out file (on the emulator). The standard ! 35: curl options -o, --stderr and --trace-ascii can be used to ! 36: redirect output to a file (or stdout) instead. ! 37: ! 38: P.I.P.S. doesn't inherit the current working directory at startup from ! 39: the shell, so relative path names are always relative to ! 40: C:\Private\f0206442\. ! 41: ! 42: P.I.P.S. provides no way to disable echoing of characters as they are ! 43: entered, so passwords typed in on the console will be visible. It also ! 44: line buffers keyboard input so interactive telnet sessions are not very ! 45: feasible. ! 46: ! 47: All screen output disappears after curl exits, so after a command completes, ! 48: curl waits by default for Enter to be pressed before exiting. This behaviour ! 49: is suppressed when the -s option is given. ! 50: ! 51: curl's "home directory" in Symbian is C:\Private\f0206442\. The .curlrc file ! 52: is read from this directory on startup. ! 53: ! 54: ! 55: libcurl notes ! 56: ------------- ! 57: libcurl uses writable static data, so the EPOCALLOWDLLDATA option is ! 58: used in its MMP file, with the corresponding additional memory usage ! 59: and limitations on the Windows emulator. ! 60: ! 61: curl_global_init() *must* be called (either explicitly or implicitly through ! 62: calling certain other libcurl functions) before any libcurl functions ! 63: that could allocate memory (like curl_getenv()). ! 64: ! 65: P.I.P.S. doesn't support signals or the alarm() call, so some timeouts ! 66: (such as the connect timeout) are not honoured. This should not be ! 67: an issue once support for CURLRES_THREADED is added for Symbian. ! 68: ! 69: P.I.P.S. causes a USER:87 panic if certain timeouts much longer than ! 70: half an hour are selected. ! 71: ! 72: LDAP, SCP or SFTP methods are not supported due to lack of support for ! 73: the dependent libraries on Symbian. ! 74: ! 75: gzip and deflate decompression is supported when the appropriate macro ! 76: is uncommented in the libcurl.mmp file. ! 77: ! 78: SSL/TLS encryption is not enabled by default, but it is possible to add ! 79: when the OpenSSL libraries included in the S60 Open C SDK are available. ! 80: The appropriate macro in the libcurl.mmp file must be uncommented to ! 81: enable support. ! 82: ! 83: NTLM authentication may not work on some servers due to the lack of ! 84: MD4 support in the OpenSSL libraries included with Open C. ! 85: ! 86: Debug builds are not supported (i.e. --enable-debug) because they cause ! 87: additional symbol exports in the library which are not frozen in the .def ! 88: files. ! 89: ! 90: ! 91: Dan Fandrich ! 92: dan@coneharvesters.com ! 93: March 2010