From 5e7c9821be3aac6a76e701d78be6c578c80870ab Mon Sep 17 00:00:00 2001 From: Matthias Eble Date: Sun, 1 Apr 2007 11:17:16 +0000 Subject: utils_disk: fixed handling if check_disk -p is a device (np_set_best_match()) git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1668 f882894a-f735-0410-b71e-b25c423dba1c diff --git a/lib/utils_disk.c b/lib/utils_disk.c index cfd6a97..96f5a30 100644 --- a/lib/utils_disk.c +++ b/lib/utils_disk.c @@ -98,25 +98,26 @@ np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list size_t best_match_len = 0; struct mount_entry *best_match = NULL; + /* set best match if path name exactly matches a mounted device name */ 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)) - { + if (strcmp(me->me_devname, 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)) + } + + /* set best match by directory name if no match was found by devname */ + if (! best_match) { + 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; } } } + if (best_match) { d->best_match = best_match; } else { -- cgit v0.10-9-g596f