diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-10-09 18:04:28 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-10-09 18:04:28 +0200 |
commit | 6dd74f573d50a38291efddd56bbe338bb77209e6 (patch) | |
tree | bdb9991c8e4a94473b3551ec35bd95a851e35526 | |
parent | 9b104f782c0dd9440db27305cd87fd68414fce16 (diff) | |
parent | 20aa2b535e641cba43cf9219619b6f4b626b1eed (diff) | |
download | rsyslog-6dd74f573d50a38291efddd56bbe338bb77209e6.tar.gz rsyslog-6dd74f573d50a38291efddd56bbe338bb77209e6.tar.bz2 rsyslog-6dd74f573d50a38291efddd56bbe338bb77209e6.zip |
Merge branch 'c9'
Conflicts:
configure.ac
plugins/impstats/impstats.c
plugins/imptcp/imptcp.c
plugins/imudp/imudp.c
-rw-r--r-- | doc/imudp.html | 11 | ||||
-rw-r--r-- | plugins/imudp/imudp.c | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/doc/imudp.html b/doc/imudp.html index c84b7f9c..22b1f722 100644 --- a/doc/imudp.html +++ b/doc/imudp.html @@ -84,6 +84,17 @@ of "imudp514". The ability to append a port is most useful when multiple ports are defined for a single input and each of the inputnames shall be unique. Note that there currently is no differentiation between IPv4/v6 listeners on the same port. +<li><b>defaultTZ</b> <timezone-info><br> +This is an <b>experimental</b> parameter; details may change at any time and it may +also be discoutinued without any early warning.<br> +Permits to set a default timezone for this listener. This is useful when working with +legacy syslog (RFC3164 et al) residing in different timezones. If set it will be used as +timezone for all messages <b>that do not contain timezone info</b>. +Currently, the format <b>must</b> be "+/-hh:mm", e.g. "-05:00", "+01:30". Other formats, +including TZ names (like EST) are NOT yet supported. Note that consequently no daylight +saving settings are evaluated when working with timezones. If an invalid format is used, +"interesting" things can happen, among them malformed timestamps and rsyslogd segfaults. +This will obviously be changed at the time this feature becomes non-experimental.</li> </li> <li><b>rcvbufSize</b> [size] - (available since 7.5.3) This request a socket receive buffer of specific size from the operating system. diff --git a/plugins/imudp/imudp.c b/plugins/imudp/imudp.c index 41daf4a8..20675b0d 100644 --- a/plugins/imudp/imudp.c +++ b/plugins/imudp/imudp.c @@ -79,6 +79,7 @@ static struct lstn_s { prop_t *pInputName; statsobj_t *stats; /* listener stats */ ratelimit_t *ratelimiter; + uchar *dfltTZ; STATSCOUNTER_DEF(ctrSubmit, mutCtrSubmit) } *lcnfRoot = NULL, *lcnfLast = NULL; @@ -117,6 +118,7 @@ struct instanceConf_s { uchar *pszBindRuleset; /* name of ruleset to bind to */ uchar *inputname; ruleset_t *pBindRuleset; /* ruleset to bind listener to (use system default if unspecified) */ + uchar *dfltTZ; int ratelimitInterval; int ratelimitBurst; int rcvbuf; /* 0 means: do not set, keep OS default */ @@ -153,6 +155,7 @@ static struct cnfparamblk modpblk = /* input instance parameters */ static struct cnfparamdescr inppdescr[] = { { "port", eCmdHdlrArray, CNFPARAM_REQUIRED }, /* legacy: InputTCPServerRun */ + { "defaulttz", eCmdHdlrString, 0 }, { "inputname", eCmdHdlrGetWord, 0 }, { "inputname.appendport", eCmdHdlrBinary, 0 }, { "address", eCmdHdlrString, 0 }, @@ -189,6 +192,7 @@ createInstance(instanceConf_t **pinst) inst->ratelimitBurst = 10000; /* arbitrary high limit */ inst->ratelimitInterval = 0; /* off */ inst->rcvbuf = 0; + inst->dfltTZ = NULL; /* node created, let's add to config */ if(loadModConf->tail == NULL) { @@ -273,6 +277,7 @@ addListner(instanceConf_t *inst) newlcnfinfo->next = NULL; newlcnfinfo->sock = newSocks[iSrc]; newlcnfinfo->pRuleset = inst->pBindRuleset; + newlcnfinfo->dfltTZ = inst->dfltTZ; if(inst->inputname == NULL) { inputname = (uchar*)"imudp"; } else { @@ -388,6 +393,8 @@ processPacket(thrdInfo_t *pThrd, struct lstn_s *lstn, struct sockaddr_storage *f MsgSetInputName(pMsg, lstn->pInputName); MsgSetRuleset(pMsg, lstn->pRuleset); MsgSetFlowControlType(pMsg, eFLOWCTL_NO_DELAY); + if(lstn->dfltTZ != NULL) + MsgSetDfltTZ(pMsg, (char*) lstn->dfltTZ); pMsg->msgFlags = NEEDS_PARSING | PARSE_HOSTNAME | NEEDS_DNSRESOL; if(*pbIsPermitted == 2) pMsg->msgFlags |= NEEDS_ACLCHK_U; /* request ACL check after resolution */ @@ -834,6 +841,8 @@ createListner(es_str_t *port, struct cnfparamvals *pvals) inst->inputname = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL); } else if(!strcmp(inppblk.descr[i].name, "inputname.appendport")) { inst->bAppendPortToInpname = (int) pvals[i].val.d.n; + } else if(!strcmp(inppblk.descr[i].name, "defaulttz")) { + inst->dfltTZ = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL); } else if(!strcmp(inppblk.descr[i].name, "address")) { inst->pszBindAddr = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL); } else if(!strcmp(inppblk.descr[i].name, "ruleset")) { @@ -1022,6 +1031,7 @@ CODESTARTfreeCnf free(inst->pszBindPort); free(inst->pszBindAddr); free(inst->inputname); + free(inst->dfltTZ); del = inst; inst = inst->next; free(del); |