Enable tty_is_devpts() support for Solaris with the "devices" filesystem.

This commit is contained in:
Todd C. Miller
2010-06-02 14:30:13 -04:00
parent cd26d2891d
commit 7ce0dfc61b

View File

@@ -28,6 +28,9 @@
#ifdef __linux__
#include <sys/vfs.h>
#endif
#if defined(__sun) && defined(__SVR4)
#include <sys/statvfs.h>
#endif
#ifndef __TANDEM
# include <sys/file.h>
#endif
@@ -663,7 +666,7 @@ remove_timestamp(int remove)
}
/*
* Returns TRUE if tty lives on a devpts filesystem, else FALSE.
* Returns TRUE if tty lives on a devpts or /devices filesystem, else FALSE.
* Unlike most filesystems, the ctime of devpts nodes is not updated when
* the device node is written to, only when the inode's status changes,
* typically via the chmod, chown, link, rename, or utimes system calls.
@@ -685,6 +688,13 @@ tty_is_devpts(const char *tty)
if (sfs.f_type == DEVPTS_SUPER_MAGIC)
retval = TRUE;
}
#elif defined(__sun) && defined(__SVR4)
struct statvfs sfs;
if (statvfs(tty, &sfs) == 0) {
if (strcmp(sfs.f_fstr, "devices") == 0)
retval = TRUE;
}
#endif /* __linux__ */
return retval;
}