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
This commit is contained in:
Patrick Monnerat 2018-01-13 01:20:40 +01:00
parent fa3dbb9a14
commit 3b548ffde9
6 changed files with 21 additions and 13 deletions

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * 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_VALUE(x) (x & 0xffff)
#define C_SSLVERSION_MAX_VALUE(x) (x & 0xffff0000) #define C_SSLVERSION_MAX_VALUE(x) (x & 0xffff0000)
static CURLcode setopt(struct Curl_easy *data, CURLoption option, CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
va_list param) va_list param)
{ {
char *argptr; char *argptr;
CURLcode result = CURLE_OK; CURLcode result = CURLE_OK;
@ -2547,9 +2547,8 @@ CURLcode curl_easy_setopt(struct Curl_easy *data, CURLoption tag, ...)
va_start(arg, tag); va_start(arg, tag);
result = setopt(data, tag, arg); result = Curl_vsetopt(data, tag, arg);
va_end(arg); va_end(arg);
return result; return result;
} }

View File

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * 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_setstropt(char **charp, const char *s);
CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
va_list arg);
#endif /* HEADER_CURL_SETOPT_H */ #endif /* HEADER_CURL_SETOPT_H */

View File

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * 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_init_do(struct Curl_easy *data, struct connectdata *conn);
CURLcode Curl_open(struct Curl_easy **curl); CURLcode Curl_open(struct Curl_easy **curl);
CURLcode Curl_init_userdefined(struct Curl_easy *data); 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); CURLcode Curl_dupset(struct Curl_easy * dst, struct Curl_easy * src);
void Curl_freeset(struct Curl_easy * data); void Curl_freeset(struct Curl_easy * data);
CURLcode Curl_close(struct Curl_easy *data); /* opposite of curl_open() */ CURLcode Curl_close(struct Curl_easy *data); /* opposite of curl_open() */

View File

@ -113,6 +113,7 @@ options:
CURLOPT_RANDOM_FILE CURLOPT_RANDOM_FILE
CURLOPT_RANGE CURLOPT_RANGE
CURLOPT_REFERER CURLOPT_REFERER
CURLOPT_REQUEST_TARGET
CURLOPT_RTSP_SESSION_UID CURLOPT_RTSP_SESSION_UID
CURLOPT_RTSP_STREAM_URI CURLOPT_RTSP_STREAM_URI
CURLOPT_RTSP_TRANSPORT CURLOPT_RTSP_TRANSPORT

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -36,6 +36,7 @@
#include "slist.h" #include "slist.h"
#include "urldata.h" #include "urldata.h"
#include "url.h" #include "url.h"
#include "setopt.h"
#include "getinfo.h" #include "getinfo.h"
#include "ccsidcurl.h" #include "ccsidcurl.h"
@ -1124,7 +1125,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...)
if(testwarn) { if(testwarn) {
testwarn = 0; 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) (int) STRING_LAST != (int) STRING_COPYPOSTFIELDS + 1)
curl_mfprintf(stderr, curl_mfprintf(stderr,
"*** WARNING: curl_easy_setopt_ccsid() should be reworked ***\n"); "*** 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_RANDOM_FILE:
case CURLOPT_RANGE: case CURLOPT_RANGE:
case CURLOPT_REFERER: case CURLOPT_REFERER:
case CURLOPT_REQUEST_TARGET:
case CURLOPT_RTSP_SESSION_ID: case CURLOPT_RTSP_SESSION_ID:
case CURLOPT_RTSP_STREAM_URI: case CURLOPT_RTSP_STREAM_URI:
case CURLOPT_RTSP_TRANSPORT: case CURLOPT_RTSP_TRANSPORT:
@ -1287,7 +1289,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...)
case CURLOPT_ERRORBUFFER: /* This is an output buffer. */ case CURLOPT_ERRORBUFFER: /* This is an output buffer. */
default: default:
result = Curl_setopt(data, tag, arg); result = Curl_vsetopt(data, tag, arg);
break; break;
} }

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -1314,8 +1314,14 @@
d c 10264 d c 10264
d CURLOPT_SUPPRESS_CONNECT_HEADERS... d CURLOPT_SUPPRESS_CONNECT_HEADERS...
d c 00265 d c 00265
d CURLOPT_REQUEST_TARGET...
d c 10266
d CURLOPT_SOCKS5_AUTH...
d c 00267
d CURLOPT_SSH_COMPRESSION... d CURLOPT_SSH_COMPRESSION...
d c 00268 d c 00268
d CURLOPT_MIMEPOST...
d c 10269
* *
/if not defined(CURL_NO_OLDIES) /if not defined(CURL_NO_OLDIES)
d CURLOPT_FILE c 10001 d CURLOPT_FILE c 10001