diff options
| author | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-09-11 13:44:55 +0200 |
|---|---|---|
| committer | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-09-11 13:44:55 +0200 |
| commit | 99206dab7aa272e5c16c672dca81e6044ac7a4eb (patch) | |
| tree | 4741f0d1cb261a9d13ab705f71522fbbf3db059b /plugins/check_curl.d | |
| parent | 6969f5719268dec6459d9107e11a711dab3a18dd (diff) | |
| download | monitoring-plugins-99206dab7aa272e5c16c672dca81e6044ac7a4eb.tar.gz | |
check_curl: refactoring to modularize code
Diffstat (limited to 'plugins/check_curl.d')
| -rw-r--r-- | plugins/check_curl.d/config.h | 78 |
1 files changed, 45 insertions, 33 deletions
diff --git a/plugins/check_curl.d/config.h b/plugins/check_curl.d/config.h index 7566b19c..be25d1bb 100644 --- a/plugins/check_curl.d/config.h +++ b/plugins/check_curl.d/config.h | |||
| @@ -65,27 +65,32 @@ check_curl_working_state check_curl_working_state_init() { | |||
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | typedef struct { | 67 | typedef struct { |
| 68 | check_curl_working_state initial_config; | ||
| 69 | sa_family_t sin_family; | ||
| 70 | |||
| 71 | bool automatic_decompression; | 68 | bool automatic_decompression; |
| 72 | bool haproxy_protocol; | 69 | bool haproxy_protocol; |
| 70 | long socket_timeout; | ||
| 71 | sa_family_t sin_family; | ||
| 72 | int curl_http_version; | ||
| 73 | char **http_opt_headers; | ||
| 74 | size_t http_opt_headers_count; | ||
| 75 | int ssl_version; | ||
| 73 | char *client_cert; | 76 | char *client_cert; |
| 74 | char *client_privkey; | 77 | char *client_privkey; |
| 75 | char *ca_cert; | 78 | char *ca_cert; |
| 76 | int ssl_version; | 79 | bool verify_peer_and_host; |
| 77 | char user_agent[DEFAULT_BUFFER_SIZE]; | 80 | char user_agent[DEFAULT_BUFFER_SIZE]; |
| 78 | char **http_opt_headers; | ||
| 79 | size_t http_opt_headers_count; | ||
| 80 | int max_depth; | ||
| 81 | char *http_content_type; | ||
| 82 | long socket_timeout; | ||
| 83 | char user_auth[MAX_INPUT_BUFFER]; | ||
| 84 | char proxy_auth[MAX_INPUT_BUFFER]; | 81 | char proxy_auth[MAX_INPUT_BUFFER]; |
| 82 | char user_auth[MAX_INPUT_BUFFER]; | ||
| 83 | char *http_content_type; | ||
| 84 | char *cookie_jar_file; | ||
| 85 | } check_curl_static_curl_config; | ||
| 86 | |||
| 87 | typedef struct { | ||
| 88 | check_curl_working_state initial_config; | ||
| 89 | |||
| 90 | check_curl_static_curl_config curl_config; | ||
| 91 | int max_depth; | ||
| 85 | int followmethod; | 92 | int followmethod; |
| 86 | int followsticky; | 93 | int followsticky; |
| 87 | int curl_http_version; | ||
| 88 | char *cookie_jar_file; | ||
| 89 | 94 | ||
| 90 | int maximum_age; | 95 | int maximum_age; |
| 91 | 96 | ||
| @@ -97,7 +102,6 @@ typedef struct { | |||
| 97 | 102 | ||
| 98 | mp_state_enum state_regex; | 103 | mp_state_enum state_regex; |
| 99 | bool invert_regex; | 104 | bool invert_regex; |
| 100 | bool verify_peer_and_host; | ||
| 101 | bool check_cert; | 105 | bool check_cert; |
| 102 | bool continue_after_check_cert; | 106 | bool continue_after_check_cert; |
| 103 | int days_till_exp_warn; | 107 | int days_till_exp_warn; |
| @@ -111,7 +115,8 @@ typedef struct { | |||
| 111 | } server_expect; | 115 | } server_expect; |
| 112 | char string_expect[MAX_INPUT_BUFFER]; | 116 | char string_expect[MAX_INPUT_BUFFER]; |
| 113 | char header_expect[MAX_INPUT_BUFFER]; | 117 | char header_expect[MAX_INPUT_BUFFER]; |
| 114 | mp_state_enum onredirect; | 118 | mp_state_enum on_redirect_result_state; |
| 119 | bool on_redirect_dependent; | ||
| 115 | 120 | ||
| 116 | bool show_extended_perfdata; | 121 | bool show_extended_perfdata; |
| 117 | bool show_body; | 122 | bool show_body; |
| @@ -122,33 +127,35 @@ check_curl_config check_curl_config_init() { | |||
| 122 | check_curl_config tmp = { | 127 | check_curl_config tmp = { |
| 123 | .initial_config = check_curl_working_state_init(), | 128 | .initial_config = check_curl_working_state_init(), |
| 124 | 129 | ||
| 125 | .sin_family = AF_UNSPEC, | 130 | .curl_config = |
| 126 | 131 | { | |
| 127 | .automatic_decompression = false, | 132 | .automatic_decompression = false, |
| 128 | .haproxy_protocol = false, | 133 | .socket_timeout = DEFAULT_SOCKET_TIMEOUT, |
| 129 | .client_cert = NULL, | 134 | .haproxy_protocol = false, |
| 130 | .client_privkey = NULL, | 135 | .sin_family = AF_UNSPEC, |
| 131 | .ca_cert = NULL, | 136 | .curl_http_version = CURL_HTTP_VERSION_NONE, |
| 132 | .ssl_version = CURL_SSLVERSION_DEFAULT, | 137 | .http_opt_headers = NULL, |
| 133 | .user_agent = {'\0'}, | 138 | .http_opt_headers_count = 0, |
| 134 | .http_opt_headers = NULL, | 139 | .ssl_version = CURL_SSLVERSION_DEFAULT, |
| 135 | .http_opt_headers_count = 0, | 140 | .client_cert = NULL, |
| 141 | .client_privkey = NULL, | ||
| 142 | .ca_cert = NULL, | ||
| 143 | .verify_peer_and_host = false, | ||
| 144 | .user_agent = {'\0'}, | ||
| 145 | .proxy_auth = "", | ||
| 146 | .user_auth = "", | ||
| 147 | .http_content_type = NULL, | ||
| 148 | .cookie_jar_file = NULL, | ||
| 149 | }, | ||
| 136 | .max_depth = DEFAULT_MAX_REDIRS, | 150 | .max_depth = DEFAULT_MAX_REDIRS, |
| 137 | .http_content_type = NULL, | ||
| 138 | .socket_timeout = DEFAULT_SOCKET_TIMEOUT, | ||
| 139 | .user_auth = "", | ||
| 140 | .proxy_auth = "", | ||
| 141 | .followmethod = FOLLOW_HTTP_CURL, | 151 | .followmethod = FOLLOW_HTTP_CURL, |
| 142 | .followsticky = STICKY_NONE, | 152 | .followsticky = STICKY_NONE, |
| 143 | .curl_http_version = CURL_HTTP_VERSION_NONE, | ||
| 144 | .cookie_jar_file = NULL, | ||
| 145 | 153 | ||
| 146 | .maximum_age = -1, | 154 | .maximum_age = -1, |
| 147 | .regexp = {}, | 155 | .regexp = {}, |
| 148 | .compiled_regex = {}, | 156 | .compiled_regex = {}, |
| 149 | .state_regex = STATE_CRITICAL, | 157 | .state_regex = STATE_CRITICAL, |
| 150 | .invert_regex = false, | 158 | .invert_regex = false, |
| 151 | .verify_peer_and_host = false, | ||
| 152 | .check_cert = false, | 159 | .check_cert = false, |
| 153 | .continue_after_check_cert = false, | 160 | .continue_after_check_cert = false, |
| 154 | .days_till_exp_warn = 0, | 161 | .days_till_exp_warn = 0, |
| @@ -163,11 +170,16 @@ check_curl_config check_curl_config_init() { | |||
| 163 | }, | 170 | }, |
| 164 | .string_expect = "", | 171 | .string_expect = "", |
| 165 | .header_expect = "", | 172 | .header_expect = "", |
| 166 | .onredirect = STATE_OK, | 173 | .on_redirect_result_state = STATE_OK, |
| 174 | .on_redirect_dependent = true, | ||
| 167 | 175 | ||
| 168 | .show_extended_perfdata = false, | 176 | .show_extended_perfdata = false, |
| 169 | .show_body = false, | 177 | .show_body = false, |
| 170 | .display_html = false, | 178 | .display_html = false, |
| 171 | }; | 179 | }; |
| 180 | |||
| 181 | snprintf(tmp.curl_config.user_agent, DEFAULT_BUFFER_SIZE, "%s/v%s (monitoring-plugins %s, %s)", | ||
| 182 | "check_curl", NP_VERSION, VERSION, curl_version()); | ||
| 183 | |||
| 172 | return tmp; | 184 | return tmp; |
| 173 | } | 185 | } |
