69 Commits

Author SHA1 Message Date
Rainer Gerhards
d4564f8399 interim commit: working on failure cases
slightly improved situation, would like to save it before carrying on
2009-05-27 19:43:28 +02:00
Rainer Gerhards
aa9426f683 solved design issue with queue termination
... and also improved the test suite. There is a design issue in the
v3 queue engine that manifested to some serious problems with the new
processing mode. However, in v3 shutdown may take eternally if a queue
runs in DA mode, is configured to preserve data AND the action fails and
retries immediately. There is no cure available for v3, it would
require doing much of the work we have done on the new engine. The window
of exposure, as one might guess from the description, is very small. That
is probably the reason why we have not seen it in practice.
2009-05-26 12:43:43 +02:00
Rainer Gerhards
fc0712f40a Merge branch 'master' into ultra-reliable
Conflicts:
	tests/Makefile.am
	tests/diskqueue.sh
2009-05-25 11:05:18 +02:00
Rainer Gerhards
eb1615068c added new testing module imdiag
which enables to talk to the rsyslog core at runtime. The current
implementation is only a beginning, but can be expanded over time
2009-05-25 10:47:22 +02:00
Rainer Gerhards
0fa5486a4a Merge branch 'master' into ultra-reliable
Conflicts:
	runtime/rsyslog.h
	tests/Makefile.am
	tools/syslogd.c
2009-05-22 17:23:08 +02:00
Rainer Gerhards
aba90e8248 added capability to run multiple tcp listeners (on different ports)
Well, actually this and a lot of related things. I improved the
testbench so that the new capabilities are automatically tested and
also did some general cleanup. The current multiple tcp listener
solution will probably receive some further cleanup, too, but looks
quite OK so far. I also reviewed the way tcpsrv et all work, in
preparation of using this code for imdiag. I need to document the
findings, especially as the code is rather complicated "thanks" to
the combination of plain tcp and gssapi transport modes.
2009-05-22 17:06:52 +02:00
Rainer Gerhards
9f45b80ea9 free last processed message in all cases
so far, the last processed message was only freed when the next
one was processed. This has been changed now. More precisely, a
better algorithm has been selected for the queue worker process, which
also involves less overhead than the previous one. The fix for
"free last processed message" as then more or less a side-effect
(easy to do) of the new algorithm.
2009-05-20 15:12:49 +02:00
Rainer Gerhards
93f873277b t-delete list implemented, queue store drivers updated...
... on the way to the ultra-reliable queue modes (redesign doc). This
version does not really work, but is a good commit point. Next comes
queue size calculation. DA mode does not yet work.
2009-05-18 17:28:34 +02:00
Rainer Gerhards
e2b2298689 action batch processing implemented
... passed initial tests, but of course more are needed
2009-05-12 17:57:04 +02:00
Rainer Gerhards
bb79e96dc3 moving to a cleaner implementation of batches
... now that we know what we need from a theoretical POV.
2009-05-12 15:27:40 +02:00
Rainer Gerhards
21b7f7e603 Merge branch 'master' into multi-dequeue
Conflicts:
	runtime/rsyslog.h
2009-05-12 09:18:04 +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
10bab38993 begin implementation of new transactional output module interface
code is not complete, error cases are not handled.
2009-04-27 15:40:54 +02:00
Rainer Gerhards
7667845bd7 first attempt at dequeueing multiple batches inside the queue
... but this code has serious problems when terminating the queue, also
it is far from being optimal. I will commit a series of patches (hopefully)
as I am on the path to the final implementation.
2009-04-22 15:06:45 +02:00
Rainer Gerhards
4beff8dab6 Merge branch 'nextmaster' into oracle
Conflicts:
	runtime/rsyslog.h
2009-04-16 17:28:29 +02:00
Rainer Gerhards
2d5e8ba7cd added a new error code for too-old rsyslog core
which can be emittend when plugin can not load due to missing
core functionality.
2009-04-16 17:26:07 +02:00
Rainer Gerhards
85ccd6e9b7 Merge branch 'omprog' into nextmaster
Conflicts:
	ChangeLog
	runtime/rsyslog.h
2009-04-14 14:49:01 +02:00
Rainer Gerhards
04272876d1 implemented $MaxOpenFiles directive and changed testbench
... to utilize it. This work is not yet fully verified to be correct.
2009-04-14 13:52:07 +02:00
Rainer Gerhards
01f2c7a7a3 improved omprog, now ready for first practical testing 2009-04-01 18:17:20 +02:00
Rainer Gerhards
59d4a52c28 initial work on omprog, an output module to send messages to another program 2009-04-01 16:31:41 +02:00
Rainer Gerhards
8e3c5a9ca3 improved internal handling of RainerScript functions
- building the necessary plumbing to support more functions with
  decent runtime performance. This is also necessary towards the
  long-term goal of loadable library modules.
- added new RainerScript function "tolower"
2009-04-06 17:55:04 +02:00
Rainer Gerhards
8de35eaa2c clean compile on solaris 2009-04-02 15:37:17 +02:00
Rainer Gerhards
e8499c6d33 initial implementation of RainerScript functions & strlen()
- implemented function support in RainerScript. That means the engine
  parses and compile functions, as well as executes a few build-in
  ones. Dynamic loading and registration of functions is not yet
  supported - but we now have a good foundation to do that later on.
  NOTE: nested function calls are not yet supported due to a design
  issue with the function call VM instruction set design.
