summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/print_disk_info.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/print_disk_info.c b/src/print_disk_info.c
index bc43da0..03c95e5 100644
--- a/src/print_disk_info.c
+++ b/src/print_disk_info.c
@@ -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;
+ 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;
+ while ((m = getmntent(mntentfile)) != NULL) {
+ if (strcmp(m->mnt_dir, sanitized) == 0) {
+ mounted = true;
+ break;
+ }
}
+ endmntent(mntentfile);
}
- endmntent(mntentfile);
free(sanitized);
}
#endif