From d6a0e5ff2f35326b9cd2e1260c56fd5dabafd3eb Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Mon, 19 Jun 1995 12:39:09 +0000 Subject: [PATCH] Fixed bug in timeout code. Added BER dumper. --- server/eventl.c | 11 ++++++++--- server/eventl.h | 7 +++++-- server/seshigh.c | 9 +++++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/server/eventl.c b/server/eventl.c index 7946839..5fb960d 100644 --- a/server/eventl.c +++ b/server/eventl.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: eventl.c,v $ - * Revision 1.10 1995-06-16 10:31:33 quinn + * 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 @@ -83,18 +86,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) diff --git a/server/eventl.h b/server/eventl.h index 3b694a4..55a6ceb 100644 --- a/server/eventl.h +++ b/server/eventl.h @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: eventl.h,v $ - * Revision 1.7 1995-06-16 10:31:34 quinn + * Revision 1.8 1995-06-19 12:39:09 quinn + * Fixed bug in timeout code. Added BER dumper. + * + * Revision 1.7 1995/06/16 10:31:34 quinn * Added session timeout. * * Revision 1.6 1995/05/16 08:51:02 quinn @@ -68,7 +71,7 @@ int force_event; #define iochan_setfun(i, d) ((i)->fun = d) #define iochan_setevent(i, e) ((i)->force_event = (e)) #define iochan_getnext(i) ((i)->next) -#define iochan_settimeout(i, t) ((i)->max_idle = (t)) +#define iochan_settimeout(i, t) ((i)->max_idle = (t), (i)->last_event = time(0)) IOCHAN iochan_getchan(void); IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags); diff --git a/server/seshigh.c b/server/seshigh.c index c1d5350..174c73a 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.37 1995-06-16 13:16:14 quinn + * Revision 1.38 1995-06-19 12:39:11 quinn + * Fixed bug in timeout code. Added BER dumper. + * + * Revision 1.37 1995/06/16 13:16:14 quinn * Fixed Defaultdiagformat. * * Revision 1.36 1995/06/16 10:31:36 quinn @@ -327,8 +330,10 @@ void ir_session(IOCHAN h, int event) odr_setbuf(assoc->decode, assoc->input_buffer, res, 0); if (!z_APDU(assoc->decode, &req->request, 0)) { - logf(LOG_WARN, "ODR error: %s", + logf(LOG_LOG, "ODR error on incoming PDU: %s", odr_errlist[odr_geterror(assoc->decode)]); + logf(LOG_LOG, "PDU dump:"); + odr_dumpBER(log_file(), assoc->input_buffer, res); cs_close(conn); destroy_association(assoc); iochan_destroy(h); -- 1.7.10.4