Minor adjustments
[yaz-moved-to-github.git] / server / eventl.c
index 7946839..1ffd053 100644 (file)
@@ -4,7 +4,25 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: eventl.c,v $
- * Revision 1.10  1995-06-16 10:31:33  quinn
+ * Revision 1.16  1995-11-01 13:54:56  quinn
+ * Minor adjustments
+ *
+ * Revision 1.15  1995/09/15  14:44:15  quinn
+ * *** empty log message ***
+ *
+ * Revision 1.14  1995/08/29  14:44:50  quinn
+ * Reset timeouts.
+ *
+ * Revision 1.13  1995/08/29  11:17:56  quinn
+ * Added code to receive close
+ *
+ * Revision 1.12  1995/08/29  10:41:18  quinn
+ * Small.
+ *
+ * Revision 1.11  1995/06/19  12:39:09  quinn
+ * Fixed bug in timeout code. Added BER dumper.
+ *
+ * Revision 1.10  1995/06/16  10:31:33  quinn
  * Added session timeout.
  *
  * Revision 1.9  1995/06/05  10:53:31  quinn
@@ -37,6 +55,7 @@
  *
  */
 
+#include <stdio.h>
 #include <assert.h>
 #include <sys/time.h>
 #include <sys/types.h>
@@ -50,7 +69,7 @@
 
 #include <eventl.h>
 
-#include <dmalloc.h>
+#include <xmalloc.h>
 
 static IOCHAN iochans = 0;
 
@@ -63,7 +82,7 @@ IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags)
 {
     IOCHAN new;
 
-    if (!(new = malloc(sizeof(*new))))
+    if (!(new = xmalloc(sizeof(*new))))
        return 0;
     new->destroyed = 0;
     new->fd = fd;
@@ -83,18 +102,20 @@ int event_loop()
        IOCHAN p, nextp;
        fd_set in, out, except;
        int res, max;
-       static struct timeval nullto = {0, 0}, to = {60*5, 0};
+       static struct timeval nullto = {0, 0}, to;
        struct timeval *timeout;
 
        FD_ZERO(&in);
        FD_ZERO(&out);
        FD_ZERO(&except);
        timeout = &to; /* hang on select */
+       to.tv_sec = 5*60;
+       to.tv_usec = 0;
        max = 0;
        for (p = iochans; p; p = p->next)
        {
            if (p->force_event)
-               timeout = &nullto;
+               timeout = &nullto;        /* polling select */
            if (p->flags & EVENT_INPUT)
                FD_SET(p->fd, &in);
            if (p->flags & EVENT_OUTPUT)
@@ -135,7 +156,10 @@ int event_loop()
            }
            if (!p->destroyed && p->max_idle && now - p->last_event >
                p->max_idle)
+           {
+               p->last_event = now;
                (*p->fun)(p, EVENT_TIMEOUT);
+           }
        }
        for (p = iochans; p; p = nextp)
        {
@@ -157,7 +181,7 @@ int event_loop()
                }
                if (nextp == p)
                    nextp = p->next;
-               free(tmp);
+               xfree(tmp);
            }
        }
     }