Added skeleton for query charset conversion. Bug #977.
[yaz-moved-to-github.git] / src / eventl.c
index 2392cc8..7023003 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * Copyright (C) 1995-2005, Index Data ApS
+ * Copyright (C) 1995-2007, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: eventl.c,v 1.9 2005-06-25 15:46:04 adam Exp $
+ * $Id: eventl.c,v 1.11 2007-01-03 08:42:15 adam Exp $
  */
 
 /**
@@ -78,6 +78,31 @@ IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags, int chan_id)
     return new_iochan;
 }
 
+int iochan_is_alive(IOCHAN chan)
+{
+    static struct timeval to;
+    fd_set in, out, except;
+    int res, max;
+
+    to.tv_sec = 0;
+    to.tv_usec = 0;
+
+    FD_ZERO(&in);
+    FD_ZERO(&out);
+    FD_ZERO(&except);
+
+    FD_SET(chan->fd, &in);
+
+    max = chan->fd + 1;
+
+    res = YAZ_EV_SELECT(max + 1, &in, 0, 0, &to);
+    if (res == 0)
+        return 1;
+    if (!ir_read(chan, EVENT_INPUT))
+        return 0;
+    return 1;
+}
+
 int event_loop(IOCHAN *iochans)
 {
     do /* loop as long as there are active associations to process */