mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-04-28 09:36:56 -04:00
utils_disk: add name_prev pointer to struct parameter_list
Also added handling of name_prev in np_add_parameter and np_delete_parameter. This make calling the np_delete_parameter function easier, because it requires the previous element as second argument.
This commit is contained in:
parent
bacacd2cb3
commit
9898a8ad7d
2 changed files with 18 additions and 2 deletions
|
|
@ -46,9 +46,10 @@ np_add_parameter(struct parameter_list **list, const char *name)
|
|||
struct parameter_list *current = *list;
|
||||
struct parameter_list *new_path;
|
||||
new_path = (struct parameter_list *) malloc (sizeof *new_path);
|
||||
new_path->name = (char *) name;
|
||||
new_path->name = (char *) malloc(strlen(name) + 1);
|
||||
new_path->best_match = NULL;
|
||||
new_path->name_next = NULL;
|
||||
new_path->name_prev = NULL;
|
||||
new_path->freespace_bytes = NULL;
|
||||
new_path->freespace_units = NULL;
|
||||
new_path->freespace_percent = NULL;
|
||||
|
|
@ -74,13 +75,17 @@ np_add_parameter(struct parameter_list **list, const char *name)
|
|||
new_path->dused_inodes_percent = 0;
|
||||
new_path->dfree_inodes_percent = 0;
|
||||
|
||||
strcpy(new_path->name, name);
|
||||
|
||||
if (current == NULL) {
|
||||
*list = new_path;
|
||||
new_path->name_prev = NULL;
|
||||
} else {
|
||||
while (current->name_next) {
|
||||
current = current->name_next;
|
||||
}
|
||||
current->name_next = new_path;
|
||||
new_path->name_prev = current;
|
||||
}
|
||||
return new_path;
|
||||
}
|
||||
|
|
@ -89,6 +94,9 @@ np_add_parameter(struct parameter_list **list, const char *name)
|
|||
struct parameter_list *
|
||||
np_del_parameter(struct parameter_list *item, struct parameter_list *prev)
|
||||
{
|
||||
if (item == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
struct parameter_list *next;
|
||||
|
||||
if (item->name_next)
|
||||
|
|
@ -96,10 +104,17 @@ np_del_parameter(struct parameter_list *item, struct parameter_list *prev)
|
|||
else
|
||||
next = NULL;
|
||||
|
||||
free(item);
|
||||
if (next)
|
||||
next->name_prev = prev;
|
||||
|
||||
if (prev)
|
||||
prev->name_next = next;
|
||||
|
||||
if (item->name) {
|
||||
free(item->name);
|
||||
}
|
||||
free(item);
|
||||
|
||||
return next;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ struct parameter_list
|
|||
char *group;
|
||||
struct mount_entry *best_match;
|
||||
struct parameter_list *name_next;
|
||||
struct parameter_list *name_prev;
|
||||
uintmax_t total, available, available_to_root, used,
|
||||
inodes_free, inodes_free_to_root, inodes_used, inodes_total;
|
||||
double dfree_pct, dused_pct;
|
||||
|
|
|
|||
Loading…
Reference in a new issue