Merge pull request #319 from eplanet/fix-etc-mtab

Read /proc/mounts if /etc/mtab can't be read
This commit is contained in:
Orestis 2018-11-08 11:52:47 +02:00 committed by GitHub
commit 2d38178063
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -145,15 +145,22 @@ void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const ch
if (strlen(sanitized) > 1 && sanitized[strlen(sanitized) - 1] == '/')
sanitized[strlen(sanitized) - 1] = '\0';
FILE *mntentfile = setmntent("/etc/mtab", "r");
struct mntent *m;
while ((m = getmntent(mntentfile)) != NULL) {
if (strcmp(m->mnt_dir, sanitized) == 0) {
mounted = true;
break;
}
if (mntentfile == NULL) {
mntentfile = setmntent("/proc/mounts", "r");
}
if (mntentfile == NULL) {
fprintf(stderr, "i3status: files /etc/mtab and /proc/mounts aren't accessible\n");
} else {
struct mntent *m;
while ((m = getmntent(mntentfile)) != NULL) {
if (strcmp(m->mnt_dir, sanitized) == 0) {
mounted = true;
break;
}
}
endmntent(mntentfile);
}
endmntent(mntentfile);
free(sanitized);
}
#endif