Commit 32d4260c authored by Patrick Monnerat's avatar Patrick Monnerat
Browse files

os400: ebcdic wrappers for new functions. Upgrade ILE/RPG bindings.

parent 1df8d283
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -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.

+39 −0
Original line number Diff line number Diff line
@@ -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;
}
+6 −0
Original line number Diff line number Diff line
@@ -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
+53 −1
Original line number Diff line number Diff line
@@ -221,6 +221,8 @@
     d CURL_HTTP_VERSION_1_1...
     d                 c                   2
     d CURL_HTTP_VERSION_2_0...
     d                 c                   3
     d CURL_HTTP_VERSION_2...
     d                 c                   3
      *
     d CURL_NETRC_IGNORED...
@@ -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.
      *
@@ -1789,6 +1810,12 @@
     d                 s               *   based(######ptr######) procptr
      *
     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...
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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