From d2bcf1e3e247d116dc96bd3ea32056e3f089449c Mon Sep 17 00:00:00 2001 From: "Desmond O. Chang" Date: Thu, 28 Apr 2016 17:33:25 +0800 Subject: url: add option CURLOPT_SUPPRESS_CONNECT_HEADERS - Add new option CURLOPT_SUPPRESS_CONNECT_HEADERS to allow suppressing proxy CONNECT response headers from the user callback functions CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION. - Add new tool option --suppress-connect-headers to expose CURLOPT_SUPPRESS_CONNECT_HEADERS and allow suppressing proxy CONNECT response headers from --dump-header and --include. Assisted-by: Jay Satiro Assisted-by: CarloCannas@users.noreply.github.com Closes https://github.com/curl/curl/pull/783 --- src/tool_cfgable.h | 2 ++ src/tool_getparam.c | 4 ++++ src/tool_help.c | 1 + src/tool_operate.c | 5 ++++- 4 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index b05c440e5..b7fe1d340 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -235,6 +235,8 @@ struct OperationConfig { bool falsestart; bool path_as_is; double expect100timeout; + bool suppress_connect_headers; /* suppress proxy CONNECT response headers + from user callbacks */ struct GlobalConfig *global; struct OperationConfig *prev; struct OperationConfig *next; /* Always last in the struct */ diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 85d75ae6e..e7ac35476 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -185,6 +185,7 @@ static const struct LongShort aliases[]= { {"$U", "connect-to", TRUE}, {"$W", "abstract-unix-socket", TRUE}, {"$X", "tls-max", TRUE}, + {"$Y", "suppress-connect-headers", FALSE}, {"0", "http1.0", FALSE}, {"01", "http1.1", FALSE}, {"02", "http2", FALSE}, @@ -1066,6 +1067,9 @@ ParameterError getparameter(char *flag, /* f or -long-flag */ if(err) return err; break; + case 'Y': /* --suppress-connect-headers */ + config->suppress_connect_headers = toggle; + break; } break; case '#': /* --progress-bar */ diff --git a/src/tool_help.c b/src/tool_help.c index f6fe3527b..86d35899a 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -249,6 +249,7 @@ static const char *const helptext[] = { " --ssl-allow-beast Allow security flaw to improve interop (SSL)", " --ssl-no-revoke Disable cert revocation checks (WinSSL)", " --stderr FILE Where to redirect stderr (use \"-\" for stdout)", + " --suppress-connect-headers Suppress proxy CONNECT response headers", " --tcp-nodelay Use the TCP_NODELAY option", " --tcp-fastopen Use TCP Fast Open", " -t, --telnet-option OPT=VAL Set telnet option", diff --git a/src/tool_operate.c b/src/tool_operate.c index a489b8dbd..8f767152a 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -886,8 +886,11 @@ static CURLcode operate_do(struct GlobalConfig *global, /* new in libcurl 7.19.4 */ my_setopt_str(curl, CURLOPT_NOPROXY, config->noproxy); + + my_setopt(curl, CURLOPT_SUPPRESS_CONNECT_HEADERS, + config->suppress_connect_headers?1L:0L); } -#endif +#endif /* !CURL_DISABLE_PROXY */ my_setopt(curl, CURLOPT_FAILONERROR, config->failonerror?1L:0L); my_setopt(curl, CURLOPT_UPLOAD, uploadfile?1L:0L); -- cgit v1.2.3