From 3d8aa918783e3cd147b0059d87b236ac3e396a8e Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Mon, 26 Oct 2015 17:37:03 +0100 Subject: add fstype for freebsd --- lr.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'lr.c') diff --git a/lr.c b/lr.c index 9387ab0..6951812 100644 --- a/lr.c +++ b/lr.c @@ -643,7 +643,7 @@ username(uid_t uid) return result ? (*result)->name : strid(uid); } -#ifdef __linux__ +#if defined(__linux__) #include void scan_filesystems() @@ -673,6 +673,30 @@ scan_filesystems() scanned_filesystems = 1; } +#elif defined(__FreeBSD__) +#include +#include +#include +void +scan_filesystems() +{ + struct statfs *mnt; + struct stat st; + int i = getmntinfo(&mnt, MNT_NOWAIT); + + while (i-- > 0) { + if (stat(mnt->f_mntonname, &st) < 0) + continue; + + struct idmap *newkey = malloc(sizeof (struct idmap)); + newkey->id = st.st_dev; + newkey->name = strdup(mnt->f_fstypename); + tsearch(newkey, &filesystems, idorder); + mnt++; + }; + + scanned_filesystems = 1; +} #else void scan_filesystems() -- cgit 1.4.1