From 40c0e4e009ba32369e668aaa548259232b2a06bf Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Mon, 25 Jul 2005 08:47:28 +0000 Subject: some minor cleanup (mostly doc) in preparation for 0.9.4 --- BUGS | 14 ++++++++++++++ syslogd.c | 27 ++++++++++++++++++--------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/BUGS b/BUGS index 1073404d..ce3c27e4 100644 --- a/BUGS +++ b/BUGS @@ -40,6 +40,20 @@ BUILDING WITH MYSQL and such. Building with MySQL is currently not as straightforward as it should be ;) +CALLS to exit() + I have removed all calls to exit() I have introduced. However, there are + still some left from the original code. Most of them are OK, being done + on initial startup when a severe error happens. There are some, I think, + that might happen during runtime when a memory shortag is detected. We + should look into this issues. Finding some smarter code would allow + rsyslog to become even more fault-tolerant (but obviously, there is always + a cost, in this case most probably the loss of at least on message). + +SIGPIPE HANDLING + Currently, SIGPIPE is ignored. This is necessary to handle broken TCP + connections. We should further look into this issue and see which other + ways exist to handle the situation. + Updates to the bug lists (and potential fixes...) can be found at the official home page at diff --git a/syslogd.c b/syslogd.c index b4c31148..074d4da6 100644 --- a/syslogd.c +++ b/syslogd.c @@ -1,18 +1,15 @@ /** * TODO: - * - INET_SUSPEND_TIME reset (contains debug value!) * - check template lines for extra characters and provide * a warning, if they exists - * - check that no exit() is used! * - implement the escape-cc property replacer option * - it looks liek the time stamp is missing on internally-generated * messages - but maybe we need to keep this for compatibility * reasons. * - selector line for MySQL aborts if no template is given and * also no semicolon is present at the end of the line - * - check how to handle SIGPIPE correctly (TCP sender) * - * \brief This is the maint file of the rsyslogd daemon. + * \brief This is the main file of the rsyslogd daemon. * * Please note that as of now, a lot of the code in this file stems * from the sysklogd project. To learn more over this project, please @@ -25,7 +22,7 @@ * * Please note that I made quite some changes to the orignal package. * I expect to do even more changes - up - * to a full rewrite - to meat my design goals, which among others + * to a full rewrite - to meet my design goals, which among others * contain a (at least) dual-thread design with a memory buffer for * storing received bursts of data. This is also the reason why I * kind of "forked" a completely new branch of the package. My intension @@ -473,9 +470,20 @@ int repeatinterval[] = { 30, 60 }; /* # of secs before flush */ (f)->f_repeatcount = MAXREPEAT; \ } #ifdef SYSLOG_INET -//#define INET_SUSPEND_TIME 180 /* equal to 3 minutes */ -#define INET_SUSPEND_TIME 4 /* equal to 3 minutes */ -#define INET_RETRY_MAX 10 /* maximum of retries for gethostbyname() */ +#define INET_SUSPEND_TIME 60 /* equal to 1 minute + * rgerhards, 2005-07-26: This was 3 minutes. As the + * same timer is used for tcp based syslog, we have + * reduced it. However, it might actually be worth + * thinking about a buffered tcp sender, which would be + * a much better alternative. When that happens, this + * time here can be re-adjusted to 3 minutes (or, + * even better, made configurable). + */ +#define INET_RETRY_MAX 30 /* maximum of retries for gethostbyname() */ + /* was 10, changed to 30 because we reduced INET_SUSPEND_TIME by one third. So + * this "fixes" some of implications of it (see comment on INET_SUSPEND_TIME). + * rgerhards, 2005-07-26 + */ #endif #define LIST_DELIMITER ':' /* delimiter between two hosts */ @@ -2397,7 +2405,8 @@ int main(argc, argv) if ( Debug ) { dprintf("Debugging disabled, SIGUSR1 to turn on debugging.\n"); - /* TODO-BEFORERELEASE: remove before final debugging_on = 0;*/ + /* DEBUG-AID: comment out line below if you need that */ + debugging_on = 0; } /* * Send a signal to the parent to it can terminate. -- cgit