X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Feventl.c;h=649e6de11b2c0f4c0a02d4efb6693e3b90228fcb;hb=60a702f390f7e2addfdab79f2328db3ba2897c8b;hp=6fa5b985219e562da7426d1c18d589e878433390;hpb=05c274ef315384faafcc5900c17468f0ea2474e6;p=yaz-moved-to-github.git diff --git a/src/eventl.c b/src/eventl.c index 6fa5b98..649e6de 100644 --- a/src/eventl.c +++ b/src/eventl.c @@ -1,8 +1,8 @@ /* - * Copyright (c) 1995-2004, Index Data + * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: eventl.c,v 1.2 2004-10-15 00:19:00 adam Exp $ + * $Id: eventl.c,v 1.7 2005-02-01 14:46:47 adam Exp $ */ /** @@ -13,16 +13,27 @@ * Server. It uses select(2). */ -#include #include +#include +#include +#include +#include + +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_TIME_H +#include +#endif #ifdef WIN32 #include -#else +#endif +#if HAVE_UNISTD_H #include #endif -#include -#include -#include +#if HAVE_SYS_SELECT_H +#include +#endif #include #include @@ -41,10 +52,19 @@ #define YAZ_EV_SELECT select #endif -IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags) +static int log_level=0; +static int log_level_initialized=0; + +IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags, int port) { IOCHAN new_iochan; + if (!log_level_initialized) + { + log_level=yaz_log_module_level("eventl"); + log_level_initialized=1; + } + if (!(new_iochan = (IOCHAN)xmalloc(sizeof(*new_iochan)))) return 0; new_iochan->destroyed = 0; @@ -54,6 +74,7 @@ IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags) new_iochan->force_event = 0; new_iochan->last_event = new_iochan->max_idle = 0; new_iochan->next = NULL; + new_iochan->port = port; return new_iochan; } @@ -81,7 +102,7 @@ int event_loop(IOCHAN *iochans) for (p = *iochans; p; p = p->next) { time_t w, ftime; - yaz_log(LOG_DEBUG, "fd=%d flags=%d force_event=%d", + yaz_log(log_level, "fd=%d flags=%d force_event=%d", p->fd, p->flags, p->force_event); if (p->force_event) to.tv_sec = 0; /* polling select */ @@ -104,9 +125,9 @@ int event_loop(IOCHAN *iochans) to.tv_sec = w; } } - yaz_log(LOG_DEBUG, "select start %ld", (long) to.tv_sec); + yaz_log(log_level, "select start %ld", (long) to.tv_sec); res = YAZ_EV_SELECT(max + 1, &in, &out, &except, &to); - yaz_log(LOG_DEBUG, "select end"); + yaz_log(log_level, "select end"); if (res < 0) { if (yaz_errno() == EINTR) @@ -127,7 +148,7 @@ int event_loop(IOCHAN *iochans) cs_close(conn); destroy_association(assoc); iochan_destroy(*iochans); - yaz_log(LOG_DEBUG, "error select, destroying iochan %p", + yaz_log(log_level, "error select, destroying iochan %p", *iochans); } }