summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-06-18 11:11:07 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-06-18 11:11:07 +0200
commit17133f2cd18a2b5376d40a01b87c970b3a47c265 (patch)
treeef857337dc0db50271c7e30faae259d6fba3f0cd
parent3e2be47ed69d2b4ce21777a75ad6128592e84d1d (diff)
parentbca66bc1399d1b9bcc370c64b5a8befb2244695d (diff)
downloadrsyslog-17133f2cd18a2b5376d40a01b87c970b3a47c265.tar.gz
rsyslog-17133f2cd18a2b5376d40a01b87c970b3a47c265.tar.xz
rsyslog-17133f2cd18a2b5376d40a01b87c970b3a47c265.zip
Merge branch 'v3-stable' into beta
-rw-r--r--ChangeLog14
-rw-r--r--runtime/conf.c2
-rw-r--r--tools/omfile.c6
-rw-r--r--tools/syslogd.c15
4 files changed, 27 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 3e153d96..697a6a3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -153,6 +153,20 @@ version before switching to this one.
Thanks to Ken for providing the patch
---------------------------------------------------------------------------
Version 3.22.1 [v3-stable] (rgerhards), 2009-04-??
+- bugfix: invalid error message issued if $inlcudeConfig was on an empty
+ set of files (e.g. *.conf, where none such files existed)
+ thanks to Michael Biebl for reporting this bug
+- bugfix: when run in foreground (but not in debug mode), a
+ debug message ("DoDie called") was emitted at shutdown. Removed.
+ thanks to Michael Biebl for reporting this bug
+- bugfix: some garbagge was emitted to stderr on shutdown. This
+ garbage consisted of file names, which were written during
+ startup (key point: not a pointer error)
+ thanks to Michael Biebl for reporting this bug
+- bugfix: startup and shutdown message were emitted to stdout
+ thanks to Michael Biebl for reporting this bug
+- bugfix: error messages were not emitted to stderr in forked mode
+ (stderr and stdo are now kept open across forks)
- bugfix: internal messages were emitted to whatever file had fd2 when
rsyslogd ran in forked mode (as usual!)
Thanks to varmojfekoj for the patch
diff --git a/runtime/conf.c b/runtime/conf.c
index 55eb9800..126ea2b7 100644
--- a/runtime/conf.c
+++ b/runtime/conf.c
@@ -211,7 +211,7 @@ doIncludeLine(uchar **pp, __attribute__((unused)) void* pVal)
* Required by doIncludeDirectory().
*/
result = glob(pattern, GLOB_MARK, NULL, &cfgFiles);
- if(result != 0) {
+ if(result == GLOB_NOSPACE || result == GLOB_ABORTED) {
char errStr[1024];
rs_strerror_r(errno, errStr, sizeof(errStr));
errmsg.LogError(0, RS_RET_FILE_NOT_FOUND, "error accessing config file or directory '%s': %s",
diff --git a/tools/omfile.c b/tools/omfile.c
index c7283e4d..3e845a73 100644
--- a/tools/omfile.c
+++ b/tools/omfile.c
@@ -132,7 +132,7 @@ ENDisCompatibleWithFeature
BEGINdbgPrintInstInfo
CODESTARTdbgPrintInstInfo
if(pData->bDynamicName) {
- printf("[dynamic]\n\ttemplate='%s'"
+ dbgprintf("[dynamic]\n\ttemplate='%s'"
"\tfile cache size=%d\n"
"\tcreate directories: %s\n"
"\tfile owner %d, group %d\n"
@@ -146,9 +146,9 @@ CODESTARTdbgPrintInstInfo
pData->bFailOnChown ? "yes" : "no"
);
} else { /* regular file */
- printf("%s", pData->f_fname);
+ dbgprintf("%s", pData->f_fname);
if (pData->fd == -1)
- printf(" (unused)");
+ dbgprintf(" (unused)");
}
ENDdbgPrintInstInfo
diff --git a/tools/syslogd.c b/tools/syslogd.c
index 2ff868a9..77273bec 100644
--- a/tools/syslogd.c
+++ b/tools/syslogd.c
@@ -933,7 +933,7 @@ logmsgInternal(int iErr, int pri, uchar *msg, int flags)
MsgSetRcvFrom(pMsg, (char*)glbl.GetLocalHostName());
MsgSetRcvFromIP(pMsg, (uchar*)"127.0.0.1");
/* check if we have an error code associated and, if so,
- * adjust the tag. -- r5gerhards, 2008-06-27
+ * adjust the tag. -- rgerhards, 2008-06-27
*/
if(iErr == NO_ERRCODE) {
MsgSetTAG(pMsg, "rsyslogd:");
@@ -956,7 +956,8 @@ logmsgInternal(int iErr, int pri, uchar *msg, int flags)
* supressor statement.
*/
if(((Debug || NoFork) && bErrMsgToStderr) || iConfigVerify) {
- fprintf(stderr, "rsyslogd: %s\n", msg);
+ if(LOG_PRI(pri) == LOG_ERR)
+ fprintf(stderr, "rsyslogd: %s\n", msg);
}
if(bHaveMainQueue == 0) { /* not yet in queued mode */
@@ -1922,10 +1923,10 @@ static void doDie(int sig)
# define MSG1 "DoDie called.\n"
# define MSG2 "DoDie called 5 times - unconditional exit\n"
static int iRetries = 0; /* debug aid */
- if(Debug || NoFork)
+ if(Debug)
write(1, MSG1, sizeof(MSG1) - 1);
if(iRetries++ == 4) {
- if(Debug || NoFork)
+ if(Debug)
write(1, MSG2, sizeof(MSG2) - 1);
abort();
}
@@ -2531,7 +2532,7 @@ init(void)
*/
snprintf(bufStartUpMsg, sizeof(bufStartUpMsg)/sizeof(char),
" [origin software=\"rsyslogd\" " "swVersion=\"" VERSION \
- "\" x-pid=\"%d\" x-info=\"http://www.rsyslog.com\"] restart",
+ "\" x-pid=\"%d\" x-info=\"http://www.rsyslog.com\"] (re)start",
(int) myPid);
logmsgInternal(NO_ERRCODE, LOG_SYSLOG|LOG_INFO, (uchar*)bufStartUpMsg, 0);
@@ -3249,7 +3250,9 @@ doGlblProcessInit(void)
exit(1); /* "good" exit - after forking, not diasabling anything */
}
num_fds = getdtablesize();
- for (i= 0; i < num_fds; i++)
+ close(0);
+ /* we keep stdout and stderr open in case we have to emit something */
+ for (i = 3; i < num_fds; i++)
(void) close(i);
untty();
}