summaryrefslogtreecommitdiff
path: root/packages/OS400
diff options
context:
space:
mode:
authorPatrick Monnerat <patrick@monnerat.net>2023-04-18 01:48:45 +0200
committerJay Satiro <raysatiro@yahoo.com>2023-04-18 16:13:57 -0400
commitfaa04801dba462d6874bf0d67eb17e78c7bf71fb (patch)
tree1b34c668a0becc39d36d464b83782e664009560f /packages/OS400
parenta1fa2b30c0ce300addd0a18c665b2007ee782c7c (diff)
downloadcurl-faa04801dba462d6874bf0d67eb17e78c7bf71fb.tar.gz
OS400: fix and complete ILE/RPG binding
- Fix wrong definitions of CURL_ZERO_TERNINATED, curl_mime_data() and curl_mime_data_ccsid(). - Add recent definitions, in particular blob, header API and WebSockets API. - Support for CURLVERSION_ELEVENTH. - New functions for EBCDIC support. Reflect these changes in README.OS400. Closes https://github.com/curl/curl/pull/10994
Diffstat (limited to 'packages/OS400')
-rw-r--r--packages/OS400/README.OS40015
-rw-r--r--packages/OS400/curl.inc.in273
2 files changed, 264 insertions, 24 deletions
diff --git a/packages/OS400/README.OS400 b/packages/OS400/README.OS400
index b1b8f0e2d..d31f6cf0a 100644
--- a/packages/OS400/README.OS400
+++ b/packages/OS400/README.OS400
@@ -355,8 +355,9 @@ in the global data section of the module's source code.
No vararg procedure support exists in ILE/RPG: for this reason, the following
considerations apply:
_ Procedures curl_easy_setopt_long(), curl_easy_setopt_object(),
- curl_easy_setopt_function() and curl_easy_setopt_offset() are all alias
- prototypes to curl_easy_setopt(), but with different parameter lists.
+ curl_easy_setopt_function(), curl_easy_setopt_offset() and
+ curl_easy_setopt_blob() are all alias prototypes to curl_easy_setopt(), but
+ with different parameter lists.
_ Procedures curl_easy_getinfo_string(), curl_easy_getinfo_long(),
curl_easy_getinfo_double(), curl_easy_getinfo_slist(),
curl_easy_getinfo_ptr(), curl_easy_getinfo_socket() and
@@ -365,6 +366,11 @@ _ Procedures curl_easy_getinfo_string(), curl_easy_getinfo_long(),
_ Procedures curl_multi_setopt_long(), curl_multi_setopt_object(),
curl_multi_setopt_function() and curl_multi_setopt_offset() are all alias
prototypes to curl_multi_setopt(), but with different parameter lists.
+_ Procedures curl_share_setopt_int(), curl_share_setopt_ptr() and
+ curl_share_setopt_proc() are all alias prototypes to curl_share_setopt,
+ but with different parameter lists.
+_ Procedure curl_easy_setopt_blob_ccsid() is an alias of
+ curl_easy_setopt_ccsid() supporting blob encoding conversion.
_ The prototype of procedure curl_formadd() allows specifying a pointer option
and the CURLFORM_END option. This makes possible to use an option array
without any additional definition. If some specific incompatible argument
@@ -372,5 +378,6 @@ _ The prototype of procedure curl_formadd() allows specifying a pointer option
alias. The same applies to curl_formadd_ccsid() too.
Since RPG cannot cast a long to a pointer, procedure curl_form_long_value()
-is provided for that purpose: this allows storing a long value in the curl_forms
-array.
+is provided for that purpose: this allows storing a long value in the
+curl_forms array. Please note the form API is deprecated and the MIME API
+should be used instead.
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index 7eac3fd27..3b8d88cec 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -184,12 +184,19 @@
*
d CURL_WRITEFUNC_PAUSE...
d c X'10000001'
+ d CURL_WRITEFUNC_ERROR...
+ d c X'FFFFFFFF'
*
d CURL_TRAILERFUNC_OK...
d c 0
d CURL_TRAILERFUNC_ABORT...
d c 1
*
+ d CURL_PREREQFUNC_OK...
+ d c 0
+ d CURL_PREREQFUNC_ABORT...
+ d c 1
+ *
d CURLAUTH_NONE c X'00000000'
d CURLAUTH_BASIC c X'00000001'
d CURLAUTH_DIGEST...
@@ -278,6 +285,10 @@
d c 4
d CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE...
d c 5
+ d CURL_HTTP_VERSION_3...
+ d c 30
+ d CURL_HTTP_VERSION_3ONLY...
+ d c 31
*
d CURL_NETRC_IGNORED...
d c 0
@@ -330,7 +341,7 @@
d c 7
*
d CURL_ZERO_TERMINATED...
- d c -1
+ d c X'FFFFFFFF'
*
d CURL_POLL_NONE c 0
d CURL_POLL_IN c 1
@@ -340,6 +351,10 @@
d CURL_POLL_REMOVE...
d c 4
*
+ d CURL_BLOB_NOCOPY...
+ d c 0
+ d CURL_BLOB_COPY c 1
+ *
d CURL_CSELECT_IN...
d c X'00000001'
d CURL_CSELECT_OUT...
@@ -424,10 +439,31 @@
d c X'00000200'
d CURLU_NO_AUTHORITY...
d c X'00000400'
+ d CURLU_ALLOW_SPACE...
+ d c X'00000800'
+ d CURLU_PUNYCODE...
+ d c X'00001000'
*
d CURLOT_FLAG_ALIAS...
d c X'00000001'
*
+ d CURLH_HEADER c X'00000001'
+ d CURLH_TRAILER c X'00000002'
+ d CURLH_CONNECT c X'00000004'
+ d CURLH_1XX c X'00000008'
+ d CURLH_PSEUDO c X'00000010'
+ *
+ d CURLWS_TEXT c X'00000001'
+ d CURLWS_BINARY c X'00000002'
+ d CURLWS_CONT c X'00000004'
+ d CURLWS_CLOSE c X'00000008'
+ d CURLWS_PING c X'00000010'
+ d CURLWS_OFFSET c X'00000020'
+ d CURLWS_PONG c X'00000040'
+ *
+ d CURLWS_RAW_MODE...
+ d c X'00000001'
+ *
**************************************************************************
* Types
**************************************************************************
@@ -533,7 +569,7 @@
d c 47
d CURLE_UNKNOWN_OPTION...
d c 48
- d CURLE_TELNET_OPTION_SYNTAX...
+ d CURLE_SETOPT_OPTION_SYNTAX...
d c 49
d CURLE_OBSOLETE50...
d c 50
@@ -559,7 +595,7 @@
d c 60
d CURLE_BAD_CONTENT_ENCODING...
d c 61
- d CURLE_LDAP_INVALID_URL...
+ d CURLE_OBSOLETE62...
d c 62
d CURLE_FILESIZE_EXCEEDED...
d c 63
@@ -585,20 +621,18 @@
d c 73
d CURLE_TFTP_NOSUCHUSER...
d c 74
- d CURLE_CONV_FAILED...
+ d CURLE_OBSOLETE75...
d c 75
- d CURLE_CONV_REQD...
+ d CURLE_OBSOLETE76...
d c 76
d CURLE_SSL_CACERT_BADFILE...
d c 77
d CURLE_REMOTE_FILE_NOT_FOUND...
d c 78
- d CURLE_SSH...
- d c 79
+ d CURLE_SSH c 79
d CURLE_SSL_SHUTDOWN_FAILED...
d c 80
- d CURLE_AGAIN...
- d c 81
+ d CURLE_AGAIN c 81
d CURLE_SSL_CRL_BADFILE...
d c 82
d CURLE_SSL_ISSUER_ERROR...
@@ -625,12 +659,14 @@
d c 93
d CURLE_AUTH_ERROR...
d c 94
- d CURLE_HTTP3...
- d c 95
+ d CURLE_HTTP3 c 95
d CURLE_QUIC_CONNECT_ERROR...
d c 96
- d CURLE_PROXY...
- d c 97
+ d CURLE_PROXY c 97
+ d CURLE_SSL_CLIENTCERT...
+ d c 98
+ d CURLE_UNRECOVERABLE_POLL...
+ d c 99
*
/if not defined(CURL_NO_OLDIES)
d CURLE_URL_MALFORMAT_USER...
@@ -679,6 +715,8 @@
d c 46
d CURLE_UNKNOWN_TELNET_OPTION...
d c 48
+ d CURLE_TELNET_OPTION_SYNTAX...
+ d c 49
d CURLE_OBSOLETE...
d c 50
d CURLE_SHARE_IN_USE...
@@ -687,12 +725,18 @@
d c 60
d CURLE_SSL_PEER_CERTIFICATE...
d c 60
+ d CURLE_LDAP_INVALID_URL...
+ d c 62
d CURLE_FTP_SSL_FAILED...
d c 64
d CURLE_TFTP_DISKFULL...
d c 70
d CURLE_TFTP_EXISTS...
d c 73
+ d CURLE_CONV_FAILED...
+ d c 75
+ d CURLE_CONV_REQD...
+ d c 76
d CURLE_ALREADY_COMPLETE...
d c 99999
/endif
@@ -821,6 +865,8 @@
d c 1
d CURLPROXY_HTTPS...
d c 2
+ d CURLPROXY_HTTPS2...
+ d c 3
d CURLPROXY_SOCKS4...
d c 4
d CURLPROXY_SOCKS5...
@@ -1208,8 +1254,6 @@
d c 00111
d CURLOPT_SERVER_RESPONSE_TIMEOUT...
d c 00112
- d CURLOPT_SERVER_RESPONSE_TIMEOUT... Alias
- d c 00112
d CURLOPT_IPRESOLVE...
d c 00113
d CURLOPT_MAXFILESIZE...
@@ -1587,10 +1631,30 @@
d c 40309
d CURLOPT_PROXY_CAINFO_BLOB...
d c 40310
+ d CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256...
+ d c 10311
+ d CURLOPT_PREREQFUNCTION...
+ d c 20312
+ d CURLOPT_PREREQDATA...
+ d c 10313
d CURLOPT_MAXLIFETIME_CONN...
d c 00314
d CURLOPT_MIME_OPTIONS...
d c 00315
+ d CURLOPT_SSH_HOSTKEYFUNCTION...
+ d c 20316
+ d CURLOPT_SSH_HOSTKEYDATA...
+ d c 10317
+ d CURLOPT_PROTOCOLS_STR...
+ d c 10318
+ d CURLOPT_REDIR_PROTOCOLS_STR...
+ d c 10319
+ d CURLOPT_WS_OPTIONS...
+ d c 00320
+ d CURLOPT_CA_CACHE_TIMEOUT...
+ d c 00321
+ d CURLOPT_QUICK_EXIT...
+ d c 00322
*
/if not defined(CURL_NO_OLDIES)
d CURLOPT_FILE c 10001
@@ -1618,6 +1682,8 @@
d c 00119
d CURLOPT_POST301...
d c 00161
+ d CURLOPT_FTP_RESPONSE_TIMEOUT...
+ d c 00112
/endif
*
d CURLFORMcode s 10i 0 based(######ptr######) Enum
@@ -1820,6 +1886,10 @@
d c X'0020003B'
d CURLINFO_REFERER... CURLINFO_STRING + 60
d c X'0010003C'
+ d CURLINFO_CAINFO... CURLINFO_STRING + 61
+ d c X'0010003D'
+ d CURLINFO_CAPATH... CURLINFO_STRING + 62
+ d c X'0010003E'
*
d CURLINFO_HTTP_CODE... Old ...RESPONSE_CODE
d c X'00200002'
@@ -1857,10 +1927,12 @@
d CURLSSLBACKEND_RUSTLS...
d c 14
* Aliases for clones.
- d CURLSSLBACKEND_LIBRESSL...
+ d CURLSSLBACKEND_AWSLC...
d c 1
d CURLSSLBACKEND_BORINGSSL...
d c 1
+ d CURLSSLBACKEND_LIBRESSL...
+ d c 1
d CURLSSLBACKEND_WOLFSSL...
d c 6
*
@@ -1893,8 +1965,10 @@
d c 5
d CURL_LOCK_DATA_PSL...
d c 6
- d CURL_LOCK_DATA_LAST...
+ d CURL_LOCK_DATA_HSTS...
d c 7
+ d CURL_LOCK_DATA_LAST...
+ d c 8
*
d curl_lock_access...
d s 10i 0 based(######ptr######) Enum
@@ -1977,8 +2051,27 @@
d c 8
d CURLVERSION_TENTH...
d c 9
+ d CURLVERSION_ELEVENTH...
+ d c 10
d CURLVERSION_NOW...
- d c 9 CURLVERSION_TENTH
+ d c 10 CURLVERSION_ELEVENTH
+ *
+ d CURLHcode s 10i 0 based(######ptr######) Enum
+ d CURLHE_OK c 0
+ d CURLHE_BADINDEX...
+ d c 1
+ d CURLHE_MISSING...
+ d c 2
+ d CURLHE_NOHEADERS...
+ d c 3
+ d CURLHE_NOREQUEST...
+ d c 4
+ d CURLHE_OUT_OF_MEMORY...
+ d c 5
+ d CURLHE_BAD_ARGUMENT...
+ d c 6
+ d CURLHE_NOT_BUILT_IN...
+ d c 7
*
d curlsocktype s 10i 0 based(######ptr######) Enum
d CURLSOCKTYPE_IPCXN...
@@ -2132,6 +2225,32 @@
d c 16
d CURLUE_NO_FRAGMENT...
d c 17
+ d CURLUE_NO_ZONEID...
+ d c 18
+ d CURLUE_BAD_FILE_URL...
+ d c 19
+ d CURLUE_BAD_FRAGMENT...
+ d c 20
+ d CURLUE_BAD_HOSTNAME...
+ d c 21
+ d CURLUE_BAD_IPV6...
+ d c 22
+ d CURLUE_BAD_LOGIN...
+ d c 23
+ d CURLUE_BAD_PASSWORD...
+ d c 24
+ d CURLUE_BAD_PATH...
+ d c 25
+ d CURLUE_BAD_QUERY...
+ d c 26
+ d CURLUE_BAD_SCHEME...
+ d c 27
+ d CURLUE_BAD_SLASHES...
+ d c 28
+ d CURLUE_BAD_USER...
+ d c 29
+ d CURLUE_LACKS_IDN...
+ d c 30
*
d CURLUPart s 10i 0 based(######ptr######) Enum
d CURLUPART_URL c 0
@@ -2279,6 +2398,8 @@
d * const char *
d gsasl_version...
d * const char *
+ d feature_names...
+ d * const char *
*
d curl_certinfo ds based(######ptr######)
d qualified
@@ -2337,6 +2458,29 @@
d index 10u 0 size_t
d total 10u 0 size_t
*
+ d curl_header ds based(######ptr######)
+ d qualified
+ d name * char *
+ d value * char *
+ d amount 10u 0 size_t
+ d index 10u 0 size_t
+ d origin 10u 0
+ d anchor * void *
+ *
+ d curl_blob ds based(######ptr######)
+ d qualified
+ d data * void *
+ d len 10u 0 size_t
+ d flags 10u 0
+ *
+ d curl_ws_frame ds based(######ptr######)
+ d qualified
+ d age 10i 0
+ d flags 10i 0
+ d offset like(curl_off_t)
+ d bytesleft like(curl_off_t)
+ d len 10u 0 size_t
+ *
d curl_formget_callback...
d s * based(######ptr######) procptr
*
@@ -2430,6 +2574,15 @@
d curl_hstswrite_callback...
d s * based(######ptr######) procptr
*
+ d curl_prereq_callback...
+ d s * based(######ptr######) procptr
+ *
+ d curl_sshhostkeycallback...
+ d s * based(######ptr######) procptr
+ *
+ d curl_ws_write_callback...
+ d s * based(######ptr######) procptr
+ *
**************************************************************************
* Prototypes
**************************************************************************
@@ -2470,7 +2623,7 @@
d like(CURLcode)
d part * value curl_mimepart *
d data * value options(*string)
- d datasize 10u 0 size_t
+ d datasize 10u 0 value size_t
*
d curl_mime_filedata...
d pr extproc('curl_mime_filedata')
@@ -2671,6 +2824,14 @@
d offsetarg value like(curl_off_t)
d options(*nopass)
*
+ d curl_easy_setopt_blob...
+ d pr extproc('curl_easy_setopt')
+ d like(CURLcode)
+ d curl * value CURL *
+ d option value like(CURLoption)
+ d blob const likeds(curl_blob)
+ d options(*nopass)
+ *
*
d curl_easy_perform...
d pr extproc('curl_easy_perform')
@@ -2940,6 +3101,43 @@
d pr * extproc('curl_easy_next') curl_easyoption *
d prev * value curl_easyoption *
*
+ d curl_ws_recv pr extproc('curl_ws_recv')
+ d like(CURLcode)
+ d curl * value CURL *
+ d buffer * value void *
+ d buflen 10u 0 value size_t
+ d recv 10u 0 size_t *
+ d metap likeds(curl_ws_frame)
+ *
+ d curl_ws_send pr extproc('curl_ws_send')
+ d like(CURLcode)
+ d curl * value CURL *
+ d buffer * value const void *
+ d buflen 10u 0 value size_t
+ d sent 10u 0 size_t *
+ d framesize like(curl_off_t)
+ d sendflags 10u 0 value
+ *
+ d curl_ws_meta pr * extproc('curl_ws_meta') curl_ws_frame *
+ d curl * value CURL *
+ *
+ d curl_easy_header...
+ d pr extproc('curl_easy_header') curl_header *
+ d like(CURLHcode)
+ d curl * value CURL *
+ d name * value options(*string) const char *
+ d index 10u 0 value size_t
+ d origin 10u 0 value
+ d request 10i 0 value
+ d hout * curl_header **
+ *
+ d curl_easy_nextheader...
+ d pr * extproc('curl_easy_nextheader') curl_header *
+ d curl * value CURL *
+ d origin 10u 0 value
+ d request 10i 0 value
+ d prev * value curl_header *
+ *
**************************************************************************
* CCSID wrapper procedure prototypes
**************************************************************************
@@ -3038,6 +3236,15 @@
d objectarg * value options(*string: *nopass)
d ccsid 10u 0 value options(*nopass)
*
+ d curl_easy_setopt_blob_ccsid...
+ d pr extproc('curl_easy_setopt_ccsid')
+ d like(CURLcode)
+ d curl * value CURL *
+ d option value like(CURLoption)
+ d blob const likeds(curl_blob)
+ d options(*nopass)
+ d ccsid 10u 0 value options(*nopass)
+ *
d curl_pushheader_bynum_ccsid...
d pr * extproc( char *
d 'curl_pushheader_bynum_ccsid')
@@ -3086,7 +3293,7 @@
d like(CURLcode)
d part * value curl_mimepart *
d data * value options(*string)
- d datasize 10u 0 size_t
+ d datasize 10u 0 value size_t
d ccsid 10u 0 value
*
d curl_mime_filedata_ccsid...
@@ -3114,6 +3321,11 @@
d flags 10u 0 value
d ccsid 10u 0 value
*
+ d curl_url_strerror_ccsid...
+ d pr * extproc('curl_url_strerror_ccsid') const char *
+ d code value like(CURLUcode)
+ d ccsid 10u 0 value
+ *
d curl_easy_option_by_name_ccsid...
d pr * extproc( curl_easyoption *
d 'curl_easy_option_by_name_ccsid')
@@ -3126,4 +3338,25 @@
d option * value curl_easyoption *
d ccsid 10u 0 value
*
+ d curl_easy_header_ccsid...
+ d pr extproc('curl_easy_header_ccsid') curl_header *
+ d like(CURLHcode)
+ d curl * value CURL *
+ d name * value options(*string) const char *
+ d index 10u 0 value size_t
+ d origin 10u 0 value
+ d request 10i 0 value
+ d hout * curl_header **
+ d ccsid 10u 0 value
+ *
+ d curl_from_ccsid...
+ d pr * extproc('curl_from_ccsid') const char *
+ d s * value options(*string) const char *
+ d ccsid 10u 0 value
+ *
+ d curl_to_ccsid...
+ d pr * extproc('curl_to_ccsid') const char *
+ d s * value options(*string) const char *
+ d ccsid 10u 0 value
+ *
/endif