- implemented the strlen() RainerScript function
2009-03-10 17:37:13 +01:00
Rainer Gerhards
e02b553e1f Merge branch 'beta'
Conflicts:
	ChangeLog
	configure.ac
	doc/manual.html
	doc/rsyslog_conf.html
	plugins/imudp/imudp.c
	runtime/rsyslog.h
2008-12-04 12:59:37 +01:00
Rainer Gerhards
fae8f451ab Merge branch 'v3-stable' into beta
Conflicts:
	runtime/rsyslog.h
2008-11-29 08:02:37 +01:00
Rainer Gerhards
f0ddbed44c security bugfix: $AllowedSender was not honored,
...all senders were permitted instead
2008-11-29 07:22:48 +01:00
Rainer Gerhards
ace4f2f752 reordered imudp processing.
Message parsing is now done as part of main message queue worker
processing (was part of the input thread) This should also improve
performance, as potentially more work is done in parallel.
2008-10-08 18:55:11 +02:00
Rainer Gerhards
760e5f0d39 performance optimization: unnecessary time() calls during message parsing removed
thanks to David Lang for his excellent performance analysis
2008-09-16 11:56:07 +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
4e86efaf0e fixed duplicate error number
This probably happened during a branch merge and was not detected.
Fixed now, should not haved any harm.
2008-09-12 15:15:28 +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
c3c385c63b added testbed for config errors and fixed a bug
- bugfix: no error was reported if the target of a $IncludeConfig
  could not be accessed.
- added testbed for common config errors
2008-07-29 14:55:44 +02:00
Rainer Gerhards
d2feb7063e enhanced configuration file error reporting and verification
- enhanced config file checking - no active actions are detected
- added -N rsyslogd command line option for a config validation run
  (which does not execute actual syslogd code and does not interfere
  with a running instance)
- somewhat improved emergency configuration. It is now also selected
  if the config contains no active actions
- rsyslogd error messages are now reported to stderr by default. can be
  turned off by the new "$ErrorMessagesToStderr off" directive
Thanks to HKS for suggesting these new features.
2008-07-29 10:07:50 +02:00
Rainer Gerhards
aeef9bbe72 bugfix: machine certificate was required for client even in TLS anon mode
Reference: http://bugzilla.adiscon.com/show_bug.cgi?id=85
The fix also slightly improves performance by not storing certificates in
client sessions when there is no need to do so.
2008-07-02 11:56:54 +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
7b1a570d54 changed Rcv-Interface in tcpsrv subsystem
It is now iRet based. This enables us to communicate
more in-depth information to the upper peers. This is needed
to handle the EGAIN case on rcv (not yet implemented)
2008-06-23 10:29:15 +02:00
Rainer Gerhards
531f27a8c3 implemented wildcards inside certificate name check authentication 2008-05-27 14:49:45 +02:00
Rainer Gerhards
ae387d6900 client now provides cert even if it is not signed by one of the server's trusted CAs (gtls) 2008-05-27 09:46:30 +02:00
Rainer Gerhards
bc5eb93e40 added certificate validity date check (gtls) 2008-05-26 14:47:36 +02:00
Rainer Gerhards
b674dd69bd added gtls name authentication based on common name (inside DN)
also changed fingerprint gtls auth mode to new format fingerprint
2008-05-26 12:53:49 +02:00
Rainer Gerhards
68a2c3d512 implemented x509/certvalid "authentication" 2008-05-21 14:59:24 +02:00
Rainer Gerhards
85b587f93d first implementation of TLS server client authentication check
The TLS server now checks the client fingerprint. This works, but
is highly experimental. Needs to be refined for practice. Also:
- implemented permittedPeers helper construct to store names
- changed omfwd implementation to use new permittedPeers
2008-05-19 18:52:44 +02:00
Rainer Gerhards
48684ceac5 improved error messages and corrected fingerprint format 2008-05-19 09:43:37 +02:00
Rainer Gerhards
6ea98ec5ff added first rough ability to authenticate the server against its certificate
This is very experimental and needs some more work. It probably even
segfaults - but the base code is there and running. The rest is
refinement.

While working on this, I did these two bugfixes:
- bugfix: small mem leak in omfwd on exit (strmdriver name was not freed)
- bugfix: $ActionSendStreamDriver had no effect
2008-05-16 18:26:25 +02:00
Rainer Gerhards
d594f83a89 server's X509 cert fingerprint is obtained by client on connect 2008-05-08 16:00:57 +02:00
Rainer Gerhards
3d74096021 added a bit of doc (at least something...) 2008-05-08 13:24:20 +02:00
Rainer Gerhards
c370fc6305 server handshake now works with nonblocking sockets 2008-04-30 16:35:35 +02:00
Rainer Gerhards
94acfb1c5f ability to load proper select netstrm driver 2008-04-29 10:02:59 +02:00
Rainer Gerhards
a3ff7eaf85 added $ActionSendStreamDriverMode config directive 2008-04-28 14:21:58 +02:00
Rainer Gerhards
af30c9f8f2 added select() driver for GnuTls 2008-04-24 20:10:24 +02:00