readme.txt 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. This means that integration with standard Symbian OS programs can be
  11. tricky, since libcurl isn't designed with Symbian's native asynchronous
  12. message passing idioms in mind. However, it may be possible to use libcurl
  13. in an active object-based application through libcurl's multi interface.
  14. The port is most easily used when porting POSIX applications to Symbian
  15. OS using P.I.P.S.
  16. libcurl is built as a standard Symbian ordinal-linked DLL, and curl is
  17. built as a text mode EXE application. They have not been Symbian
  18. Signed, which is required in order to install them on most phones.
  19. Following are some things to keep in mind when using this port.
  20. curl notes
  21. ----------
  22. When starting curl in the Windows emulator from the Windows command-line,
  23. place a double-dash -- before the first curl command-line option.
  24. e.g. \epoc32\release\winscw\udeb\curl -- -v http://localhost/
  25. Failure to do so may mean that some of your options won't be correctly
  26. processed.
  27. Symbian's ESHELL allows for redirecting stdin and stdout to files, but
  28. stderr goes to the epocwind.out file (on the emulator). The standard
  29. curl options -o, --stderr and --trace-ascii can be used to
  30. redirect output to a file (or stdout) instead.
  31. P.I.P.S. doesn't inherit the current working directory at startup from
  32. the shell, so relative path names are always relative to
  33. C:\Private\f0206442\.
  34. P.I.P.S. provides no way to disable echoing of characters as they are
  35. entered, so passwords typed in on the console will be visible. It also
  36. line buffers keyboard input so interactive telnet sessions are not very
  37. feasible.
  38. All screen output disappears after curl exits, so after a command completes,
  39. curl waits by default for Enter to be pressed before exiting. This behaviour
  40. is suppressed when the -s option is given.
  41. curl's "home directory" in Symbian is C:\Private\f0206442\. The .curlrc file
  42. is read from this directory on startup.
  43. libcurl notes
  44. -------------
  45. libcurl uses writable static data, so the EPOCALLOWDLLDATA option is
  46. used in its MMP file, with the corresponding additional memory usage
  47. and limitations on the Windows emulator.
  48. curl_global_init() *must* be called (either explicitly or implicitly through
  49. calling certain other libcurl functions) before any libcurl functions
  50. that could allocate memory (like curl_getenv()).
  51. P.I.P.S. doesn't support signals or the alarm() call, so some timeouts
  52. (such as the connect timeout) are not honoured.
  53. P.I.P.S. causes a USER:87 panic if certain timeouts much longer than
  54. half an hour are selected.
  55. LDAP, SCP or SFTP methods are not supported.
  56. gzip and deflate decompression is supported when the appropriate macro
  57. is uncommented in the libcurl.mmp file.
  58. SSL/TLS encryption is not enabled by default, but it is possible to add
  59. when the OpenSSL libraries included in the S60 Open C SDK are available.
  60. The appropriate macro in the libcurl.mmp file must be uncommented to
  61. enable support. In addition, some manual editing of the libcurl source
  62. code must also be done since the S60 port of OpenSSL disables support
  63. for some encryption methods that libcurl assumes are always available.
  64. Debug builds are not supported (i.e. --enable-debug) because they cause
  65. additional symbol exports in the library which are not frozen in the .def
  66. files.
  67. Dan Fandrich
  68. dan@coneharvesters.com
  69. April 2009