summaryrefslogtreecommitdiffstats
path: root/plugins/check_nt.c
diff options
context:
space:
mode:
authorLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-09-15 12:59:37 +0200
committerLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-09-15 12:59:37 +0200
commit802e46f8ea36c344f112d7e1dd8d64d17a4cc939 (patch)
treecabf480269113686430053d66df3dadcd4d137a7 /plugins/check_nt.c
parenta3cf9041af810770daf5d9b83f1906fa9bb0dd11 (diff)
downloadmonitoring-plugins-802e46f8ea36c344f112d7e1dd8d64d17a4cc939.tar.gz
Run clang-format again
Diffstat (limited to 'plugins/check_nt.c')
-rw-r--r--plugins/check_nt.c115
1 files changed, 74 insertions, 41 deletions
diff --git a/plugins/check_nt.c b/plugins/check_nt.c
index 7dd23e5c..35ca92cd 100644
--- a/plugins/check_nt.c
+++ b/plugins/check_nt.c
@@ -96,7 +96,8 @@ int main(int argc, char **argv) {
96 xasprintf(&send_buffer, "%s&1", config.req_password); 96 xasprintf(&send_buffer, "%s&1", config.req_password);
97 fetch_data(config.server_address, config.server_port, send_buffer); 97 fetch_data(config.server_address, config.server_port, send_buffer);
98 if (config.value_list != NULL && strcmp(recv_buffer, config.value_list) != 0) { 98 if (config.value_list != NULL && strcmp(recv_buffer, config.value_list) != 0) {
99 xasprintf(&output_message, _("Wrong client version - running: %s, required: %s"), recv_buffer, config.value_list); 99 xasprintf(&output_message, _("Wrong client version - running: %s, required: %s"),
100 recv_buffer, config.value_list);
100 return_code = STATE_WARNING; 101 return_code = STATE_WARNING;
101 } else { 102 } else {
102 xasprintf(&output_message, "%s", recv_buffer); 103 xasprintf(&output_message, "%s", recv_buffer);
@@ -116,9 +117,12 @@ int main(int argc, char **argv) {
116 117
117 /* loop until one of the parameters is wrong or not present */ 118 /* loop until one of the parameters is wrong or not present */
118 int offset = 0; 119 int offset = 0;
119 while (lvalue_list[0 + offset] > (unsigned long)0 && lvalue_list[0 + offset] <= (unsigned long)17280 && 120 while (lvalue_list[0 + offset] > (unsigned long)0 &&
120 lvalue_list[1 + offset] > (unsigned long)0 && lvalue_list[1 + offset] <= (unsigned long)100 && 121 lvalue_list[0 + offset] <= (unsigned long)17280 &&
121 lvalue_list[2 + offset] > (unsigned long)0 && lvalue_list[2 + offset] <= (unsigned long)100) { 122 lvalue_list[1 + offset] > (unsigned long)0 &&
123 lvalue_list[1 + offset] <= (unsigned long)100 &&
124 lvalue_list[2 + offset] > (unsigned long)0 &&
125 lvalue_list[2 + offset] <= (unsigned long)100) {
122 126
123 /* Send request and retrieve data */ 127 /* Send request and retrieve data */
124 xasprintf(&send_buffer, "%s&2&%lu", config.req_password, lvalue_list[0 + offset]); 128 xasprintf(&send_buffer, "%s&2&%lu", config.req_password, lvalue_list[0 + offset]);
@@ -133,10 +137,12 @@ int main(int argc, char **argv) {
133 return_code = STATE_WARNING; 137 return_code = STATE_WARNING;
134 } 138 }
135 139
136 xasprintf(&output_message, _(" %lu%% (%lu min average)"), utilization, lvalue_list[0 + offset]); 140 xasprintf(&output_message, _(" %lu%% (%lu min average)"), utilization,
141 lvalue_list[0 + offset]);
137 xasprintf(&temp_string, "%s%s", temp_string, output_message); 142 xasprintf(&temp_string, "%s%s", temp_string, output_message);
138 xasprintf(&perfdata, _(" '%lu min avg Load'=%lu%%;%lu;%lu;0;100"), lvalue_list[0 + offset], utilization, 143 xasprintf(&perfdata, _(" '%lu min avg Load'=%lu%%;%lu;%lu;0;100"),
139 lvalue_list[1 + offset], lvalue_list[2 + offset]); 144 lvalue_list[0 + offset], utilization, lvalue_list[1 + offset],
145 lvalue_list[2 + offset]);
140 xasprintf(&temp_string_perf, "%s%s", temp_string_perf, perfdata); 146 xasprintf(&temp_string_perf, "%s%s", temp_string_perf, perfdata);
141 offset += 3; /* move across the array */ 147 offset += 3; /* move across the array */
142 } 148 }
@@ -154,8 +160,10 @@ int main(int argc, char **argv) {
154 if (config.value_list == NULL) { 160 if (config.value_list == NULL) {
155 tmp_value_list = "minutes"; 161 tmp_value_list = "minutes";
156 } 162 }
157 if (strncmp(tmp_value_list, "seconds", strlen("seconds") + 1) && strncmp(tmp_value_list, "minutes", strlen("minutes") + 1) && 163 if (strncmp(tmp_value_list, "seconds", strlen("seconds") + 1) &&
158 strncmp(config.value_list, "hours", strlen("hours") + 1) && strncmp(tmp_value_list, "days", strlen("days") + 1)) { 164 strncmp(tmp_value_list, "minutes", strlen("minutes") + 1) &&
165 strncmp(config.value_list, "hours", strlen("hours") + 1) &&
166 strncmp(tmp_value_list, "days", strlen("days") + 1)) {
159 167
160 output_message = strdup(_("wrong -l argument")); 168 output_message = strdup(_("wrong -l argument"));
161 } else { 169 } else {
@@ -175,8 +183,9 @@ int main(int argc, char **argv) {
175 } 183 }
176 /* else uptime in seconds, nothing to do */ 184 /* else uptime in seconds, nothing to do */
177 185
178 xasprintf(&output_message, _("System Uptime - %u day(s) %u hour(s) %u minute(s) |uptime=%lu"), updays, uphours, upminutes, 186 xasprintf(&output_message,
179 uptime); 187 _("System Uptime - %u day(s) %u hour(s) %u minute(s) |uptime=%lu"), updays,
188 uphours, upminutes, uptime);
180 189
181 if (config.check_critical_value && uptime <= config.critical_value) { 190 if (config.check_critical_value && uptime <= config.critical_value) {
182 return_code = STATE_CRITICAL; 191 return_code = STATE_CRITICAL;
@@ -207,20 +216,27 @@ int main(int argc, char **argv) {
207 } 216 }
208 217
209 if (total_disk_space > 0 && free_disk_space >= 0) { 218 if (total_disk_space > 0 && free_disk_space >= 0) {
210 double percent_used_space = ((total_disk_space - free_disk_space) / total_disk_space) * 100; 219 double percent_used_space =
220 ((total_disk_space - free_disk_space) / total_disk_space) * 100;
211 double warning_used_space = ((float)config.warning_value / 100) * total_disk_space; 221 double warning_used_space = ((float)config.warning_value / 100) * total_disk_space;
212 double critical_used_space = ((float)config.critical_value / 100) * total_disk_space; 222 double critical_used_space =
213 223 ((float)config.critical_value / 100) * total_disk_space;
214 xasprintf(&temp_string, _("%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"), config.value_list, 224
215 total_disk_space / 1073741824, (total_disk_space - free_disk_space) / 1073741824, percent_used_space, 225 xasprintf(
216 free_disk_space / 1073741824, (free_disk_space / total_disk_space) * 100); 226 &temp_string,
217 xasprintf(&temp_string_perf, _("'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f"), config.value_list, 227 _("%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"),
218 (total_disk_space - free_disk_space) / 1073741824, warning_used_space / 1073741824, 228 config.value_list, total_disk_space / 1073741824,
219 critical_used_space / 1073741824, total_disk_space / 1073741824); 229 (total_disk_space - free_disk_space) / 1073741824, percent_used_space,
230 free_disk_space / 1073741824, (free_disk_space / total_disk_space) * 100);
231 xasprintf(&temp_string_perf, _("'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f"),
232 config.value_list, (total_disk_space - free_disk_space) / 1073741824,
233 warning_used_space / 1073741824, critical_used_space / 1073741824,
234 total_disk_space / 1073741824);
220 235
221 if (config.check_critical_value && percent_used_space >= config.critical_value) { 236 if (config.check_critical_value && percent_used_space >= config.critical_value) {
222 return_code = STATE_CRITICAL; 237 return_code = STATE_CRITICAL;
223 } else if (config.check_warning_value && percent_used_space >= config.warning_value) { 238 } else if (config.check_warning_value &&
239 percent_used_space >= config.warning_value) {
224 return_code = STATE_WARNING; 240 return_code = STATE_WARNING;
225 } else { 241 } else {
226 return_code = STATE_OK; 242 return_code = STATE_OK;
@@ -239,8 +255,10 @@ int main(int argc, char **argv) {
239 if (config.value_list == NULL) { 255 if (config.value_list == NULL) {
240 output_message = strdup(_("No service/process specified")); 256 output_message = strdup(_("No service/process specified"));
241 } else { 257 } else {
242 preparelist(config.value_list); /* replace , between services with & to send the request */ 258 preparelist(
243 xasprintf(&send_buffer, "%s&%u&%s&%s", config.req_password, (config.vars_to_check == CHECK_SERVICESTATE) ? 5 : 6, 259 config.value_list); /* replace , between services with & to send the request */
260 xasprintf(&send_buffer, "%s&%u&%s&%s", config.req_password,
261 (config.vars_to_check == CHECK_SERVICESTATE) ? 5 : 6,
244 (config.show_all) ? "ShowAll" : "ShowFail", config.value_list); 262 (config.show_all) ? "ShowAll" : "ShowFail", config.value_list);
245 fetch_data(config.server_address, config.server_port, send_buffer); 263 fetch_data(config.server_address, config.server_port, send_buffer);
246 char *numstr = strtok(recv_buffer, "&"); 264 char *numstr = strtok(recv_buffer, "&");
@@ -271,10 +289,14 @@ int main(int argc, char **argv) {
271 289
272 /* Divisor should be 1048567, not 3044515, as we are measuring "Commit Charge" here, 290 /* Divisor should be 1048567, not 3044515, as we are measuring "Commit Charge" here,
273 which equals RAM + Pagefiles. */ 291 which equals RAM + Pagefiles. */
274 xasprintf(&output_message, _("Memory usage: total:%.2f MB - used: %.2f MB (%.0f%%) - free: %.2f MB (%.0f%%)"), 292 xasprintf(
275 mem_commitLimit / 1048567, mem_commitByte / 1048567, percent_used_space, (mem_commitLimit - mem_commitByte) / 1048567, 293 &output_message,
276 (mem_commitLimit - mem_commitByte) / mem_commitLimit * 100); 294 _("Memory usage: total:%.2f MB - used: %.2f MB (%.0f%%) - free: %.2f MB (%.0f%%)"),
277 xasprintf(&perfdata, _("'Memory usage'=%.2fMB;%.2f;%.2f;0.00;%.2f"), mem_commitByte / 1048567, warning_used_space / 1048567, 295 mem_commitLimit / 1048567, mem_commitByte / 1048567, percent_used_space,
296 (mem_commitLimit - mem_commitByte) / 1048567,
297 (mem_commitLimit - mem_commitByte) / mem_commitLimit * 100);
298 xasprintf(&perfdata, _("'Memory usage'=%.2fMB;%.2f;%.2f;0.00;%.2f"),
299 mem_commitByte / 1048567, warning_used_space / 1048567,
278 critical_used_space / 1048567, mem_commitLimit / 1048567); 300 critical_used_space / 1048567, mem_commitLimit / 1048567);
279 301
280 return_code = STATE_OK; 302 return_code = STATE_OK;
@@ -302,16 +324,17 @@ int main(int argc, char **argv) {
302 the counter unit - that is, the dimensions of the counter you're getting. Examples: 324 the counter unit - that is, the dimensions of the counter you're getting. Examples:
303 pages/s, packets transferred, etc. 325 pages/s, packets transferred, etc.
304 326
305 4) If you want, you may provide the minimum and maximum values to expect. They aren't mandatory, 327 4) If you want, you may provide the minimum and maximum values to expect. They aren't
306 but once specified they MUST have the same order of magnitude and units of -w and -c; otherwise. 328 mandatory, but once specified they MUST have the same order of magnitude and units of -w and
307 strange things will happen when you make graphs of your data. 329 -c; otherwise. strange things will happen when you make graphs of your data.
308 */ 330 */
309 331
310 double counter_value = 0.0; 332 double counter_value = 0.0;
311 if (config.value_list == NULL) { 333 if (config.value_list == NULL) {
312 output_message = strdup(_("No counter specified")); 334 output_message = strdup(_("No counter specified"));
313 } else { 335 } else {
314 preparelist(config.value_list); /* replace , between services with & to send the request */ 336 preparelist(
337 config.value_list); /* replace , between services with & to send the request */
315 bool isPercent = (strchr(config.value_list, '%') != NULL); 338 bool isPercent = (strchr(config.value_list, '%') != NULL);
316 339
317 strtok(config.value_list, "&"); /* burn the first parameters */ 340 strtok(config.value_list, "&"); /* burn the first parameters */
@@ -358,15 +381,18 @@ int main(int argc, char **argv) {
358 if (allRight) { 381 if (allRight) {
359 /* Let's format the output string, finally... */ 382 /* Let's format the output string, finally... */
360 if (strstr(description, "%") == NULL) { 383 if (strstr(description, "%") == NULL) {
361 xasprintf(&output_message, "%s = %.2f %s", description, counter_value, counter_unit); 384 xasprintf(&output_message, "%s = %.2f %s", description, counter_value,
385 counter_unit);
362 } else { 386 } else {
363 /* has formatting, will segv if wrong */ 387 /* has formatting, will segv if wrong */
364 xasprintf(&output_message, description, counter_value); 388 xasprintf(&output_message, description, counter_value);
365 } 389 }
366 xasprintf(&output_message, "%s |", output_message); 390 xasprintf(&output_message, "%s |", output_message);
367 xasprintf(&output_message, "%s %s", output_message, 391 xasprintf(&output_message, "%s %s", output_message,
368 fperfdata(description, counter_value, counter_unit, 1, config.warning_value, 1, config.critical_value, 392 fperfdata(description, counter_value, counter_unit, 1,
369 (!(isPercent) && (minval != NULL)), fminval, (!(isPercent) && (minval != NULL)), fmaxval)); 393 config.warning_value, 1, config.critical_value,
394 (!(isPercent) && (minval != NULL)), fminval,
395 (!(isPercent) && (minval != NULL)), fmaxval));
370 } 396 }
371 } 397 }
372 398
@@ -391,7 +417,8 @@ int main(int argc, char **argv) {
391 if (config.value_list == NULL) { 417 if (config.value_list == NULL) {
392 output_message = strdup(_("No counter specified")); 418 output_message = strdup(_("No counter specified"));
393 } else { 419 } else {
394 preparelist(config.value_list); /* replace , between services with & to send the request */ 420 preparelist(
421 config.value_list); /* replace , between services with & to send the request */
395 xasprintf(&send_buffer, "%s&9&%s", config.req_password, config.value_list); 422 xasprintf(&send_buffer, "%s&9&%s", config.req_password, config.value_list);
396 fetch_data(config.server_address, config.server_port, send_buffer); 423 fetch_data(config.server_address, config.server_port, send_buffer);
397 unsigned long age_in_minutes = atoi(strtok(recv_buffer, "&")); 424 unsigned long age_in_minutes = atoi(strtok(recv_buffer, "&"));
@@ -724,25 +751,31 @@ void print_help(void) {
724 printf(" %s\n", "\"%%.f %%%% paging file used.\""); 751 printf(" %s\n", "\"%%.f %%%% paging file used.\"");
725 printf(" %s\n", "INSTANCES ="); 752 printf(" %s\n", "INSTANCES =");
726 printf(" %s\n", _("Check any performance counter object of Windows NT/2000.")); 753 printf(" %s\n", _("Check any performance counter object of Windows NT/2000."));
727 printf(" %s\n", _("Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>")); 754 printf(" %s\n",
755 _("Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>"));
728 printf(" %s\n", _("<counter object> is a Windows Perfmon Counter object (eg. Process),")); 756 printf(" %s\n", _("<counter object> is a Windows Perfmon Counter object (eg. Process),"));
729 printf(" %s\n", _("if it is two words, it should be enclosed in quotes")); 757 printf(" %s\n", _("if it is two words, it should be enclosed in quotes"));
730 printf(" %s\n", _("The returned results will be a comma-separated list of instances on ")); 758 printf(" %s\n", _("The returned results will be a comma-separated list of instances on "));
731 printf(" %s\n", _(" the selected computer for that object.")); 759 printf(" %s\n", _(" the selected computer for that object."));
732 printf(" %s\n", _("The purpose of this is to be run from command line to determine what instances")); 760 printf(" %s\n",
733 printf(" %s\n", _(" are available for monitoring without having to log onto the Windows server")); 761 _("The purpose of this is to be run from command line to determine what instances"));
762 printf(" %s\n",
763 _(" are available for monitoring without having to log onto the Windows server"));
734 printf(" %s\n", _(" to run Perfmon directly.")); 764 printf(" %s\n", _(" to run Perfmon directly."));
735 printf(" %s\n", _("It can also be used in scripts that automatically create the monitoring service")); 765 printf(" %s\n",
766 _("It can also be used in scripts that automatically create the monitoring service"));
736 printf(" %s\n", _(" configuration files.")); 767 printf(" %s\n", _(" configuration files."));
737 printf(" %s\n", _("Some examples:")); 768 printf(" %s\n", _("Some examples:"));
738 printf(" %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process")); 769 printf(" %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process"));
739 770
740 printf("%s\n", _("Notes:")); 771 printf("%s\n", _("Notes:"));
741 printf(" %s\n", _("- The NSClient service should be running on the server to get any information")); 772 printf(" %s\n",
773 _("- The NSClient service should be running on the server to get any information"));
742 printf(" %s\n", "(http://nsclient.ready2run.nl)."); 774 printf(" %s\n", "(http://nsclient.ready2run.nl).");
743 printf(" %s\n", _("- Critical thresholds should be lower than warning thresholds")); 775 printf(" %s\n", _("- Critical thresholds should be lower than warning thresholds"));
744 printf(" %s\n", _("- Default port 1248 is sometimes in use by other services. The error")); 776 printf(" %s\n", _("- Default port 1248 is sometimes in use by other services. The error"));
745 printf(" %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\".")); 777 printf(" %s\n",
778 _("output when this happens contains \"Cannot map xxxxx to protocol number\"."));
746 printf(" %s\n", _("One fix for this is to change the port to something else on check_nt ")); 779 printf(" %s\n", _("One fix for this is to change the port to something else on check_nt "));
747 printf(" %s\n", _("and on the client service it\'s connecting to.")); 780 printf(" %s\n", _("and on the client service it\'s connecting to."));
748 781