aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorPatrick Monnerat <pm@datasphere.ch>2015-07-21 16:36:34 +0200
committerPatrick Monnerat <pm@datasphere.ch>2015-07-21 16:36:34 +0200
commit32d4260c2d93503f035ee97e7eb92faf5c2ec6ae (patch)
tree13c4eb0feb4b9b06a254b5ee006ffcdd99e5df14 /packages
parent1df8d283817156156696fcf45133b31d10d94702 (diff)
os400: ebcdic wrappers for new functions. Upgrade ILE/RPG bindings.
Diffstat (limited to 'packages')
-rw-r--r--packages/OS400/README.OS40014
-rw-r--r--packages/OS400/ccsidcurl.c39
-rw-r--r--packages/OS400/ccsidcurl.h6
-rw-r--r--packages/OS400/curl.inc.in54
-rw-r--r--packages/OS400/makefile.sh2
5 files changed, 110 insertions, 5 deletions
diff --git a/packages/OS400/README.OS400 b/packages/OS400/README.OS400
index 0cb1cf294..269ead33e 100644
--- a/packages/OS400/README.OS400
+++ b/packages/OS400/README.OS400
@@ -148,7 +148,7 @@ parameter/array boundary.
Please note that CURLFORM_PTRCONTENTS and CURLFORM_BUFFERPTR are considered
unconvertible strings and thus are NOT followed by a CCSID.
-_ curl_easy_getinfo_ccsid
+_ curl_easy_getinfo_ccsid()
The following options are followed by a 'char * *' and a CCSID. Unlike
curl_easy_getinfo(), the value returned in the pointer should be freed after
use:
@@ -169,6 +169,14 @@ CCSID. Returned structures sould be free'ed using curl_certinfo_free_all() after
use.
Other options are processed like in curl_easy_getinfo().
+_ curl_pushheader_bynum_cssid() and curl_pushheader_byname_ccsid()
+ Although the prototypes are self-explanatory, the returned string pointer
+should be freed after use, as opposite to the non-ccsid versions of these
+procedures.
+ Please note that HTTP2 is not (yet) implemented on OS/400, thus these
+functions will always return NULL.
+
+
Standard compilation environment does support neither autotools nor make;
in fact, very few common utilities are available. As a consequence, the
config-os400.h has been coded manually and the compilation scripts are
@@ -265,14 +273,14 @@ _ Do not use original source include files unless you know what you are doing.
ILE/RPG support:
Since 95% of the OS/400 programmers use ILE/RPG exclusively, a definition
- /COPY member is provided for this language. To include all libcurl
+ /INCLUDE member is provided for this language. To include all libcurl
definitions in an ILE/RPG module, line
h bnddir('CURL/CURL')
must figure in the program header, and line
- d/copy curl/h,curl.inc
+ d/include curl/h,curl.inc
in the global data section of the module's source code.
diff --git a/packages/OS400/ccsidcurl.c b/packages/OS400/ccsidcurl.c
index a903fe34a..7b7607130 100644
--- a/packages/OS400/ccsidcurl.c
+++ b/packages/OS400/ccsidcurl.c
@@ -1278,3 +1278,42 @@ curl_form_long_value(long value)
return (char *) value;
}
+
+
+char *
+curl_pushheader_bynum_cssid(struct curl_pushheaders *h,
+ size_t num, unsigned int ccsid)
+
+{
+ char *d = (char *) NULL;
+ char *s = curl_pushheader_bynum(h, num);
+
+ if(s)
+ d = dynconvert(ccsid, s, -1, ASCII_CCSID);
+
+ return d;
+}
+
+
+char *
+curl_pushheader_byname_ccsid(struct curl_pushheaders *h, const char *header,
+ unsigned int ccsidin, unsigned int ccsidout)
+
+{
+ char *d = (char *) NULL;
+ char *s;
+
+ if(header) {
+ header = dynconvert(ASCII_CCSID, header, -1, ccsidin);
+
+ if(header) {
+ s = curl_pushheader_byname(h, header);
+ free((char *) header);
+
+ if(s)
+ d = dynconvert(ccsidout, s, -1, ASCII_CCSID);
+ }
+ }
+
+ return d;
+}
diff --git a/packages/OS400/ccsidcurl.h b/packages/OS400/ccsidcurl.h
index 3d1fe7949..cb15cced8 100644
--- a/packages/OS400/ccsidcurl.h
+++ b/packages/OS400/ccsidcurl.h
@@ -61,5 +61,11 @@ CURL_EXTERN int curl_formget_ccsid(struct curl_httppost * form, void * arg,
unsigned int ccsid);
CURL_EXTERN CURLcode curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...);
CURL_EXTERN void curl_certinfo_free_all(struct curl_certinfo *info);
+CURL_EXTERN char *curl_pushheader_bynum_cssid(struct curl_pushheaders *h,
+ size_t num, unsigned int ccsid);
+CURL_EXTERN char *curl_pushheader_byname_ccsid(struct curl_pushheaders *h,
+ const char *header,
+ unsigned int ccsidin,
+ unsigned int ccsidout);
#endif
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index 2bbf6b0ff..1221015e5 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -222,6 +222,8 @@
d c 2
d CURL_HTTP_VERSION_2_0...
d c 3
+ d CURL_HTTP_VERSION_2...
+ d c 3
*
d CURL_NETRC_IGNORED...
d c 0
@@ -276,6 +278,9 @@
d CURL_CSELECT_ERR...
d c X'00000004'
*
+ d CURL_PUSH_OK c 0
+ d CURL_PUSH_DENY c 1
+ *
d CURLPAUSE_RECV c X'00000001'
d CURLPAUSE_RECV_CONT...
d c X'00000000'
@@ -676,7 +681,9 @@
d c 3
*
d CURLSSLOPT_ALLOW_BEAST...
- d c 1
+ d c X'0001'
+ d CURLSSLOPT_NO_REVOKE...
+ d c X'0002'
*
/if not defined(CURL_NO_OLDIES)
d curl_ftpssl s like(curl_usessl)
@@ -1215,6 +1222,8 @@
d c 10235
d CURLOPT_SERVICE_NAME...
d c 10236
+ d CURLOPT_PIPEWAIT...
+ d c 00237
*
/if not defined(CURL_NO_OLDIES)
d CURLOPT_FILE c 10001
@@ -1573,6 +1582,18 @@
d c 10012
d CURLMOPT_MAX_TOTAL_CONNECTIONS...
d c 00013
+ d CURLMOPT_PUSHFUNCTION...
+ d c 20014
+ d CURLMOPT_PUSHDATA...
+ d c 10015
+ *
+ * Bitmask bits for CURLMOPT_PIPELING.
+ *
+ d CURLPIPE_NOTHING...
+ d c x'00000000'
+ d CURLPIPE_HTTP1 c x'00000001'
+ d CURLPIPE_MULTIPLEX...
+ d c x'00000002'
*
* Public API enums for RTSP requests.
*
@@ -1791,6 +1812,12 @@
d curl_socket_callback...
d s * based(######ptr######) procptr
*
+ d curl_multi_timer_callback...
+ d s * based(######ptr######) procptr
+ *
+ d curl_push_callback...
+ d s * based(######ptr######) procptr
+ *
d curl_opensocket_callback...
d s * based(######ptr######) procptr
*
@@ -2106,6 +2133,16 @@
d pr * extproc('curl_multi_strerror') char *
d code value like(CURLMcode)
*
+ d curl_pushheader_bynum...
+ d pr * extproc('curl_pushheader_bynum') char *
+ d h * value curl_pushheaders *
+ d num 10u 0 value
+ *
+ d curl_pushheader_byname...
+ d pr * extproc('curl_pushheader_byname') char *
+ d h * value curl_pushheaders *
+ d header * value options(*string) const char *
+ *
d curl_multi_socket...
d pr extproc('curl_multi_socket')
d like(CURLMcode)
@@ -2273,4 +2310,19 @@
d objectarg * value options(*string: *nopass)
d ccsid 10u 0 value options(*nopass)
*
+ d curl_pushheader_bynum_ccsid...
+ d pr * extproc( char *
+ d 'curl_pushheader_bynum_ccsid')
+ d h * value curl_pushheaders *
+ d num 10u 0 value
+ d ccsid 10u 0 value
+ *
+ d curl_pushheader_byname_ccsid...
+ d pr * extproc( char *
+ d 'curl_pushheader_byname_ccsid')
+ d h * value curl_pushheaders *
+ d header * value options(*string) const char *
+ d ccsidin 10u 0 value
+ d ccsidout 10u 0 value
+ *
/endif
diff --git a/packages/OS400/makefile.sh b/packages/OS400/makefile.sh
index d2b6bc98a..141d8778c 100644
--- a/packages/OS400/makefile.sh
+++ b/packages/OS400/makefile.sh
@@ -21,7 +21,7 @@ fi
# Create the DOCS source file if it does not exist.
if action_needed "${LIBIFSNAME}/DOCS.FILE"
-then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(240)"
CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
system "${CMD}"
fi