diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | plugins/imklog/bsd.c | 6 | ||||
-rw-r--r-- | plugins/imklog/solaris_cddl.c | 2 | ||||
-rw-r--r-- | rsyslog.service.in | 2 | ||||
-rw-r--r-- | tools/rsyslogd.8 | 28 | ||||
-rw-r--r-- | tools/syslogd.c | 19 |
6 files changed, 22 insertions, 45 deletions
@@ -54,7 +54,11 @@ Version 6.5.0 [devel] 2012-08-28 http://bugzilla.adiscon.com/show_bug.cgi?id=353 --------------------------------------------------------------------------- Version 6.4.3 [V6-STABLE] 2012-??-?? -- bugfix: imuxsock truncated head of received message +- cleanup: removed remains of -c option (compatibility mode) + both from code & doc and emitted warning message if still used + closes: http://bugzilla.adiscon.com/show_bug.cgi?id=361 + Thanks to Michael Biebl for reporting & suggestions +- bugfix: imuxsock and imklog truncated head of received message This happened only under some circumstances. Thanks to Marius Tomaschwesky, Florian Piekert and Milan Bartos for their help in solving this issue. @@ -638,8 +642,8 @@ expected that interfaces, even new ones, break during the initial syslog plain tcp input plugin (NOT supporting TLS!) [ported from v4] --------------------------------------------------------------------------- -Version 5.10.1 [V5-STABLE], 2012-0?-?? -- bugfix: imuxsock truncated head of received message +Version 5.10.1 [V5-STABLE], 2012-10-17 +- bugfix: imuxsock and imklog truncated head of received message This happened only under some circumstances. Thanks to Marius Tomaschwesky, Florian Piekert and Milan Bartos for their help in solving this issue. diff --git a/plugins/imklog/bsd.c b/plugins/imklog/bsd.c index 80ff9494..d4f9f773 100644 --- a/plugins/imklog/bsd.c +++ b/plugins/imklog/bsd.c @@ -92,7 +92,9 @@ submitSyslog(int pri, uchar *buf) /* we now try to parse the timestamp. iff it parses, we assume * it is a timestamp. Otherwise we know for sure it is no ts ;) */ - i = 4; /* first digit after '[' */ + i = 4; /* space or first digit after '[' */ + while(buf[i] && isspace(buf[i])) + ++i; /* skip space */ secs = 0; while(buf[i] && isdigit(buf[i])) { secs = secs * 10 + buf[i] - '0'; @@ -118,7 +120,7 @@ submitSyslog(int pri, uchar *buf) /* we have a timestamp */ DBGPRINTF("kernel timestamp is %ld %ld\n", secs, nsecs); bufsize= strlen((char*)buf); - memcpy(buf+3, buf+i, bufsize - i + 1); + memmove(buf+3, buf+i, bufsize - i + 1); clock_gettime(CLOCK_MONOTONIC, &monotonic); clock_gettime(CLOCK_REALTIME, &realtime); diff --git a/plugins/imklog/solaris_cddl.c b/plugins/imklog/solaris_cddl.c index 7e86c68c..cf5467fc 100644 --- a/plugins/imklog/solaris_cddl.c +++ b/plugins/imklog/solaris_cddl.c @@ -216,7 +216,7 @@ sun_getkmsg() */ remlen = buflen - len; - (void) memcpy(buf, &buf[len], remlen); + (void) memmove(buf, &buf[len], remlen); dat.maxlen = MAXLINE - remlen; dat.buf = &buf[remlen]; } else { diff --git a/rsyslog.service.in b/rsyslog.service.in index a5d53ad2..2265a491 100644 --- a/rsyslog.service.in +++ b/rsyslog.service.in @@ -3,7 +3,7 @@ Description=System Logging Service [Service] ExecStartPre=/bin/systemctl stop systemd-kmsg-syslogd.service -ExecStart=@sbindir@/rsyslogd -n -c6 +ExecStart=@sbindir@/rsyslogd -n Sockets=syslog.socket StandardOutput=null diff --git a/tools/rsyslogd.8 b/tools/rsyslogd.8 index 6ac30e46..36f29769 100644 --- a/tools/rsyslogd.8 +++ b/tools/rsyslogd.8 @@ -1,7 +1,7 @@ .\" Copyright 2004-2008 Rainer Gerhards and Adiscon for the rsyslog modifications .\" May be distributed under the GNU General Public License .\" -.TH RSYSLOGD 8 "29 July 2008" "Version 3.21.1" "Linux System Administration" +.TH RSYSLOGD 8 "16 October 2012" "Version 6.4.3" "Linux System Administration" .SH NAME rsyslogd \- reliable and extended syslogd .SH SYNOPSIS @@ -93,9 +93,6 @@ the error element is ignored. It is tried to parse the rest of the line. .LP .SH OPTIONS -.B Note that in version 3 of rsyslog a number of command line options -.B have been deprecated and replaced with config file directives. The -.B -c option controls the backward compatibility mode in use. .TP .BI "\-A" When sending UDP messages, there are potentially multiple paths to @@ -123,26 +120,9 @@ If neither -4 nor -6 is given, listens to all configured addresses of the system. .TP .BI "\-c " "version" -Selects the desired backward compatibility mode. It must always be the -first option on the command line, as it influences processing of the -other options. To use the rsyslog v3 native interface, specify -c3. To -use compatibility mode , either do not use -c at all or use --c<version> where -.IR version -is the rsyslog version that it shall be -compatible with. Using -c0 tells rsyslog to be command-line compatible -to sysklogd, which is the default if -c is not given. -.B Please note that rsyslogd issues warning messages if the -c3 -.B command line option is not given. -This is to alert you that your are running in compatibility -mode. Compatibility mode interferes with your rsyslog.conf commands and -may cause some undesired side-effects. It is meant to be used with a -plain old rsyslog.conf - if you use new features, things become -messy. So the best advice is to work through this document, convert -your options and config file and then use rsyslog in native mode. In -order to aid you in this process, rsyslog logs every -compatibility-mode config file directive it has generated. So you can -simply copy them from your logfile and paste them to the config. +This option has been obsolted and has no function any longer. It is still +accepted in order not to break existing scripts. However, future versions +may not support it. .TP .B "\-d" Turns on debug mode. Using this the daemon will not proceed a diff --git a/tools/syslogd.c b/tools/syslogd.c index 152c27ae..3bd0f018 100644 --- a/tools/syslogd.c +++ b/tools/syslogd.c @@ -221,11 +221,6 @@ struct queuefilenames_s { uchar *name; } *queuefilenames = NULL; -/* global variables for config file state */ -int iCompatibilityMode = 0; /* version we should be compatible with; 0 means sysklogd. It is - the default, so if no -c<n> option is given, we make ourselvs - as compatible to sysklogd as possible. */ -/* end global config file state variables */ int MarkInterval = 20 * 60; /* interval between marks in seconds - read-only after startup */ int send_to_all = 0; /* send message to all IPv4/IPv6 addresses */ @@ -251,10 +246,9 @@ static void sighup_handler(); static int usage(void) { - fprintf(stderr, "usage: rsyslogd [-c<version>] [-46AdnqQvwx] [-l<hostlist>] [-s<domainlist>]\n" + fprintf(stderr, "usage: rsyslogd [-46AdnqQvwx] [-l<hostlist>] [-s<domainlist>]\n" " [-f<conffile>] [-i<pidfile>] [-N<level>] [-M<module load path>]\n" " [-u<number>]\n" - "To run rsyslogd in native mode, use \"rsyslogd -c5 <other options>\"\n\n" "For further information see http://www.rsyslog.com/doc\n"); exit(1); /* "good" exit - done to terminate usage() */ } @@ -1838,10 +1832,7 @@ int realMain(int argc, char **argv) * split of functionality, this is no longer a problem. Thanks to varmofekoj for * suggesting this algo. * Note: where we just need to set some flags and can do so without knowledge - * 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. + * of other options, we do this during the inital option processing. * 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) { @@ -1872,7 +1863,7 @@ int realMain(int argc, char **argv) CHKiRet(bufOptAdd(ch, optarg)); break; case 'c': /* compatibility mode */ - iCompatibilityMode = atoi(optarg); + fprintf(stderr, "rsyslogd: error: option -c is no longer supported - ignored"); break; case 'd': /* debug - must be handled now, so that debug is active during init! */ debugging_on = 1; @@ -1896,8 +1887,8 @@ int realMain(int argc, char **argv) if(argc - optind) usage(); - DBGPRINTF("rsyslogd %s startup, compatibility mode %d, module path '%s', cwd:%s\n", - VERSION, iCompatibilityMode, glblModPath == NULL ? "" : (char*)glblModPath, + DBGPRINTF("rsyslogd %s startup, module path '%s', cwd:%s\n", + VERSION, glblModPath == NULL ? "" : (char*)glblModPath, getcwd(cwdbuf, sizeof(cwdbuf))); /* we are done with the initial option parsing and processing. Now we init the system. */ |