diff options
| author | Sven Nierlein <sven@nierlein.de> | 2020-09-23 17:19:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-23 17:19:23 +0200 |
| commit | 739a7bbe7ceacab9809998d9bf06a4460b44c522 (patch) | |
| tree | aacca7151874c919a4cb1dcbdc31af56bc7563b8 | |
| parent | cadac85e12d48d662ff39bfc9f5feb5601af1485 (diff) | |
| parent | 09a2210c477932c8df40ff820414b3a9bbec10fb (diff) | |
| download | monitoring-plugins-739a7bb.tar.gz | |
Merge pull request #1514 from Rasp8e/master
Proxy authorization is now kept when using PROXY + CONNECT to HTTPS
| -rw-r--r-- | plugins/check_http.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/plugins/check_http.c b/plugins/check_http.c index de59a068..e2298b17 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
| @@ -931,6 +931,21 @@ check_http (void) | |||
| 931 | 931 | ||
| 932 | if (verbose) printf ("Entering CONNECT tunnel mode with proxy %s:%d to dst %s:%d\n", server_address, server_port, host_name, HTTPS_PORT); | 932 | if (verbose) printf ("Entering CONNECT tunnel mode with proxy %s:%d to dst %s:%d\n", server_address, server_port, host_name, HTTPS_PORT); |
| 933 | asprintf (&buf, "%s %s:%d HTTP/1.1\r\n%s\r\n", http_method, host_name, HTTPS_PORT, user_agent); | 933 | asprintf (&buf, "%s %s:%d HTTP/1.1\r\n%s\r\n", http_method, host_name, HTTPS_PORT, user_agent); |
| 934 | if (strlen(proxy_auth)) { | ||
| 935 | base64_encode_alloc (proxy_auth, strlen (proxy_auth), &auth); | ||
| 936 | xasprintf (&buf, "%sProxy-Authorization: Basic %s\r\n", buf, auth); | ||
| 937 | } | ||
| 938 | /* optionally send any other header tag */ | ||
| 939 | if (http_opt_headers_count) { | ||
| 940 | for (i = 0; i < http_opt_headers_count ; i++) { | ||
| 941 | if (force_host_header != http_opt_headers[i]) { | ||
| 942 | xasprintf (&buf, "%s%s\r\n", buf, http_opt_headers[i]); | ||
| 943 | } | ||
| 944 | } | ||
| 945 | /* This cannot be free'd here because a redirection will then try to access this and segfault */ | ||
| 946 | /* Covered in a testcase in tests/check_http.t */ | ||
| 947 | /* free(http_opt_headers); */ | ||
| 948 | } | ||
| 934 | asprintf (&buf, "%sProxy-Connection: keep-alive\r\n", buf); | 949 | asprintf (&buf, "%sProxy-Connection: keep-alive\r\n", buf); |
| 935 | asprintf (&buf, "%sHost: %s\r\n", buf, host_name); | 950 | asprintf (&buf, "%sHost: %s\r\n", buf, host_name); |
| 936 | /* we finished our request, send empty line with CRLF */ | 951 | /* we finished our request, send empty line with CRLF */ |
