83 Commits

Author SHA1 Message Date
Rainer Gerhards
f8dee56243 bugfix: potential re-use of free()ed file stream object in omfile
when dynaCache is enabled, the cache is full, a new entry needs to
be allocated, thus the LRU discarded, then a new entry is opend and that
fails. In that case, it looks like the discarded stream may be reused
improperly (based on code analysis, test case and confirmation pending)
2010-03-23 14:11:50 +01:00
Rainer Gerhards
0fd8143d87 Merge branch 'v4-stable' into v4-beta
Conflicts:
	tests/Makefile.am
2009-11-12 13:21:46 +01:00
Rainer Gerhards
0a5b731f2f bugfix: $ActionExecOnlyOnceEveryInterval did not work.
This was a regression from the time() optimizations done in v4.
Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=143
Thanks to Klaus Tachtler for reporting this bug.
2009-11-12 13:14:39 +01:00
Rainer Gerhards
eb70428681 minor: optimized dbgprintf() use 2009-09-10 13:56:08 +02:00
Rainer Gerhards
6fde78cb74 small performance improvement and cleanup
optimized substring processing, should bring a small enhancement when
forwarding with the default forwarding templates. Also did some uchar
cleanup in msg.c (thus so many changes, in reality they are few...).
2009-07-09 17:19:21 +02:00
Rainer Gerhards
d88803c8e4 got rid of the recursive requirement for msg_t mutex (finally!) 2009-06-26 13:42:52 +02:00
Rainer Gerhards
539f33c6a0 bugfix: abort when using multiple mainMsgQueue worker threads
this bug was introduced by a recent change which was a bit too agressive
in avoiding locking. We can probably do better than with this patch, but
I think I'll move that into the v5 engine.
2009-06-24 11:40:53 +02:00
Rainer Gerhards
c53ca3a234 fixed a race condition: generated msg string store must be mutex protected
the string area that is used to build the string being passed to
the output module is now part of the action structure. As such,
access to it must also be guarded by the action mutex (an even more
optimal solution may be to store it in thread-local storage, but
there always must remain some room for improvement ;)).
2009-06-23 18:23:02 +02:00
Rainer Gerhards
b50d13a6a9 restored repeated message reduction processing 2009-06-23 14:50:03 +02:00
Rainer Gerhards
3abf567d2b optimized template string generation 2009-06-19 16:07:17 +02:00
Rainer Gerhards
cbad28915a optimized action.c a bit 2009-06-19 12:39:06 +02:00
Rainer Gerhards
2de4964aff optimized handling of MSG part in msg object
WARNING: currently, message repeation processing is disabled, must
be reenabled (but prefer to do some other tests first)
2009-06-18 16:51:40 +02:00
Rainer Gerhards
8628312396 cleaned up/optimized raw message handling in msg object 2009-06-18 13:22:21 +02:00
Rainer Gerhards
9704f129f7 added capability to fsync() queue disk files for enhanced reliability
also adds speed, because you do no longer need to run the whole file
system in sync mode. New testbench and new config directives:
- $MainMsgQueueSyncQueueFiles
- $ActionQueueSyncQueueFiles
2009-06-09 19:00:18 +02:00
Rainer Gerhards
8e430258fd added capability to draw configuration graphs
- added $GenerateConfigGraph configuration command which can be used
  to generate nice-looking (and very informative) rsyslog configuration
  graphs.
- added $ActionName configuration directive (currently only used for
  graph generation, but may find other uses)
2009-05-11 17:38:33 +02:00
Rainer Gerhards
ec0e2c3e7d added a new way how output plugins may be passed parameters.
This is more efficient for some outputs. They new can receive fields not only
as a single string but rather in an array where each string is seperated.
2009-04-03 12:51:02 +02:00
Rainer Gerhards
7269efe60a Merge branch 'omfile-errHandler'
Conflicts:
	ChangeLog
2009-03-24 16:25:54 +01:00
Rainer Gerhards
27a639ed88 omfile bugfixing
- fixed a bug that caused action retries not to work correctly
  situation was only cleared by a restart
