* 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
*
*/
+#include <stdio.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/types.h>
#include <eventl.h>
-#include <dmalloc.h>
+#include <xmalloc.h>
static IOCHAN iochans = 0;
{
IOCHAN new;
- if (!(new = malloc(sizeof(*new))))
+ if (!(new = xmalloc(sizeof(*new))))
return 0;
new->destroyed = 0;
new->fd = fd;
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)
}
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)
{
}
if (nextp == p)
nextp = p->next;
- free(tmp);
+ xfree(tmp);
}
}
}