[Nagiosplug-checkins] nagiosplug/lib utils_disk.c, 1.2, 1.3 utils_disk.h, 1.3, 1.4

Matthias Eble psychotrahe at users.sourceforge.net
Fri Mar 30 10:48:52 CEST 2007


Update of /cvsroot/nagiosplug/nagiosplug/lib
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv30545/lib

Modified Files:
	utils_disk.c utils_disk.h 
Log Message:
check_disk -C is more flexible now. See np-devel post (2007-02-10)


Index: utils_disk.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/lib/utils_disk.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- utils_disk.c	20 Dec 2006 19:25:59 -0000	1.2
+++ utils_disk.c	30 Mar 2007 08:48:50 -0000	1.3
@@ -73,39 +73,54 @@
   return new_path;
 }
 
+/* returns a pointer to the struct found in the list */
+struct parameter_list *
+np_find_parameter(struct parameter_list *list, const char *name)
+{
+  struct parameter_list *temp_list;
+  for (temp_list = list; temp_list; temp_list = temp_list->name_next) {
+    if (! strcmp(temp_list->name, name))
+        return temp_list;
+  }
+        
+  return NULL;
+}
+
 void
 np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact)
 {
   struct parameter_list *d;
   for (d = desired; d; d= d->name_next) {
-    struct mount_entry *me;
-    size_t name_len = strlen(d->name);
-    size_t best_match_len = 0;
-    struct mount_entry *best_match = NULL;
+    if (! d->best_match) {
+      struct mount_entry *me;
+      size_t name_len = strlen(d->name);
+      size_t best_match_len = 0;
+      struct mount_entry *best_match = NULL;
 
-    for (me = mount_list; me; me = me->me_next) {
-      size_t len = strlen (me->me_mountdir);
-      if ((exact == FALSE && (best_match_len <= len && len <= name_len && 
-        (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0)))
-	|| (exact == TRUE && strcmp(me->me_mountdir, d->name)==0))
-      {
-        best_match = me;
-        best_match_len = len;
-      } else {
-        len = strlen (me->me_devname);
-        if ((exact == FALSE && (best_match_len <= len && len <= name_len &&
-          (len == 1 || strncmp (me->me_devname, d->name, len) == 0)))
-          || (exact == TRUE && strcmp(me->me_devname, d->name)==0))
+      for (me = mount_list; me; me = me->me_next) {
+        size_t len = strlen (me->me_mountdir);
+        if ((exact == FALSE && (best_match_len <= len && len <= name_len && 
+          (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0)))
+      || (exact == TRUE && strcmp(me->me_mountdir, d->name)==0))
         {
           best_match = me;
           best_match_len = len;
+        } else {
+          len = strlen (me->me_devname);
+          if ((exact == FALSE && (best_match_len <= len && len <= name_len &&
+            (len == 1 || strncmp (me->me_devname, d->name, len) == 0)))
+            || (exact == TRUE && strcmp(me->me_devname, d->name)==0))
+          {
+            best_match = me;
+            best_match_len = len;
+          }
         }
       }
-    }
-    if (best_match) {
-      d->best_match = best_match;
-    } else {
-      d->best_match = NULL;	/* Not sure why this is needed as it should be null on initialisation */
+      if (best_match) {
+        d->best_match = best_match;
+      } else {
+        d->best_match = NULL;	/* Not sure why this is needed as it should be null on initialisation */
+      }
     }
   }
 }

Index: utils_disk.h
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/lib/utils_disk.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- utils_disk.h	20 Dec 2006 19:25:59 -0000	1.3
+++ utils_disk.h	30 Mar 2007 08:48:50 -0000	1.4
@@ -28,5 +28,6 @@
 int np_find_name (struct name_list *list, const char *name);
 int np_seen_name (struct name_list *list, const char *name);
 struct parameter_list *np_add_parameter(struct parameter_list **list, const char *name);
+struct parameter_list *np_find_parameter(struct parameter_list *list, const char *name);
 int search_parameter_list (struct parameter_list *list, const char *name);
 void np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact);





More information about the Commits mailing list