summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-05-09 15:07:22 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-05-09 15:07:22 +0200
commitfd4a54698cee48da073622f7d6ac49c94ccb1808 (patch)
treeb16110018cd3a21a19561f45376403e1e8815cfb /plugins
parent88ff647aef4c6db3c444c6d080f9886350ca9584 (diff)
parent87a01476e2a63ab7b6740b6b4182281d271ef382 (diff)
downloadrsyslog-fd4a54698cee48da073622f7d6ac49c94ccb1808.tar.gz
rsyslog-fd4a54698cee48da073622f7d6ac49c94ccb1808.tar.xz
rsyslog-fd4a54698cee48da073622f7d6ac49c94ccb1808.zip
Merge branch 'v5-stable' into beta
Conflicts: tools/omfwd.c
Diffstat (limited to 'plugins')
-rw-r--r--plugins/imuxsock/imuxsock.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/imuxsock/imuxsock.c b/plugins/imuxsock/imuxsock.c
index e559e6a6..cbf87d7f 100644
--- a/plugins/imuxsock/imuxsock.c
+++ b/plugins/imuxsock/imuxsock.c
@@ -432,7 +432,8 @@ finalize_it:
/* find ratelimiter to use for this message. Currently, we use the
* pid, but may change to cgroup later (probably via a config switch).
- * Returns NULL if not found.
+ * Returns NULL if not found or rate-limiting not activated for this
+ * listener (the latter being a performance enhancement).
*/
static inline rsRetVal
findRatelimiter(lstn_t *pLstn, struct ucred *cred, rs_ratelimit_state_t **prl)
@@ -444,6 +445,10 @@ findRatelimiter(lstn_t *pLstn, struct ucred *cred, rs_ratelimit_state_t **prl)
if(cred == NULL)
FINALIZE;
+ if(pLstn->ratelimitInterval == 0) {
+ *prl = NULL;
+ FINALIZE;
+ }
rl = hashtable_search(pLstn->ht, &cred->pid);
if(rl == NULL) {
@@ -454,7 +459,7 @@ findRatelimiter(lstn_t *pLstn, struct ucred *cred, rs_ratelimit_state_t **prl)
CHKmalloc(rl = malloc(sizeof(rs_ratelimit_state_t)));
CHKmalloc(keybuf = malloc(sizeof(pid_t)));
*keybuf = cred->pid;
- initRatelimitState(rl, ratelimitInterval, pLstn->ratelimitBurst);
+ initRatelimitState(rl, pLstn->ratelimitInterval, pLstn->ratelimitBurst);
r = hashtable_insert(pLstn->ht, keybuf, rl);
if(r == 0)
ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY);