From a77b640cc0ddace57758946881294db6f03db16e Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 5 Nov 2018 15:37:23 +0100 Subject: OS400: add URL API ccsid wrappers and sync ILE/RPG bindings --- packages/OS400/ccsidcurl.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'packages/OS400/ccsidcurl.c') diff --git a/packages/OS400/ccsidcurl.c b/packages/OS400/ccsidcurl.c index af53f6761..b1d3ba845 100644 --- a/packages/OS400/ccsidcurl.c +++ b/packages/OS400/ccsidcurl.c @@ -1125,7 +1125,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...) if(testwarn) { testwarn = 0; - if((int) STRING_LASTZEROTERMINATED != (int) STRING_TARGET + 1 || + if((int) STRING_LASTZEROTERMINATED != (int) STRING_DOH + 1 || (int) STRING_LAST != (int) STRING_COPYPOSTFIELDS + 1) curl_mfprintf(stderr, "*** WARNING: curl_easy_setopt_ccsid() should be reworked ***\n"); @@ -1147,6 +1147,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...) case CURLOPT_CUSTOMREQUEST: case CURLOPT_DEFAULT_PROTOCOL: case CURLOPT_DNS_SERVERS: + case CURLOPT_DOH_URL: case CURLOPT_EGDSOCKET: case CURLOPT_ENCODING: case CURLOPT_FTPPORT: @@ -1424,3 +1425,46 @@ curl_mime_data_ccsid(curl_mimepart *part, free(s); return result; } + +CURLUcode +curl_url_get_ccsid(CURLU *handle, CURLUPart what, char **part, + unsigned int flags, unsigned int ccsid) + +{ + char *s = (char *)NULL; + CURLUcode result; + + if(!part) + return CURLUE_BAD_PARTPOINTER; + + *part = (char *)NULL; + result = curl_url_get(handle, what, &s, flags); + if(result == CURLUE_OK) { + if(s) { + *part = dynconvert(ccsid, s, -1, ccsid, ASCII_CCSID); + if(!*part) + result = CURLUE_OUT_OF_MEMORY; + } + if(s) + free(s); + return result; +} + +CURLUcode +curl_url_set_ccsid(CURLU *handle, CURLUPart what, const char *part, + unsigned int flags, unsigned int ccsid) + +{ + char *s = (char *)NULL; + CURLUcode result; + + if(part) { + s = dynconvert(ASCII_CCSID, part, -1, ccsid); + if(!s) + return CURLUE_OUT_OF_MEMORY; + } + result = curl_url_set(handle, what, s, flags); + if(s) + free(s); + return result; +} -- cgit v1.2.3