summaryrefslogtreecommitdiffstats
path: root/plugins/imudp/imudp.c
diff options
context:
space:
mode:
authorAndre Lorbach <alorbach@adiscon.com>2013-07-12 12:54:59 +0200
committerAndre Lorbach <alorbach@adiscon.com>2013-07-12 12:54:59 +0200
commitbc1589c5bbdbc53f9762a78994dcce3b5f4381fe (patch)
treec0f5806f498fc79bfe2fc80367796d9d5e1fa1c7 /plugins/imudp/imudp.c
parenta593ccddd473258bafa8f7ecd142b9b72b99d2fd (diff)
parentdc472ce76bc6df165df01742c8d79703ccbf5d39 (diff)
downloadrsyslog-bc1589c5bbdbc53f9762a78994dcce3b5f4381fe.tar.gz
rsyslog-bc1589c5bbdbc53f9762a78994dcce3b5f4381fe.tar.bz2
rsyslog-bc1589c5bbdbc53f9762a78994dcce3b5f4381fe.zip
Merge branch 'master' into v7-stats-scripts
Diffstat (limited to 'plugins/imudp/imudp.c')
-rw-r--r--plugins/imudp/imudp.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/imudp/imudp.c b/plugins/imudp/imudp.c
index 312645bd..386ef219 100644
--- a/plugins/imudp/imudp.c
+++ b/plugins/imudp/imudp.c
@@ -112,6 +112,7 @@ struct instanceConf_s {
ruleset_t *pBindRuleset; /* ruleset to bind listener to (use system default if unspecified) */
int ratelimitInterval;
int ratelimitBurst;
+ int rcvbuf; /* 0 means: do not set, keep OS default */
struct instanceConf_s *next;
sbool bAppendPortToInpname;
};
@@ -146,9 +147,10 @@ static struct cnfparamdescr inppdescr[] = {
{ "inputname", eCmdHdlrGetWord, 0 },
{ "inputname.appendport", eCmdHdlrBinary, 0 },
{ "address", eCmdHdlrString, 0 },
- { "ruleset", eCmdHdlrString, 0 },
{ "ratelimit.interval", eCmdHdlrInt, 0 },
- { "ratelimit.burst", eCmdHdlrInt, 0 }
+ { "ratelimit.burst", eCmdHdlrInt, 0 },
+ { "rcvbufsize", eCmdHdlrSize, 0 },
+ { "ruleset", eCmdHdlrString, 0 }
};
static struct cnfparamblk inppblk =
{ CNFPARAMBLK_VERSION,
@@ -177,6 +179,7 @@ createInstance(instanceConf_t **pinst)
inst->bAppendPortToInpname = 0;
inst->ratelimitBurst = 10000; /* arbitrary high limit */
inst->ratelimitInterval = 0; /* off */
+ inst->rcvbuf = 0;
/* node created, let's add to config */
if(loadModConf->tail == NULL) {
@@ -252,7 +255,7 @@ addListner(instanceConf_t *inst)
DBGPRINTF("Trying to open syslog UDP ports at %s:%s.\n", bindName, inst->pszBindPort);
- newSocks = net.create_udp_socket(bindAddr, port, 1);
+ newSocks = net.create_udp_socket(bindAddr, port, 1, inst->rcvbuf);
if(newSocks != NULL) {
/* we now need to add the new sockets to the existing set */
/* ready to copy */
@@ -729,6 +732,8 @@ createListner(es_str_t *port, struct cnfparamvals *pvals)
inst->ratelimitBurst = (int) pvals[i].val.d.n;
} else if(!strcmp(inppblk.descr[i].name, "ratelimit.interval")) {
inst->ratelimitInterval = (int) pvals[i].val.d.n;
+ } else if(!strcmp(inppblk.descr[i].name, "rcvbufsize")) {
+ inst->rcvbuf = (int) pvals[i].val.d.n;
} else {
dbgprintf("imudp: program error, non-handled "
"param '%s'\n", inppblk.descr[i].name);