X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futils_mount.c;h=176040aa88942016dc3584ab0b7db38ef3f03141;hb=ed3b4a8fe6377817e1dadfbc713c4cc5c0bc4444;hp=72ce930130bfb45dbb9b50c78ffdb9a336414f06;hpb=5835a87810b4870c98bf3ab541a376a80c109713;p=collectd.git diff --git a/src/utils_mount.c b/src/utils_mount.c index 72ce9301..176040aa 100644 --- a/src/utils_mount.c +++ b/src/utils_mount.c @@ -29,6 +29,7 @@ #define XFS_SUPER_MAGIC_STR "XFSB" #define XFS_SUPER_MAGIC2_STR "BSFX" #endif + #include "utils_debug.h" #include "utils_mount.h" @@ -51,18 +52,26 @@ # include #endif -#ifndef MNTTAB -# if defined(_PATH_MOUNTED) -# define MNTTAB _PATH_MOUNTED -# elif defined(MNT_MNTTAB) -# define MNTTAB MNT_MNTTAB -# elif defined(MNTTABNAME) -# define MNTTAB MNTTABNAME -# elif defined(KMTAB) -# define MNTTAB KMTAB -# else -# define MNTTAB "/etc/mnttab" -# endif +#if HAVE_PATHS_H +# include +#endif + +#ifdef COLLECTD_MNTTAB +# undef COLLECTD_MNTTAB +#endif + +#if defined(_PATH_MOUNTED) /* glibc */ +# define COLLECTD_MNTTAB _PATH_MOUNTED +#elif defined(MNTTAB) /* Solaris */ +# define COLLECTD_MNTTAB MNTTAB +#elif defined(MNT_MNTTAB) +# define COLLECTD_MNTTAB MNT_MNTTAB +#elif defined(MNTTABNAME) +# define COLLECTD_MNTTAB MNTTABNAME +#elif defined(KMTAB) +# define COLLECTD_MNTTAB KMTAB +#else +# define COLLECTD_MNTTAB "/etc/mnttab" #endif /* *** *** *** ********************************************* *** *** *** */ @@ -362,7 +371,7 @@ static cu_mount_t *cu_mount_listmntent (void) struct mntent *mnt; struct tabmntent *mntlist; - if(listmntent(&mntlist, MNTTAB, NULL, NULL) < 0) { + if(listmntent(&mntlist, COLLECTD_MNTTAB, NULL, NULL) < 0) { DBG("calling listmntent() failed: %s", strerror(errno)); } @@ -477,8 +486,13 @@ static cu_mount_t *cu_mount_gen_getmntent (void) cu_mount_t *last = NULL; cu_mount_t *new = NULL; - if ((fp = fopen (MNTTAB, "r")) == NULL) + DBG ("(void); COLLECTD_MNTTAB = %s", COLLECTD_MNTTAB); + + if ((fp = fopen (COLLECTD_MNTTAB, "r")) == NULL) + { + syslog (LOG_ERR, "fopen (%s): %s", COLLECTD_MNTTAB, strerror (errno)); return (NULL); + } while (getmntent (fp, &mt) == 0) { @@ -531,8 +545,13 @@ static cu_mount_t *cu_mount_getmntent (void) cu_mount_t *last = NULL; cu_mount_t *new = NULL; - if ((fp = setmntent (MNTTAB, "r")) == NULL) + DBG ("(void); COLLECTD_MNTTAB = %s", COLLECTD_MNTTAB); + + if ((fp = setmntent (COLLECTD_MNTTAB, "r")) == NULL) + { + syslog (LOG_ERR, "setmntent (%s): %s", COLLECTD_MNTTAB, strerror (errno)); return (NULL); + } while ((me = getmntent (fp)) != NULL) { @@ -548,6 +567,9 @@ static cu_mount_t *cu_mount_getmntent (void) new->device = get_device_name (new->options); new->next = NULL; + DBG ("new = {dir = %s, spec_device = %s, type = %s, options = %s, device = %s}", + new->dir, new->spec_device, new->type, new->options, new->device); + /* Append to list */ if (first == NULL) { @@ -563,6 +585,8 @@ static cu_mount_t *cu_mount_getmntent (void) endmntent (fp); + DBG ("return (0x%p)", (void *) first); + return (first); } #endif /* HAVE_GETMNTENT */ @@ -622,6 +646,8 @@ void cu_mount_freelist (cu_mount_t *list) cu_mount_t *this; cu_mount_t *next; + DBG ("(list = 0x%p)", (void *) list); + for (this = list; this != NULL; this = next) { next = this->next;