summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am2
-rw-r--r--tools/omfile.c1
-rw-r--r--tools/omfwd.c2
-rw-r--r--tools/omusrmsg.c1
-rw-r--r--tools/rsyslog.conf.54
-rw-r--r--tools/syslogd.c87
6 files changed, 46 insertions, 51 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 8f2989ca..96657ad4 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,5 +1,5 @@
sbin_PROGRAMS =
-man_MANS = rsyslogd.8 rsyslog.conf.5
+man_MANS = rsyslogd.8 rsyslog.conf.5
sbin_PROGRAMS += rsyslogd
rsyslogd_SOURCES = \
diff --git a/tools/omfile.c b/tools/omfile.c
index 78f2bf8e..8c507a56 100644
--- a/tools/omfile.c
+++ b/tools/omfile.c
@@ -404,7 +404,6 @@ prepareFile(instanceData *pData, uchar *newFileName)
}
} else {
/* file does not exist, create it (and eventually parent directories */
- fd = -1;
if(pData->bCreateDirs) {
/* We first need to create parent dirs if they are missing.
* We do not report any errors here ourselfs but let the code
diff --git a/tools/omfwd.c b/tools/omfwd.c
index 481fabab..487bb35a 100644
--- a/tools/omfwd.c
+++ b/tools/omfwd.c
@@ -515,7 +515,6 @@ finalize_it:
BEGINparseSelectorAct
uchar *q;
int i;
- int bErr;
rsRetVal localRet;
struct addrinfo;
TCPFRAMINGMODE tcp_framing = TCP_FRAMING_OCTET_STUFFING;
@@ -638,7 +637,6 @@ CODE_STD_STRING_REQUESTparseSelectorAct(1)
}
/* now skip to template */
- bErr = 0;
while(*p && *p != ';' && *p != '#' && !isspace((int) *p))
++p; /*JUST SKIP*/
diff --git a/tools/omusrmsg.c b/tools/omusrmsg.c
index e61751dc..768baca7 100644
--- a/tools/omusrmsg.c
+++ b/tools/omusrmsg.c
@@ -249,7 +249,6 @@ static rsRetVal wallmsg(uchar* pMsg, instanceData *pData)
}
}
close(ttyf);
- ttyf = -1;
}
}
diff --git a/tools/rsyslog.conf.5 b/tools/rsyslog.conf.5
index e8a4ab92..e17da974 100644
--- a/tools/rsyslog.conf.5
+++ b/tools/rsyslog.conf.5
@@ -200,11 +200,11 @@ to overwrite the preceding ones. Using this behavior you can exclude some
priorities from the pattern.
Rsyslogd has a syntax extension to the original BSD source, that makes its use
-more intuitively. You may precede every priority with an equation sign ('=') to
+more intuitively. You may precede every priority with an equals sign ('=') to
specify only this single priority and not any of the above. You may also (both
is valid, too) precede the priority with an exclamation mark ('!') to ignore
all that priorities, either exact this one or this and any higher priority. If
-you use both extensions than the exclamation mark must occur before the equation
+you use both extensions than the exclamation mark must occur before the equals
sign, just use it intuitively.
.SH ACTIONS
diff --git a/tools/syslogd.c b/tools/syslogd.c
index 2e4ea5d5..19a5900c 100644
--- a/tools/syslogd.c
+++ b/tools/syslogd.c
@@ -135,6 +135,7 @@
#include "net.h"
#include "vm.h"
#include "prop.h"
+#include "sd-daemon.h"
/* definitions for objects we access */
DEFobjCurrIf(obj)
@@ -392,7 +393,7 @@ static char **crunch_list(char *list)
char **result = NULL;
p = list;
-
+
/* strip off trailing delimiters */
while (p[strlen(p)-1] == LIST_DELIMITER) {
count--;
@@ -401,18 +402,18 @@ static char **crunch_list(char *list)
/* cut off leading delimiters */
while (p[0] == LIST_DELIMITER) {
count--;
- p++;
+ p++;
}
-
+
/* count delimiters to calculate elements */
for (count=i=0; p[i]; i++)
if (p[i] == LIST_DELIMITER) count++;
-
+
if ((result = (char **)MALLOC(sizeof(char *) * (count+2))) == NULL) {
printf ("Sorry, can't get enough memory, exiting.\n");
exit(0); /* safe exit, because only called during startup */
}
-
+
/*
* We now can assume that the first and last
* characters are different from any delimiters,
@@ -575,7 +576,7 @@ logmsgInternal(int iErr, int pri, uchar *msg, int flags)
if(bHaveMainQueue == 0) { /* not yet in queued mode */
iminternalAddMsg(pri, pMsg);
} else {
- /* we have the queue, so we can simply provide the
+ /* we have the queue, so we can simply provide the
* message to the queue engine.
*/
submitMsg(pMsg);
@@ -722,7 +723,7 @@ submitMsg(msg_t *pMsg)
DEFiRet;
ISOBJ_TYPE_assert(pMsg, msg);
-
+
pRuleset = MsgGetRuleset(pMsg);
pQueue = (pRuleset == NULL) ? pMsgQueue : ruleset.GetRulesetQueue(pRuleset);
@@ -788,7 +789,7 @@ DEFFUNC_llExecFunc(flushRptdMsgsActions)
{
action_t *pAction = (action_t*) pData;
assert(pAction != NULL);
-
+
BEGINfunc
LockObj(pAction);
/* TODO: time() performance: the call below could be moved to
@@ -843,7 +844,7 @@ static void debug_switch()
dbgprintf("\n");
debugging_on = 0;
}
-
+
memset(&sigAct, 0, sizeof (sigAct));
sigemptyset(&sigAct.sa_mask);
sigAct.sa_handler = debug_switch;
@@ -1031,7 +1032,7 @@ destructAllActions(void)
/* die() is called when the program shall end. This typically only occurs
- * during sigterm or during the initialization.
+ * during sigterm or during the initialization.
* As die() is intended to shutdown rsyslogd, it is
* safe to call exit() here. Just make sure that die() itself is not called
* at inapropriate places. As a general rule of thumb, it is a bad idea to add
@@ -1071,7 +1072,7 @@ die(int sig)
errno = 0;
logmsgInternal(NO_ERRCODE, LOG_SYSLOG|LOG_INFO, (uchar*)buf, 0);
}
-
+
/* drain queue (if configured so) and stop main queue worker thread pool */
DBGPRINTF("Terminating main queue...\n");
qqueueDestruct(&pMsgQueue);
@@ -1195,7 +1196,7 @@ static rsRetVal setUmask(void __attribute__((unused)) *pVal, int iUmask)
}
-/* drop to specified group
+/* drop to specified group
* if something goes wrong, the function never returns
* Note that such an abort can cause damage to on-disk structures, so we should
* re-design the "interface" in the long term. -- rgerhards, 2008-11-26
@@ -1223,7 +1224,7 @@ static void doDropPrivGid(int iGid)
}
-/* drop to specified user
+/* drop to specified user
* if something goes wrong, the function never returns
* Note that such an abort can cause damage to on-disk structures, so we should
* re-design the "interface" in the long term. -- rgerhards, 2008-11-19
@@ -1333,7 +1334,7 @@ generateConfigDAG(uchar *pszDAGFile)
DEFiRet;
assert(pszDAGFile != NULL);
-
+
if((fp = fopen((char*) pszDAGFile, "w")) == NULL) {
logmsgInternal(NO_ERRCODE, LOG_SYSLOG|LOG_INFO, (uchar*)
"configuraton graph output file could not be opened, none generated", 0);
@@ -1459,7 +1460,7 @@ static void dbgPrintInitInfo(void)
/* TODO: add
iActionRetryCount = 0;
iActionRetryInterval = 30000;
- static int iMainMsgQtoWrkMinMsgs = 100;
+ static int iMainMsgQtoWrkMinMsgs = 100;
static int iMainMsgQbSaveOnShutdown = 1;
iMainMsgQueMaxDiskSpace = 0;
setQPROP(qqueueSetiMinMsgsPerWrkr, "$MainMsgQueueWorkerThreadMinimumMessages", 100);
@@ -1731,7 +1732,7 @@ init(void)
* identify this instance. -- rgerhards, 2005-08-17
*/
if(bLogStatusMsgs) {
- snprintf(bufStartUpMsg, sizeof(bufStartUpMsg)/sizeof(char),
+ snprintf(bufStartUpMsg, sizeof(bufStartUpMsg)/sizeof(char),
" [origin software=\"rsyslogd\" " "swVersion=\"" VERSION \
"\" x-pid=\"%d\" x-info=\"http://www.rsyslog.com\"] start",
(int) myPid);
@@ -1761,7 +1762,7 @@ finalize_it:
-/* Put the rsyslog main thread to sleep for n seconds. This was introduced as
+/* Put the rsyslog main thread to sleep for n seconds. This was introduced as
* a quick and dirty workaround for a privilege drop race in regard to listener
* startup, which itself was a result of the not-yet-done proper coding of
* privilege drop code (quite some effort). It may be useful for other occasions, too.
@@ -1846,7 +1847,7 @@ static rsRetVal setMainMsgQueType(void __attribute__((unused)) *pVal, uchar *psz
void sighup_handler()
{
struct sigaction sigAct;
-
+
bHadHUP = 1;
memset(&sigAct, 0, sizeof (sigAct));
@@ -2110,11 +2111,6 @@ static void printVersion(void)
#else
printf("\tFEATURE_LARGEFILE:\t\t\tNo\n");
#endif
-#ifdef USE_NETZIP
- printf("\tFEATURE_NETZIP (message compression):\tYes\n");
-#else
- printf("\tFEATURE_NETZIP (message compression):\tNo\n");
-#endif
#if defined(SYSLOG_INET) && defined(USE_GSSAPI)
printf("\tGSSAPI Kerberos 5 support:\t\tYes\n");
#else
@@ -2126,9 +2122,14 @@ static void printVersion(void)
printf("\tFEATURE_DEBUG (debug build, slow code):\tNo\n");
#endif
#ifdef HAVE_ATOMIC_BUILTINS
- printf("\tAtomic operations supported:\t\tYes\n");
+ printf("\t32bit Atomic operations supported:\tYes\n");
+#else
+ printf("\t32bit Atomic operations supported:\tNo\n");
+#endif
+#ifdef HAVE_ATOMIC_BUILTINS64
+ printf("\t64bit Atomic operations supported:\tYes\n");
#else
- printf("\tAtomic operations supported:\t\tNo\n");
+ printf("\t64bit Atomic operations supported:\tNo\n");
#endif
#ifdef RTINST
printf("\tRuntime Instrumentation (slow code):\tYes\n");
@@ -2431,13 +2432,14 @@ doGlblProcessInit(void)
num_fds = getdtablesize();
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);
+
+ if (sd_listen_fds(0) <= 0)
+ for (i = 3; i < num_fds; i++)
+ (void) close(i);
untty();
- }
- else
- {
- fputs(" Already running.\n", stderr);
+ } else {
+ fputs(" Already running. If you want to run multiple instances, you need "
+ "to specify different pid files (use -i option)\n", stderr);
exit(1); /* "good" exit, done if syslogd is already running */
}
}
@@ -2489,7 +2491,7 @@ doGlblProcessInit(void)
* modularize it a bit more...
*/
int realMain(int argc, char **argv)
-{
+{
DEFiRet;
register uchar *p;
@@ -2519,7 +2521,7 @@ int realMain(int argc, char **argv)
* of other options, we do this during the inital option processing. With later
* versions (if a dependency on -c option is introduced), we must move that code
* to other places, but I think it is quite appropriate and saves code to do this
- * only when actually neeeded.
+ * only when actually neeeded.
* rgerhards, 2008-04-04
*/
while((ch = getopt(argc, argv, "46a:Ac:def:g:hi:l:m:M:nN:op:qQr::s:t:T:u:vwx")) != EOF) {
@@ -2584,13 +2586,13 @@ int realMain(int argc, char **argv)
case 'v': /* MUST be carried out immediately! */
printVersion();
exit(0); /* exit for -v option - so this is a "good one" */
- case '?':
+ case '?':
default:
usage();
}
}
- if ((argc -= optind))
+ if(argc - optind)
usage();
DBGPRINTF("rsyslogd %s startup, compatibility mode %d, module path '%s', cwd:%s\n",
@@ -2640,7 +2642,7 @@ int realMain(int argc, char **argv)
* Good software also always checks its return values...
* If syslogd starts up before DNS is up & /etc/hosts
* doesn't have LocalHostName listed, gethostbyname will
- * return NULL.
+ * return NULL.
*/
/* TODO: gethostbyname() is not thread-safe, but replacing it is
* not urgent as we do not run on multiple threads here. rgerhards, 2007-09-25
@@ -2649,7 +2651,7 @@ int realMain(int argc, char **argv)
if(hent) {
free(LocalHostName);
CHKmalloc(LocalHostName = (uchar*)strdup(hent->h_name));
-
+
if((p = (uchar*)strchr((char*)LocalHostName, '.')))
{
*p++ = '\0';
@@ -2661,7 +2663,7 @@ int realMain(int argc, char **argv)
/* Convert to lower case to recognize the correct domain laterly */
for(p = LocalDomain ; *p ; p++)
*p = (char)tolower((int)*p);
-
+
/* we now have our hostname and can set it inside the global vars.
* TODO: think if all of this would better be a runtime function
* rgerhards, 2008-04-17
@@ -2817,7 +2819,7 @@ int realMain(int argc, char **argv)
case 'x': /* disable dns for remote messages */
glbl.SetDisableDNS(1);
break;
- case '?':
+ case '?':
default:
usage();
}
@@ -2866,15 +2868,12 @@ int realMain(int argc, char **argv)
if(!iConfigVerify)
CHKiRet(doGlblProcessInit());
- /* re-generate local host name property, as the config may have changed our FQDN settings */
- glbl.GenerateLocalHostNameProperty();
-
CHKiRet(mainThread());
/* do any de-init's that need to be done AFTER this comment */
die(bFinished);
-
+
thrdExit();
finalize_it:
@@ -2896,7 +2895,7 @@ finalize_it:
* rgerhards, 20080-01-28
*/
int main(int argc, char **argv)
-{
+{
dbgClassInit();
return realMain(argc, argv);
}