Files correlati : Commento : Spostamento in libraries delle librerie esterne di Campo per una maggiore pulizia e organizzazione git-svn-id: svn://10.65.10.50/branches/R_10_00@24150 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			94 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Curl on Symbian OS
 | |
| ==================
 | |
| 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.
 | |
| 
 | |
| This means that integration with standard Symbian OS programs can be
 | |
| tricky, since libcurl isn't designed with Symbian's native asynchronous
 | |
| message passing idioms in mind. However, it may be possible to use libcurl
 | |
| in an active object-based application through libcurl's multi interface.
 | |
| The port is most easily used when porting POSIX applications to Symbian
 | |
| OS using P.I.P.S. (a.k.a. Open C).
 | |
| 
 | |
| libcurl is built as a standard Symbian ordinal-linked DLL, and curl is
 | |
| built as a text mode EXE application.  They have not been Symbian
 | |
| Signed, which is required in order to install them on most phones.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| P.I.P.S. doesn't inherit the current working directory at startup from
 | |
| the shell, so relative path names are always relative to
 | |
| C:\Private\f0206442\.
 | |
| 
 | |
| P.I.P.S. provides no way to disable echoing of characters as they are
 | |
| entered, so passwords typed in on the console will be visible.  It also
 | |
| line buffers keyboard input so interactive telnet sessions are not very
 | |
| feasible.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| curl's "home directory" in Symbian is C:\Private\f0206442\. The .curlrc file
 | |
| is read from this directory on startup.
 | |
| 
 | |
| 
 | |
| 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()).
 | |
| 
 | |
| P.I.P.S. doesn't support signals or the alarm() call, so some timeouts
 | |
| (such as the connect timeout) are not honoured. This should not be
 | |
| an issue once support for CURLRES_THREADED is added for Symbian.
 | |
| 
 | |
| P.I.P.S. causes a USER:87 panic if certain timeouts much longer than
 | |
| half an hour are selected.
 | |
| 
 | |
| LDAP, SCP or SFTP methods are not supported due to lack of support for
 | |
| the dependent libraries on Symbian.
 | |
| 
 | |
| gzip and deflate decompression is supported when the appropriate macro
 | |
| is uncommented in the libcurl.mmp file.
 | |
| 
 | |
| SSL/TLS encryption is not enabled by default, but it is possible to add
 | |
| when the OpenSSL libraries included in the S60 Open C SDK are available.
 | |
| The appropriate macro in the libcurl.mmp file must be uncommented to
 | |
| enable support.
 | |
| 
 | |
| 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
 |