From 071c56139463137a4e32a8d841a70c16f3682bb7 Mon Sep 17 00:00:00 2001 From: Frank Gevaerts Date: Wed, 11 May 2016 14:23:37 +0200 Subject: http: add CURLINFO_HTTP_VERSION and %{http_version} Adds access to the effectively used http version to both libcurl and curl. Closes #799 --- src/tool_writeout.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/tool_writeout.c b/src/tool_writeout.c index 414fcbea9..6e94afe42 100644 --- a/src/tool_writeout.c +++ b/src/tool_writeout.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2015, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2016, 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 @@ -57,6 +57,7 @@ typedef enum { VAR_PRIMARY_PORT, VAR_LOCAL_IP, VAR_LOCAL_PORT, + VAR_HTTP_VERSION, VAR_NUM_OF_VARS /* must be the last */ } replaceid; @@ -95,6 +96,7 @@ static const struct variable replacements[]={ {"remote_port", VAR_PRIMARY_PORT}, {"local_ip", VAR_LOCAL_IP}, {"local_port", VAR_LOCAL_PORT}, + {"http_version", VAR_HTTP_VERSION}, {NULL, VAR_NONE} }; @@ -278,6 +280,26 @@ void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo) &longinfo)) fprintf(stream, "%ld", longinfo); break; + case VAR_HTTP_VERSION: + if(CURLE_OK == + curl_easy_getinfo(curl, CURLINFO_HTTP_VERSION, + &longinfo)) { + const char *version = "0"; + switch (longinfo) { + case CURL_HTTP_VERSION_1_0: + version = "1.0"; + break; + case CURL_HTTP_VERSION_1_1: + version = "1.1"; + break; + case CURL_HTTP_VERSION_2_0: + version = "2"; + break; + } + + fprintf(stream, version); + } + break; default: break; } -- cgit v1.2.3