diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/tests/Makefile.am | 2 | ||||
-rw-r--r-- | lib/tests/test_utils.c | 6 | ||||
-rw-r--r-- | lib/utils_base.c | 8 | ||||
-rw-r--r-- | lib/utils_base.h | 2 | ||||
-rw-r--r-- | lib/utils_disk.c | 19 | ||||
-rw-r--r-- | lib/utils_disk.h | 1 |
6 files changed, 27 insertions, 11 deletions
diff --git a/lib/tests/Makefile.am b/lib/tests/Makefile.am index a8d7ade..31d79df 100644 --- a/lib/tests/Makefile.am +++ b/lib/tests/Makefile.am | |||
@@ -27,7 +27,7 @@ endif | |||
27 | 27 | ||
28 | AM_CFLAGS = -g -I$(top_srcdir)/lib -I$(top_srcdir)/gl $(tap_cflags) | 28 | AM_CFLAGS = -g -I$(top_srcdir)/lib -I$(top_srcdir)/gl $(tap_cflags) |
29 | AM_LDFLAGS = $(tap_ldflags) -ltap | 29 | AM_LDFLAGS = $(tap_ldflags) -ltap |
30 | LDADD = $(top_srcdir)/lib/libmonitoringplug.a $(top_srcdir)/gl/libgnu.a | 30 | LDADD = $(top_srcdir)/lib/libmonitoringplug.a $(top_srcdir)/gl/libgnu.a $(LIB_CRYPTO) |
31 | 31 | ||
32 | SOURCES = test_utils.c test_disk.c test_tcp.c test_cmd.c test_base64.c test_ini1.c test_ini3.c test_opts1.c test_opts2.c test_opts3.c | 32 | SOURCES = test_utils.c test_disk.c test_tcp.c test_cmd.c test_base64.c test_ini1.c test_ini3.c test_opts1.c test_opts2.c test_opts3.c |
33 | 33 | ||
diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c index f35b7e2..bc00fac 100644 --- a/lib/tests/test_utils.c +++ b/lib/tests/test_utils.c | |||
@@ -309,7 +309,7 @@ main (int argc, char **argv) | |||
309 | 309 | ||
310 | /* This is the result of running ./test_utils */ | 310 | /* This is the result of running ./test_utils */ |
311 | temp_string = (char *) _np_state_generate_key(); | 311 | temp_string = (char *) _np_state_generate_key(); |
312 | ok(!strcmp(temp_string, "83d877b6cdfefb5d6f06101fd6fe76762f21792c"), "Got hash with exe and no parameters" ) || | 312 | ok(!strcmp(temp_string, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got hash with exe and no parameters" ) || |
313 | diag( "You are probably running in wrong directory. Must run as ./test_utils" ); | 313 | diag( "You are probably running in wrong directory. Must run as ./test_utils" ); |
314 | 314 | ||
315 | 315 | ||
@@ -319,7 +319,7 @@ main (int argc, char **argv) | |||
319 | this_monitoring_plugin->argv[2] = "--and"; | 319 | this_monitoring_plugin->argv[2] = "--and"; |
320 | this_monitoring_plugin->argv[3] = "now"; | 320 | this_monitoring_plugin->argv[3] = "now"; |
321 | temp_string = (char *) _np_state_generate_key(); | 321 | temp_string = (char *) _np_state_generate_key(); |
322 | ok(!strcmp(temp_string, "94b5e17bf5abf51cb15aff5f69b96f2f8dac5ecd"), "Got based on expected argv" ); | 322 | ok(!strcmp(temp_string, "bd72da9f78ff1419fad921ea5e43ce56508aef6c"), "Got based on expected argv" ); |
323 | 323 | ||
324 | unsetenv("MP_STATE_PATH"); | 324 | unsetenv("MP_STATE_PATH"); |
325 | temp_string = (char *) _np_state_calculate_location_prefix(); | 325 | temp_string = (char *) _np_state_calculate_location_prefix(); |
@@ -342,7 +342,7 @@ main (int argc, char **argv) | |||
342 | np_enable_state(NULL, 51); | 342 | np_enable_state(NULL, 51); |
343 | temp_state_key = this_monitoring_plugin->state; | 343 | temp_state_key = this_monitoring_plugin->state; |
344 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); | 344 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); |
345 | ok( !strcmp(temp_state_key->name, "83d877b6cdfefb5d6f06101fd6fe76762f21792c"), "Got generated filename" ); | 345 | ok( !strcmp(temp_state_key->name, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got generated filename" ); |
346 | 346 | ||
347 | 347 | ||
348 | np_enable_state("allowedchars_in_keyname", 77); | 348 | np_enable_state("allowedchars_in_keyname", 77); |
diff --git a/lib/utils_base.c b/lib/utils_base.c index 08fa215..eb1823b 100644 --- a/lib/utils_base.c +++ b/lib/utils_base.c | |||
@@ -402,20 +402,20 @@ int mp_translate_state (char *state_text) { | |||
402 | * parse of argv, so that uniqueness in parameters are reflected there. | 402 | * parse of argv, so that uniqueness in parameters are reflected there. |
403 | */ | 403 | */ |
404 | char *_np_state_generate_key() { | 404 | char *_np_state_generate_key() { |
405 | struct sha1_ctx ctx; | 405 | struct sha256_ctx ctx; |
406 | int i; | 406 | int i; |
407 | char **argv = this_monitoring_plugin->argv; | 407 | char **argv = this_monitoring_plugin->argv; |
408 | unsigned char result[20]; | 408 | unsigned char result[20]; |
409 | char keyname[41]; | 409 | char keyname[41]; |
410 | char *p=NULL; | 410 | char *p=NULL; |
411 | 411 | ||
412 | sha1_init_ctx(&ctx); | 412 | sha256_init_ctx(&ctx); |
413 | 413 | ||
414 | for(i=0; i<this_monitoring_plugin->argc; i++) { | 414 | for(i=0; i<this_monitoring_plugin->argc; i++) { |
415 | sha1_process_bytes(argv[i], strlen(argv[i]), &ctx); | 415 | sha256_process_bytes(argv[i], strlen(argv[i]), &ctx); |
416 | } | 416 | } |
417 | 417 | ||
418 | sha1_finish_ctx(&ctx, &result); | 418 | sha256_finish_ctx(&ctx, &result); |
419 | 419 | ||
420 | for (i=0; i<20; ++i) { | 420 | for (i=0; i<20; ++i) { |
421 | sprintf(&keyname[2*i], "%02x", result[i]); | 421 | sprintf(&keyname[2*i], "%02x", result[i]); |
diff --git a/lib/utils_base.h b/lib/utils_base.h index 9482f23..5906550 100644 --- a/lib/utils_base.h +++ b/lib/utils_base.h | |||
@@ -2,7 +2,7 @@ | |||
2 | #define _UTILS_BASE_ | 2 | #define _UTILS_BASE_ |
3 | /* Header file for Monitoring Plugins utils_base.c */ | 3 | /* Header file for Monitoring Plugins utils_base.c */ |
4 | 4 | ||
5 | #include "sha1.h" | 5 | #include "sha256.h" |
6 | 6 | ||
7 | /* This file holds header information for thresholds - use this in preference to | 7 | /* This file holds header information for thresholds - use this in preference to |
8 | individual plugin logic */ | 8 | individual plugin logic */ |
diff --git a/lib/utils_disk.c b/lib/utils_disk.c index 4f16068..468769b 100644 --- a/lib/utils_disk.c +++ b/lib/utils_disk.c | |||
@@ -47,9 +47,10 @@ np_add_parameter(struct parameter_list **list, const char *name) | |||
47 | struct parameter_list *current = *list; | 47 | struct parameter_list *current = *list; |
48 | struct parameter_list *new_path; | 48 | struct parameter_list *new_path; |
49 | new_path = (struct parameter_list *) malloc (sizeof *new_path); | 49 | new_path = (struct parameter_list *) malloc (sizeof *new_path); |
50 | new_path->name = (char *) name; | 50 | new_path->name = (char *) malloc(strlen(name) + 1); |
51 | new_path->best_match = NULL; | 51 | new_path->best_match = NULL; |
52 | new_path->name_next = NULL; | 52 | new_path->name_next = NULL; |
53 | new_path->name_prev = NULL; | ||
53 | new_path->freespace_bytes = NULL; | 54 | new_path->freespace_bytes = NULL; |
54 | new_path->freespace_units = NULL; | 55 | new_path->freespace_units = NULL; |
55 | new_path->freespace_percent = NULL; | 56 | new_path->freespace_percent = NULL; |
@@ -75,13 +76,17 @@ np_add_parameter(struct parameter_list **list, const char *name) | |||
75 | new_path->dused_inodes_percent = 0; | 76 | new_path->dused_inodes_percent = 0; |
76 | new_path->dfree_inodes_percent = 0; | 77 | new_path->dfree_inodes_percent = 0; |
77 | 78 | ||
79 | strcpy(new_path->name, name); | ||
80 | |||
78 | if (current == NULL) { | 81 | if (current == NULL) { |
79 | *list = new_path; | 82 | *list = new_path; |
83 | new_path->name_prev = NULL; | ||
80 | } else { | 84 | } else { |
81 | while (current->name_next) { | 85 | while (current->name_next) { |
82 | current = current->name_next; | 86 | current = current->name_next; |
83 | } | 87 | } |
84 | current->name_next = new_path; | 88 | current->name_next = new_path; |
89 | new_path->name_prev = current; | ||
85 | } | 90 | } |
86 | return new_path; | 91 | return new_path; |
87 | } | 92 | } |
@@ -90,6 +95,9 @@ np_add_parameter(struct parameter_list **list, const char *name) | |||
90 | struct parameter_list * | 95 | struct parameter_list * |
91 | np_del_parameter(struct parameter_list *item, struct parameter_list *prev) | 96 | np_del_parameter(struct parameter_list *item, struct parameter_list *prev) |
92 | { | 97 | { |
98 | if (item == NULL) { | ||
99 | return NULL; | ||
100 | } | ||
93 | struct parameter_list *next; | 101 | struct parameter_list *next; |
94 | 102 | ||
95 | if (item->name_next) | 103 | if (item->name_next) |
@@ -97,10 +105,17 @@ np_del_parameter(struct parameter_list *item, struct parameter_list *prev) | |||
97 | else | 105 | else |
98 | next = NULL; | 106 | next = NULL; |
99 | 107 | ||
100 | free(item); | 108 | if (next) |
109 | next->name_prev = prev; | ||
110 | |||
101 | if (prev) | 111 | if (prev) |
102 | prev->name_next = next; | 112 | prev->name_next = next; |
103 | 113 | ||
114 | if (item->name) { | ||
115 | free(item->name); | ||
116 | } | ||
117 | free(item); | ||
118 | |||
104 | return next; | 119 | return next; |
105 | } | 120 | } |
106 | 121 | ||
diff --git a/lib/utils_disk.h b/lib/utils_disk.h index bf52e4c..3b5a45f 100644 --- a/lib/utils_disk.h +++ b/lib/utils_disk.h | |||
@@ -24,6 +24,7 @@ struct parameter_list | |||
24 | char *group; | 24 | char *group; |
25 | struct mount_entry *best_match; | 25 | struct mount_entry *best_match; |
26 | struct parameter_list *name_next; | 26 | struct parameter_list *name_next; |
27 | struct parameter_list *name_prev; | ||
27 | uintmax_t total, available, available_to_root, used, | 28 | uintmax_t total, available, available_to_root, used, |
28 | inodes_free, inodes_free_to_root, inodes_used, inodes_total; | 29 | inodes_free, inodes_free_to_root, inodes_used, inodes_total; |
29 | double dfree_pct, dused_pct; | 30 | double dfree_pct, dused_pct; |