X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=common-src%2Fevent.c;h=11bad8bf576575ef3d58c2b9e514328d4e71fd3a;hb=d92f70685083588e2a7ce6bc312a735f6937b5a6;hp=94ae1ac7aeb0efe946972c46b0235bfdde22833c;hpb=34197d9f46a5f4e944378cbb65fca32ee0eec7b9;p=debian%2Famanda diff --git a/common-src/event.c b/common-src/event.c index 94ae1ac..11bad8b 100644 --- a/common-src/event.c +++ b/common-src/event.c @@ -24,24 +24,23 @@ * file named AUTHORS, in the root directory of this distribution. */ /* - * $Id: event.c,v 1.24.2.1 2006/12/12 14:56:38 martinea Exp $ + * $Id: event.c,v 1.24 2006/06/16 10:55:05 martinea Exp $ * * Event handler. Serializes different kinds of events to allow for * a uniform interface, central state storage, and centralized * interdependency logic. */ -/*#define EVENT_DEBUG*/ - -#ifdef EVENT_DEBUG -#define eventprintf(x) dbprintf(x) -#else -#define eventprintf(x) -#endif - #include "amanda.h" #include "event.h" #include "queue.h" +#include "conffile.h" + +#define event_debug(i, ...) do { \ + if ((i) <= debug_event) { \ + dbprintf(__VA_ARGS__); \ + } \ +} while (0) /* * The opaque handle passed back to the caller. This is typedefed to @@ -89,9 +88,7 @@ static struct sigtabent { void (*oldhandler)(int);/* old handler (for unsetting) */ } sigtable[NSIG]; -#ifdef EVENT_DEBUG static const char *event_type2str(event_type_t); -#endif #define fire(eh) (*(eh)->fn)((eh)->arg) static void signal_handler(int); static event_handle_t *gethandle(void); @@ -113,23 +110,23 @@ event_register( if ((type == EV_READFD) || (type == EV_WRITEFD)) { /* make sure we aren't given a high fd that will overflow a fd_set */ - if (data >= FD_SETSIZE) { - error("event_register: Invalid file descriptor %lu", data); + if (data >= (int)FD_SETSIZE) { + error(_("event_register: Invalid file descriptor %lu"), data); /*NOTREACHED*/ } #if !defined(__lint) /* Global checking knows that these are never called */ } else if (type == EV_SIG) { /* make sure signals are within range */ if (data >= NSIG) { - error("event_register: Invalid signal %lu", data); + error(_("event_register: Invalid signal %lu"), data); /*NOTREACHED*/ } if (sigtable[data].handle != NULL) { - error("event_register: signal %lu already registered", data); + error(_("event_register: signal %lu already registered"), data); /*NOTREACHED*/ } } else if (type >= EV_DEAD) { - error("event_register: Invalid event type %d", type); + error(_("event_register: Invalid event type %d"), type); /*NOTREACHED*/ #endif } @@ -143,9 +140,8 @@ event_register( eventq_add(eventq, handle); eventq.qlength++; - eventprintf(("%s: event: register: %p->data=%lu, type=%s\n", - debug_prefix_time(NULL), handle, handle->data, - event_type2str(handle->type))); + event_debug(1, _("event: register: %p->data=%lu, type=%s\n"), + handle, handle->data, event_type2str(handle->type)); return (handle); } @@ -161,9 +157,9 @@ event_release( assert(handle != NULL); - eventprintf(("%s: event: release (mark): %p data=%lu, type=%s\n", - debug_prefix_time(NULL), handle, handle->data, - event_type2str(handle->type))); + event_debug(1, _("event: release (mark): %p data=%lu, type=%s\n"), + handle, handle->data, + event_type2str(handle->type)); assert(handle->type != EV_DEAD); /* @@ -201,14 +197,12 @@ event_wakeup( event_handle_t *eh; int nwaken = 0; - eventprintf(("%s: event: wakeup: enter (%lu)\n", - debug_prefix_time(NULL), id)); + event_debug(1, _("event: wakeup: enter (%lu)\n"), id); for (eh = eventq_first(eventq); eh != NULL; eh = eventq_next(eh)) { if (eh->type == EV_WAIT && eh->data == id) { - eventprintf(("%s: event: wakeup: %p id=%lu\n", - debug_prefix_time(NULL), eh, id)); + event_debug(1, _("event: wakeup: %p id=%lu\n"), eh, id); fire(eh); nwaken++; } @@ -251,7 +245,7 @@ event_loop_wait( #ifdef ASSERTIONS static int entry = 0; #endif - fd_set readfds, writefds, errfds, werrfds; + SELECT_ARG_TYPE readfds, writefds, errfds, werrfds; struct timeval timeout, *tvptr; int ntries, maxfd, rc; long interval; @@ -261,9 +255,8 @@ event_loop_wait( int event_wait_fired = 0; int see_event; - eventprintf(("%s: event: loop: enter: dontblock=%d, qlength=%d, eh=%p\n", - debug_prefix_time(NULL), - dontblock, eventq.qlength, wait_eh)); + event_debug(1, _("event: loop: enter: dontblock=%d, qlength=%d, eh=%p\n"), + dontblock, eventq.qlength, wait_eh); /* * If we have no events, we have nothing to do @@ -285,17 +278,15 @@ event_loop_wait( curtime = time(NULL); do { -#ifdef EVENT_DEBUG - eventprintf(("%s: event: loop: dontblock=%d, qlength=%d eh=%p\n", - debug_prefix_time(NULL), dontblock, eventq.qlength, - wait_eh)); - for (eh = eventq_first(eventq); eh != NULL; eh = eventq_next(eh)) { - eventprintf(("%s: %p): %s data=%lu fn=%p arg=%p\n", - debug_prefix_time(NULL), eh, - event_type2str(eh->type), eh->data, eh->fn, - eh->arg)); + if (debug_event >= 1) { + event_debug(1, _("event: loop: dontblock=%d, qlength=%d eh=%p\n"), + dontblock, eventq.qlength, wait_eh); + for (eh = eventq_first(eventq); eh != NULL; eh = eventq_next(eh)) { + event_debug(1, _("%p): %s data=%lu fn=%p arg=%p\n"), + eh, event_type2str(eh->type), eh->data, eh->fn, + eh->arg); + } } -#endif /* * Set ourselves up with no timeout initially. */ @@ -429,13 +420,12 @@ event_loop_wait( /* * Let 'er rip */ - eventprintf(( - "%s: event: select: dontblock=%d, maxfd=%d, timeout=%ld\n", - debug_prefix_time(NULL), dontblock, maxfd, - tvptr != NULL ? timeout.tv_sec : -1)); + event_debug(1, + _("event: select: dontblock=%d, maxfd=%d, timeout=%ld\n"), + dontblock, maxfd, + tvptr != NULL ? timeout.tv_sec : -1); rc = select(maxfd + 1, &readfds, &writefds, &errfds, tvptr); - eventprintf(("%s: event: select returns %d\n", - debug_prefix_time(NULL), rc)); + event_debug(1, _("event: select returns %d\n"), rc); /* * Select errors can mean many things. Interrupted events should @@ -445,7 +435,7 @@ event_loop_wait( if (rc < 0) { if (errno != EINTR) { if (++ntries > 5) { - error("select failed: %s", strerror(errno)); + error(_("select failed: %s"), strerror(errno)); /*NOTREACHED*/ } continue; @@ -601,7 +591,6 @@ puthandle( cache.qlength++; } -#ifdef EVENT_DEBUG /* * Convert an event type into a string */ @@ -627,6 +616,5 @@ event_type2str( for (i = 0; i < (size_t)(sizeof(event_types) / sizeof(event_types[0])); i++) if (type == event_types[i].type) return (event_types[i].name); - return ("BOGUS EVENT TYPE"); + return (_("BOGUS EVENT TYPE")); } -#endif /* EVENT_DEBUG */