Adding d/p/19_check_curl_cookie_handling from upstream
https://patch-diff.githubusercontent.com/raw/monitoring-plugins/monitoring-plugins/pull/2052.patch
This commit is contained in:
parent
043d328f4e
commit
bf6001384f
2 changed files with 47 additions and 0 deletions
46
debian/patches/19_check_curl_cookie_handling
vendored
Normal file
46
debian/patches/19_check_curl_cookie_handling
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
From 191d15354ba32a483fd4f8017595c7eb82ee5650 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= <kandre@ak-online.be>
|
||||
Date: Fri, 29 Nov 2024 10:34:16 +0100
|
||||
Subject: [PATCH] check_curl: enable internal cookie handling
|
||||
|
||||
This enables us to enable curl cookie engine by specifying an empty
|
||||
filename as the cookie jar file.
|
||||
|
||||
This works, since curl's CURLOPT_COOKIEFILE option allows passing an
|
||||
empty string as filename, which it interprets as a request to enable the
|
||||
cookie processing. But since CURLOPT_COOKIEJAR would now attempt to
|
||||
write to a file named by an empty filename, it would break again (or at
|
||||
least produce a warning in verbose output).
|
||||
|
||||
Overall this is allows to handle checking URLs with cookie based
|
||||
sessions without persisting the cookies to disk, by using the
|
||||
curl-internal redirect following.
|
||||
---
|
||||
plugins/check_curl.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/plugins/check_curl.c
|
||||
+++ b/plugins/check_curl.c
|
||||
@@ -831,8 +831,11 @@
|
||||
|
||||
/* cookie handling */
|
||||
if (cookie_jar_file != NULL) {
|
||||
- handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEJAR, cookie_jar_file), "CURLOPT_COOKIEJAR");
|
||||
+ /* enable reading cookies from a file, and if the filename is an empty string, only enable the curl cookie engine */
|
||||
handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEFILE, cookie_jar_file), "CURLOPT_COOKIEFILE");
|
||||
+ /* now enable saving cookies to a file, but only if the filename is not an empty string, since writing it would fail */
|
||||
+ if (*cookie_jar_file)
|
||||
+ handle_curl_option_return_code(curl_easy_setopt(curl, CURLOPT_COOKIEJAR, cookie_jar_file), "CURLOPT_COOKIEJAR");
|
||||
}
|
||||
|
||||
/* do the request */
|
||||
@@ -2111,6 +2114,9 @@
|
||||
printf(" %s\n", "--haproxy-protocol");
|
||||
printf(" %s\n", _("Send HAProxy proxy protocol v1 header (CURLOPT_HAPROXYPROTOCOL)."));
|
||||
printf (" %s\n", "--cookie-jar=FILE");
|
||||
+ printf (" %s\n", _("Specify an empty string as FILE to enable curl's cookie engine without saving"));
|
||||
+ printf (" %s\n", _("the cookies to disk. Only enabling the engine without saving to disk requires"));
|
||||
+ printf (" %s\n", _("handling multiple requests internally to curl, so use it with --onredirect=curl"));
|
||||
printf (" %s\n", _("Store cookies in the cookie jar and send them out when requested."));
|
||||
printf ("\n");
|
||||
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
|
@ -10,4 +10,5 @@
|
|||
16_check_curl_openssl_error
|
||||
17_check_fping_dontfrag_random
|
||||
18_check_curl_fix_TLS_notes
|
||||
19_check_curl_cookie_handling
|
||||
# feature patches
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue