From 3b548ffde9f0ea85dd320ae6af23a2e3fdbb6d29 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Sat, 13 Jan 2018 01:20:40 +0100 Subject: [PATCH] setopt: reintroduce non-static Curl_vsetopt() for OS400 support This also upgrades ILE/RPG bindings with latest setopt options. Reported-By: jonrumsey on github Fixes #2230 Closes #2233 --- lib/setopt.c | 9 ++++----- lib/setopt.h | 4 +++- lib/url.h | 4 +--- packages/OS400/README.OS400 | 1 + packages/OS400/ccsidcurl.c | 8 +++++--- packages/OS400/curl.inc.in | 8 +++++++- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/setopt.c b/lib/setopt.c index 49b7fac63..60f3ae5a6 100644 --- a/lib/setopt.c +++ b/lib/setopt.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -110,8 +110,8 @@ static CURLcode setstropt_userpwd(char *option, char **userp, char **passwdp) #define C_SSLVERSION_VALUE(x) (x & 0xffff) #define C_SSLVERSION_MAX_VALUE(x) (x & 0xffff0000) -static CURLcode setopt(struct Curl_easy *data, CURLoption option, - va_list param) +CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, + va_list param) { char *argptr; CURLcode result = CURLE_OK; @@ -2547,9 +2547,8 @@ CURLcode curl_easy_setopt(struct Curl_easy *data, CURLoption tag, ...) va_start(arg, tag); - result = setopt(data, tag, arg); + result = Curl_vsetopt(data, tag, arg); va_end(arg); return result; } - diff --git a/lib/setopt.h b/lib/setopt.h index 35769440f..c658e04ae 100644 --- a/lib/setopt.h +++ b/lib/setopt.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -23,5 +23,7 @@ ***************************************************************************/ CURLcode Curl_setstropt(char **charp, const char *s); +CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, + va_list arg); #endif /* HEADER_CURL_SETOPT_H */ diff --git a/lib/url.h b/lib/url.h index 0fdb8cf28..a70bd5466 100644 --- a/lib/url.h +++ b/lib/url.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -34,8 +34,6 @@ CURLcode Curl_init_do(struct Curl_easy *data, struct connectdata *conn); CURLcode Curl_open(struct Curl_easy **curl); CURLcode Curl_init_userdefined(struct Curl_easy *data); -CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, - va_list arg); CURLcode Curl_dupset(struct Curl_easy * dst, struct Curl_easy * src); void Curl_freeset(struct Curl_easy * data); CURLcode Curl_close(struct Curl_easy *data); /* opposite of curl_open() */ diff --git a/packages/OS400/README.OS400 b/packages/OS400/README.OS400 index 3ee1c0fa5..f9817b4e0 100644 --- a/packages/OS400/README.OS400 +++ b/packages/OS400/README.OS400 @@ -113,6 +113,7 @@ options: CURLOPT_RANDOM_FILE CURLOPT_RANGE CURLOPT_REFERER + CURLOPT_REQUEST_TARGET CURLOPT_RTSP_SESSION_UID CURLOPT_RTSP_STREAM_URI CURLOPT_RTSP_TRANSPORT diff --git a/packages/OS400/ccsidcurl.c b/packages/OS400/ccsidcurl.c index de2c9cc01..0ca6d6866 100644 --- a/packages/OS400/ccsidcurl.c +++ b/packages/OS400/ccsidcurl.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -36,6 +36,7 @@ #include "slist.h" #include "urldata.h" #include "url.h" +#include "setopt.h" #include "getinfo.h" #include "ccsidcurl.h" @@ -1124,7 +1125,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...) if(testwarn) { testwarn = 0; - if((int) STRING_LASTZEROTERMINATED != (int) STRING_UNIX_SOCKET_PATH + 1 || + if((int) STRING_LASTZEROTERMINATED != (int) STRING_TARGET + 1 || (int) STRING_LAST != (int) STRING_COPYPOSTFIELDS + 1) curl_mfprintf(stderr, "*** WARNING: curl_easy_setopt_ccsid() should be reworked ***\n"); @@ -1184,6 +1185,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...) case CURLOPT_RANDOM_FILE: case CURLOPT_RANGE: case CURLOPT_REFERER: + case CURLOPT_REQUEST_TARGET: case CURLOPT_RTSP_SESSION_ID: case CURLOPT_RTSP_STREAM_URI: case CURLOPT_RTSP_TRANSPORT: @@ -1287,7 +1289,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...) case CURLOPT_ERRORBUFFER: /* This is an output buffer. */ default: - result = Curl_setopt(data, tag, arg); + result = Curl_vsetopt(data, tag, arg); break; } diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in index ff5e28eec..03603e290 100644 --- a/packages/OS400/curl.inc.in +++ b/packages/OS400/curl.inc.in @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -1314,8 +1314,14 @@ d c 10264 d CURLOPT_SUPPRESS_CONNECT_HEADERS... d c 00265 + d CURLOPT_REQUEST_TARGET... + d c 10266 + d CURLOPT_SOCKS5_AUTH... + d c 00267 d CURLOPT_SSH_COMPRESSION... d c 00268 + d CURLOPT_MIMEPOST... + d c 10269 * /if not defined(CURL_NO_OLDIES) d CURLOPT_FILE c 10001