From 7d8191b83e163d76bb05e13b373638e4eeb7da95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Tue, 2 Dec 2014 20:17:04 +0100 Subject: Initial import of sane-frontends version 1.0.14-9 --- lib/isfdtype.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 lib/isfdtype.c (limited to 'lib/isfdtype.c') diff --git a/lib/isfdtype.c b/lib/isfdtype.c new file mode 100644 index 0000000..8e51516 --- /dev/null +++ b/lib/isfdtype.c @@ -0,0 +1,25 @@ +#include "../include/sane/config.h" + +#ifndef HAVE_ISFDTYPE + +#include + +int +isfdtype(int fd, int fdtype) +{ + struct stat st; + + if (fstat(fd, &st) == -1) return 0; /* couldn't stat fd */ + + if (st.st_mode == 0) + return 1; /* At least Irix doesn't seem to know socket type */ +#if defined(S_ISSOCK) + return S_ISSOCK(st.st_mode) != 0; +#elif defined(S_IFSOCK) && defined(S_IFMT) + return (st.st_mode & S_IFMT) == S_IFSOCK; +#else + return 0; +#endif +} + +#endif /* !HAVE_ISFDTYPE */ -- cgit v1.2.3