- bugfix: closed dynafile was potentially never written until another
  dynafile name was generated - potential loss of messages
2009-03-18 17:55:15 +01:00
Rainer Gerhards
2e388db9ac integrated various patches for solaris
Unfortunatley, I do not have the full list of contributors
available. The patch set was compiled by Ben Taylor, and I made
some further changes to adopt it to the news rsyslog branch. Others
provided much of the base work, but I can not find the names of the
original authors. If you happen to be one of them, please let me
know so that I can give proper credits.
2009-03-05 11:10:43 +01:00
Rainer Gerhards
6ce4a9d605 added new config directive $RepeatedMsgContainsOriginalMsg
so that the "last message repeated n times" messages, if generated, may
have an alternate format that contains the message that is being repeated.
Note that this is on an action-by-action basis.
2009-02-02 15:28:24 +01:00
varmojfekoj
ec2019abe2 fixed type in format string (s as string indicator missing)
Signed-off-by: Rainer Gerhards <rgerhards@adiscon.com>
2009-01-12 12:37:41 +01:00
Rainer Gerhards
a185665be4 experimentally altered "last message repeated n times" to include msg
This was suggested by David Lang, to help identify the message that was
repeated. A problem is that I do not have the expanded template at
hand when the "last ... times" message is generated. Spending much time
on this functionality is also probably not a good thing, as the whole
functionality will be overhauled (and once this is done we will not at
all have the output template at hand). So the approach is to use a single
field - here msg - and inlcude it as a notation of what was repeated. This
is far from being perfect, but eventually good enough. I will now wait
for feedback before going any further.
2008-12-19 12:52:49 +01:00
Rainer Gerhards
6334d335d8 added configuration directive "HUPisRestart"
...which enables to configure HUP to be either a full restart
or "just" a leightweight way to close open files
2008-10-23 14:46:47 +02:00
Rainer Gerhards
0fa2399466 cleanup of output timestamp generation 2008-10-07 15:10:03 +02:00
Rainer Gerhards
8528344ef5 "output" timestamp now taken from mesg's time generated
This enhances performance and, as some have pointed out, is
probably also more consistent with what users expect how
the various output-timestamp related function should work. This
commit needs some more testing.
2008-10-07 14:26:41 +02:00
Rainer Gerhards
1e53745dc9 very minor: performance optimization hint added 2008-10-02 12:20:12 +02:00
Rainer Gerhards
5ce9b5ad83 TESTING COMMIT: commiting not fully correct code
... for the purpose of conducting a few external tests. This is a
first approach at removing the time() call in the output, but it shows
there are some subleties we need to address.
2008-09-18 17:17:47 +02:00
Rainer Gerhards
bcb9765068 consolidated time() calls in rule engine
... but did not manage to avoid doing at least one call. So
this change introduced performance benefit only in a few
non-common situations. Anyhow, it hopefully levels ground
for better things to come.
2008-09-16 14:57:12 +02:00
Rainer Gerhards
1e819a8afe Merge branch 'beta'
Conflicts:

	runtime/rsyslog.h
	tools/syslogd.c
2008-09-12 15:17:47 +02:00
Rainer Gerhards
63994d092c Merge branch 'v3-stable' into beta
Conflicts:

	runtime/datetime.h
	runtime/rsyslog.h
2008-09-12 15:11:38 +02:00
Rainer Gerhards
8cb83af111 bugfix: incorrect default discard severity could cause message loss
default discard severity was incorrectly set to 4, which lead
to discard-on-queue-full to be enabled by default. That could cause
message loss where non was expected.  The default has now been changed
to the correct value of 8, which disables the functionality. This
problem applied both to the main message queue and the action queues.
Thanks to Raoul Bhatia for pointing out this problem.
2008-09-10 08:14:12 +02:00
Rainer Gerhards
25bc87872a Merge branch 'beta'
Conflicts:

	ChangeLog
	action.c
	configure.ac
	doc/manual.html
