feat: build proect for restproxy

This commit is contained in:
zhangsz
2025-03-06 20:02:40 +08:00
parent aca2bace68
commit fea044e6fe
3962 changed files with 979480 additions and 222551 deletions

View File

@@ -0,0 +1,61 @@
EXPORTS
curl_easy_cleanup @ 1 NONAME
curl_easy_duphandle @ 2 NONAME
curl_easy_escape @ 3 NONAME
curl_easy_getinfo @ 4 NONAME
curl_easy_init @ 5 NONAME
curl_easy_pause @ 6 NONAME
curl_easy_perform @ 7 NONAME
curl_easy_reset @ 8 NONAME
curl_easy_setopt @ 9 NONAME
curl_easy_strerror @ 10 NONAME
curl_easy_unescape @ 11 NONAME
curl_escape @ 12 NONAME
curl_formadd @ 13 NONAME
curl_formfree @ 14 NONAME
curl_formget @ 15 NONAME
curl_free @ 16 NONAME
curl_getdate @ 17 NONAME
curl_getenv @ 18 NONAME
curl_global_cleanup @ 19 NONAME
curl_global_init @ 20 NONAME
curl_global_init_mem @ 21 NONAME
curl_maprintf @ 22 NONAME
curl_mfprintf @ 23 NONAME
curl_mprintf @ 24 NONAME
curl_msnprintf @ 25 NONAME
curl_msprintf @ 26 NONAME
curl_multi_add_handle @ 27 NONAME
curl_multi_assign @ 28 NONAME
curl_multi_cleanup @ 29 NONAME
curl_multi_fdset @ 30 NONAME
curl_multi_info_read @ 31 NONAME
curl_multi_init @ 32 NONAME
curl_multi_perform @ 33 NONAME
curl_multi_remove_handle @ 34 NONAME
curl_multi_setopt @ 35 NONAME
curl_multi_socket @ 36 NONAME
curl_multi_socket_action @ 37 NONAME
curl_multi_socket_all @ 38 NONAME
curl_multi_strerror @ 39 NONAME
curl_multi_timeout @ 40 NONAME
curl_mvaprintf @ 41 NONAME
curl_mvfprintf @ 42 NONAME
curl_mvprintf @ 43 NONAME
curl_mvsnprintf @ 44 NONAME
curl_mvsprintf @ 45 NONAME
curl_share_cleanup @ 46 NONAME
curl_share_init @ 47 NONAME
curl_share_setopt @ 48 NONAME
curl_share_strerror @ 49 NONAME
curl_slist_append @ 50 NONAME
curl_slist_free_all @ 51 NONAME
curl_strequal @ 52 NONAME
curl_strnequal @ 53 NONAME
curl_unescape @ 54 NONAME
curl_version @ 55 NONAME
curl_version_info @ 56 NONAME
curl_easy_recv @ 57 NONAME
curl_easy_send @ 58 NONAME
curl_multi_wait @ 59 NONAME

View File

@@ -0,0 +1,61 @@
EXPORTS
curl_easy_cleanup @ 1 NONAME
curl_easy_duphandle @ 2 NONAME
curl_easy_escape @ 3 NONAME
curl_easy_getinfo @ 4 NONAME
curl_easy_init @ 5 NONAME
curl_easy_pause @ 6 NONAME
curl_easy_perform @ 7 NONAME
curl_easy_reset @ 8 NONAME
curl_easy_setopt @ 9 NONAME
curl_easy_strerror @ 10 NONAME
curl_easy_unescape @ 11 NONAME
curl_escape @ 12 NONAME
curl_formadd @ 13 NONAME
curl_formfree @ 14 NONAME
curl_formget @ 15 NONAME
curl_free @ 16 NONAME
curl_getdate @ 17 NONAME
curl_getenv @ 18 NONAME
curl_global_cleanup @ 19 NONAME
curl_global_init @ 20 NONAME
curl_global_init_mem @ 21 NONAME
curl_maprintf @ 22 NONAME
curl_mfprintf @ 23 NONAME
curl_mprintf @ 24 NONAME
curl_msnprintf @ 25 NONAME
curl_msprintf @ 26 NONAME
curl_multi_add_handle @ 27 NONAME
curl_multi_assign @ 28 NONAME
curl_multi_cleanup @ 29 NONAME
curl_multi_fdset @ 30 NONAME
curl_multi_info_read @ 31 NONAME
curl_multi_init @ 32 NONAME
curl_multi_perform @ 33 NONAME
curl_multi_remove_handle @ 34 NONAME
curl_multi_setopt @ 35 NONAME
curl_multi_socket @ 36 NONAME
curl_multi_socket_action @ 37 NONAME
curl_multi_socket_all @ 38 NONAME
curl_multi_strerror @ 39 NONAME
curl_multi_timeout @ 40 NONAME
curl_mvaprintf @ 41 NONAME
curl_mvfprintf @ 42 NONAME
curl_mvprintf @ 43 NONAME
curl_mvsnprintf @ 44 NONAME
curl_mvsprintf @ 45 NONAME
curl_share_cleanup @ 46 NONAME
curl_share_init @ 47 NONAME
curl_share_setopt @ 48 NONAME
curl_share_strerror @ 49 NONAME
curl_slist_append @ 50 NONAME
curl_slist_free_all @ 51 NONAME
curl_strequal @ 52 NONAME
curl_strnequal @ 53 NONAME
curl_unescape @ 54 NONAME
curl_version @ 55 NONAME
curl_version_info @ 56 NONAME
curl_easy_recv @ 57 NONAME
curl_easy_send @ 58 NONAME
curl_multi_wait @ 59 NONAME

View File

@@ -0,0 +1,10 @@
//
// libcurl and curl bld.inf file for Symbian OS
//
PRJ_EXPORTS
libcurl.iby /epoc32/rom/include/libcurl.iby
curl.iby /epoc32/rom/include/curl.iby
PRJ_MMPFILES
libcurl.mmp
curl.mmp

View File

@@ -0,0 +1,15 @@
//
// curl file transfer utility command-line utility
//
// Use this file with buildrom to add curl to a device ROM
//
#ifndef CURL_IBY
#define CURL_IBY
#include <openenv.iby>
#include <libcurl.iby>
file=ABI_DIR\BUILD_DIR\curl.exe \sys\bin\curl.exe
#endif // CURL_IBY

View File

@@ -0,0 +1,64 @@
//
// curl network retrieval client
//
TARGET curl.exe
TARGETTYPE exe
UID 0x00000000 0xF0206442
SOURCEPATH ../../../src
SOURCE \
tool_binmode.c \
tool_bname.c \
tool_cb_dbg.c \
tool_cb_hdr.c \
tool_cb_prg.c \
tool_cb_rea.c \
tool_cb_see.c \
tool_cb_wrt.c \
tool_cfgable.c \
tool_convert.c \
tool_dirhie.c \
tool_doswin.c \
tool_easysrc.c \
tool_formparse.c \
tool_getparam.c \
tool_getpass.c \
tool_help.c \
tool_helpers.c \
tool_homedir.c \
tool_hugehelp.c \
tool_libinfo.c \
tool_main.c \
tool_metalink.c \
tool_mfiles.c \
tool_msgs.c \
tool_operate.c \
tool_operhlp.c \
tool_panykey.c \
tool_paramhlp.c \
tool_parsecfg.c \
tool_setopt.c \
tool_sleep.c \
tool_urlglob.c \
tool_util.c \
tool_vms.c \
tool_writeenv.c \
tool_writeout.c \
tool_xattr.c
SOURCEPATH ../../../lib
SOURCE \
strcase.c nonblock.c
USERINCLUDE ../../../src ../../../lib ../../../include/curl
SYSTEMINCLUDE ../../../include /epoc32/include /epoc32/include/stdapis
LIBRARY euser.lib libc.lib libcurl.lib
STATICLIBRARY libcrt0.lib
CAPABILITY NetworkServices
EPOCSTACKSIZE 0x8000

View File

@@ -0,0 +1,26 @@
; curl package definition file
; Use with makesis to create a Symbian .sis package
;Language - standard language definitions
&EN
;Header - standard sis file header including version number
;Version scheme: curl's major, curl's minor, curl's subminor*100 + build number
; e.g. The third Symbian package of curl ver. 7.20.1 would have a SIS package
; version of 7, 20, 103
#{"curl"}, (0xF0206442), 7, 20, <please_update_version>, TYPE=SA
; Vendor name
%{"curl project"}
:"curl project"
; Embedded component
@"libcurl.sis",(0xF0206D00)
; A dependency on P.I.P.S. and the stdio server are probably good to have here
;(0x20009A80), *, *, *, {"Open C Standard Libraries"}
;(0x20009A81), *, *, *, {"P.I.P.S. for UIQ 3"}
;(0x20009AA2), *, *, *, {"Symbian OS STDIOSERVER"}
;Files - standard file specifications
"\epoc32\release\armv5\urel\curl.exe" - "$:\sys\bin\curl.exe"

View File

@@ -0,0 +1,14 @@
//
// libcurl file transfer DLL
//
// Use this file with buildrom to add libcurl to a device ROM
//
#ifndef LIBCURL_IBY
#define LIBCURL_IBY
#include <openenv.iby>
file=ABI_DIR\BUILD_DIR\libcurl.dll \sys\bin\libcurl.dll
#endif // LIBCURL_IBY

View File

@@ -0,0 +1,67 @@
//
// libcurl.dll curl network retrieval client library
//
// Build-time options (uncomment these to enable)
#define ENABLE_ZLIB // Enable gzip/deflate decompression
//#define ENABLE_SSL // Enable SSL for HTTPS/FTPS (requires S60 Open C SDK)
TARGET libcurl.dll
TARGETTYPE dll
UID 0x1000008d 0xF0206D00
MACRO BUILDING_LIBCURL
#ifdef ENABLE_ZLIB
MACRO HAVE_LIBZ
#endif
#ifdef ENABLE_SSL
MACRO USE_OPENSSL
#endif
SOURCEPATH ../../../lib
SOURCE \
file.c timeval.c base64.c hostip.c progress.c formdata.c \
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \
ldap.c vtls/openssl.c version.c getenv.c escape.c mprintf.c telnet.c \
netrc.c getinfo.c transfer.c strequal.c easy.c security.c krb4.c \
curl_fnmatch.c fileinfo.c ftplistparser.c wildcard.c krb5.c \
memdebug.c http_chunks.c strtok.c connect.c llist.c hash.c multi.c \
content_encoding.c share.c http_digest.c md4.c md5.c curl_rand.c \
http_negotiate.c inet_pton.c strtoofft.c strerror.c amigaos.c \
hostasyn.c hostip4.c hostip6.c hostsyn.c inet_ntop.c parsedate.c \
select.c vtls/gtls.c vtls/vtls.c tftp.c splay.c strdup.c socks.c \
ssh.c vtls/nss.c strcase.c curl_addrinfo.c socks_gssapi.c \
socks_sspi.c curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c \
pop3.c smtp.c pingpong.c rtsp.c curl_threads.c warnless.c hmac.c \
vtls/polarssl.c curl_rtmp.c openldap.c curl_gethostname.c gopher.c \
vtls/axtls.c idn_win32.c vtls/cyassl.c http_proxy.c non-ascii.c \
asyn-ares.c asyn-thread.c curl_gssapi.c http_ntlm.c curl_ntlm_wb.c \
curl_ntlm_core.c curl_sasl.c vtls/schannel.c curl_multibyte.c \
vtls/darwinssl.c conncache.c curl_sasl_sspi.c smb.c curl_endian.c \
curl_des.c system_win32.c \
vauth/vauth.c vauth/cleartext.c vauth/cram.c vauth/digest.c \
vauth/digest_sspi.c vauth/krb5_gssapi.c vauth/krb5_sspi.c \
vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c vauth/spnego_gssapi.c \
vauth/spnego_sspi.c
USERINCLUDE ../../../lib ../../../include/curl
#ifdef ENABLE_SSL
SYSTEMINCLUDE /epoc32/include/osextensions/stdapis
// Older versions of the SDK need this instead:
//USERINCLUDE /epoc32/include/stdapis/openssl
#endif
SYSTEMINCLUDE ../../../include /epoc32/include/stdapis /epoc32/include
LIBRARY euser.lib libc.lib
#ifdef ENABLE_ZLIB
LIBRARY ezlib.lib
#endif
#ifdef ENABLE_SSL
LIBRARY libssl.lib libcrypto.lib
#endif
CAPABILITY NetworkServices
EPOCALLOWDLLDATA

View File

@@ -0,0 +1,22 @@
; libcurl package definition file
; Use with makesis to create a Symbian .sis package
;Language - standard language definitions
&EN
;Header - standard sis file header including version number
;Version scheme: curl's major, curl's minor, curl's subminor*100 + build number
; e.g. The third Symbian package of curl ver. 7.20.1 would have a SIS package
; version of 7, 20, 103
#{"libcurl"}, (0xF0206D00), 7, 20, <please_update_version>, TYPE=SA
; Vendor name
%{"curl project"}
:"curl project"
; A dependency on P.I.P.S. is probably a good idea to add here
;(0x20009A80), *, *, *, {"Open C Standard Libraries"}
;(0x20009A81), *, *, *, {"P.I.P.S. for UIQ 3"}
;Files - standard file specifications
"\epoc32\release\armv5\urel\libcurl.dll" - "$:\sys\bin\libcurl.dll"

View File

@@ -0,0 +1,93 @@
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 libaries 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