summaryrefslogtreecommitdiffstats
path: root/src/ck-sysdeps-unix.c
diff options
context:
space:
mode:
authorFlorent Thoumie <flz@FreeBSD.org>2007-08-25 19:50:54 +0100
committerFlorent Thoumie <flz@FreeBSD.org>2007-08-25 19:50:54 +0100
commit59d8b48dc3358057859c22588580e926aa68a3ee (patch)
tree7bc337b7a5537f9931f055b427237337e388d2b3 /src/ck-sysdeps-unix.c
parent1a16c740e0eab279eeca443c1a1c276e5e125852 (diff)
Some more fixes, Now test-vt-monitor works correctly.
Submitted by: marcus Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
Diffstat (limited to 'src/ck-sysdeps-unix.c')
-rw-r--r--src/ck-sysdeps-unix.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/ck-sysdeps-unix.c b/src/ck-sysdeps-unix.c
index fa18dac..6c9b34c 100644
--- a/src/ck-sysdeps-unix.c
+++ b/src/ck-sysdeps-unix.c
@@ -35,6 +35,10 @@
#include <linux/kd.h>
#endif
+#ifdef __FreeBSD__
+#include <sys/consio.h>
+#endif
+
#ifdef HAVE_GETPEERUCRED
#include <ucred.h>
#endif
@@ -114,14 +118,18 @@ ck_get_socket_peer_credentials (int socket_fd,
gboolean
ck_fd_is_a_console (int fd)
{
- char arg;
+#ifdef __linux__
+ char arg = 0;
+#elif defined(__FreeBSD__)
+ int vers;
+#endif
int kb_ok;
- arg = 0;
-
#ifdef __linux__
kb_ok = (ioctl (fd, KDGKBTYPE, &arg) == 0
&& ((arg == KB_101) || (arg == KB_84)));
+#elif defined(__FreeBSD__)
+ kb_ok = (ioctl (fd, CONS_GETVERS, &vers) == 0);
#else
kb_ok = 1;
#endif