2008-09-02 12:03:32 +02:00
Rainer Gerhards
2082d96397 Merge branch 'v3-stable' into beta
Conflicts:

	ChangeLog
	configure.ac
	doc/manual.html
2008-09-02 11:56:34 +02:00
varmojfekoj
6cbc5652dd bugfix: action was not called when system time was set backwards
(until the previous time was reached again). There are still some
side-effects when time is rolled back (A time rollback is really a bad
thing to do, ideally the OS should issue pseudo time (like NetWare did)
when the user tries to roll back time).

Signed-off-by: Rainer Gerhards <rgerhards@adiscon.com>
2008-09-01 16:00:22 +02:00
Rainer Gerhards
1480263b02 added ability to execute actions only after the n-th call of the action
This also lead to the addition of two new config directives:
$ActionExecOnlyEveryNthTime and $ActionExecOnlyEveryNthTimeTimeout
This feature is useful, for example, for alerting: it permits you to
send an alert only after at least n occurences of a specific message
have been seen by rsyslogd. This protectes against false positives
due to waiting for additional confirmation.
2008-08-07 16:52:31 +02:00
Rainer Gerhards
3f6c73a8b7 added (internal) error codes to error messages
Also added redirector to web description of error codes
closes bug http://bugzilla.adiscon.com/show_bug.cgi?id=20
2008-06-27 12:52:45 +02:00
Rainer Gerhards
b711a34a07 disabled compile warnings caused by third-party libraries 2008-06-23 11:29:47 +02:00
Rainer Gerhards
94acfb1c5f ability to load proper select netstrm driver 2008-04-29 10:02:59 +02:00
Rainer Gerhards
d9b0c77d3e some more cleanup
reduced dependencies, moved non-runtime files to its own directory except
for some whom's status is unclear
2008-04-16 15:27:53 +02:00
Rainer Gerhards
185bc5f8e1 implemented $ActionExecOnlyOnceEveryInterval config directive 2008-04-08 12:54:09 +02:00
Rainer Gerhards
46fbfee41e added the capability to specify a processing (actually dequeue) timeframe
with queues - so things can be configured to be done at off-peak hours
2008-04-03 13:19:48 +00:00
Rainer Gerhards
fd7e1fc72e changed queue's discard severities default value to 8 (do not discard) to
prevent unintentional message loss
2008-03-22 09:53:07 +00:00
Rainer Gerhards
fdfcb2a8f9 added advanced flow control for congestion cases (mode depending on message
source and its capablity to be delayed without bad side effects)
2008-03-14 11:04:36 +00:00
Rainer Gerhards
b571fdc61a fixed some compiler warnings under FreeBSD 2008-03-06 16:05:44 +00:00
Rainer Gerhards
f2e01f85bc shuffled some more code from syslogd.c to the right places 2008-03-05 17:11:09 +00:00
Rainer Gerhards
1560e84ff8 moved date/time handling functions to their own object (2nd pass) 2008-03-05 16:37:16 +00:00
Rainer Gerhards
056c60ec3d bugfix: actions were not correctly retried; caused message loss 2008-03-05 15:39:33 +00:00
Rainer Gerhards
24b02dc831 - extracted logerror*() family of functions from syslogd, made them their
own class and converted to new object calling conventions
    (interface-based)
- converted gss-misc into a loadable library module
2008-03-05 14:53:25 +00:00
Rainer Gerhards
545346e697 - changed modules.c calling conventions to be interface-based
- moved module loader from conf.c to module.c, where it belongs
- made the necessary plumbing to auto-load library modules
- upgraded debug system to include iRet in function exit message
- changed module interface so that instances need only to be supported by
    output plugins (if we actually need them for input plugins, we can
    always add it again...)
- milestone: first implementation of library modules (but do not get
    unloaded on exit/hup so far)
2008-03-05 10:30:06 +00:00
Rainer Gerhards
4412b88148 changed obj base object's calling interface to use the new obj_if_t
interface structure
2008-02-29 09:14:10 +00:00