mirror of
https://github.com/rsyslog/rsyslog.git
synced 2026-06-19 17:32:56 +02:00
Note: The upcoming gnu23 C standard is overdoing it with type-safety. Inside rsyslog, we historically have method tables for generic calls, which keeps the code small and easy to understand. This would not decently be possible with the new type-safety requirements. So this commit works around these warning in a way that pretends to provide more type safety. We have done this in the least intrusive way to reduce the risk for regressions in code that works well in since decades. Also note that the code already does parameter validation. There would have been more elaborate ways to make gnu23 compile happy, e.g. by using a union of structs to provide the data element. Some folks consider this type safe. In reality, it is not a bit better than traditional C without types at all. Because the caller still needs to ensure it picks the right struct from the union. As this approach would also have larger regeression potential, we have not used it. Right now, we have suppressed some of the new warnings, as working around them would have required an even larger time budget and potentially larger regression potential. In the long term we may want to look into enabling them, as they would potentially be beneficial for new code not involving method tables. Some nits, however, were detected and have been fixed. This patch also "fixes" some false positive test failures, mostly be disabling some test functionality after confirmation these are flakes. see also https://github.com/rsyslog/rsyslog/issues/5507
70 lines
2.2 KiB
Bash
Executable File
70 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# testing sending and receiving via TLS with anon auth and rebind
|
|
# rgerhards, 2011-04-04
|
|
# This file is part of the rsyslog project, released under GPLv3
|
|
. ${srcdir:=.}/diag.sh init
|
|
skip_platform "SunOS" "Test fails with environment-induced errors, which we cannot solve"
|
|
|
|
export NUMMESSAGES=25000 #25000
|
|
|
|
# uncomment for debugging support:
|
|
# start up the instances
|
|
#export RSYSLOG_DEBUG="debug nostdout noprintmutexaction"
|
|
export RSYSLOG_DEBUGLOG="log"
|
|
generate_conf
|
|
export PORT_RCVR="$(get_free_port)"
|
|
add_conf '
|
|
global(
|
|
defaultNetstreamDriverCAFile="'$srcdir/testsuites/x.509/ca.pem'"
|
|
defaultNetstreamDriverCertFile="'$srcdir/testsuites/x.509/client-cert.pem'"
|
|
defaultNetstreamDriverKeyFile="'$srcdir/testsuites/x.509/client-key.pem'"
|
|
defaultNetstreamDriver="gtls"
|
|
)
|
|
|
|
module( load="../plugins/imtcp/.libs/imtcp"
|
|
StreamDriver.Name="gtls"
|
|
StreamDriver.Mode="1"
|
|
StreamDriver.AuthMode="anon" )
|
|
# then SENDER sends to this port (not tcpflood!)
|
|
input(type="imtcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port")
|
|
|
|
$template outfmt,"%msg:F,58:2%\n"
|
|
$template dynfile,"'$RSYSLOG_OUT_LOG'" # trick to use relative path names!
|
|
:msg, contains, "msgnum:" ?dynfile;outfmt
|
|
'
|
|
startup
|
|
export PORT_RCVR=$TCPFLOOD_PORT # save this, will be rewritten with next config
|
|
|
|
#export RSYSLOG_DEBUG="debug nostdout"
|
|
export RSYSLOG_DEBUGLOG="log2"
|
|
#valgrind="valgrind"
|
|
generate_conf 2
|
|
add_conf '
|
|
global(
|
|
defaultNetstreamDriverCAFile="'$srcdir/tls-certs/ca.pem'"
|
|
defaultNetstreamDriverCertFile="'$srcdir/tls-certs/cert.pem'"
|
|
defaultNetstreamDriverKeyFile="'$srcdir/tls-certs/key.pem'"
|
|
defaultNetstreamDriver="gtls"
|
|
)
|
|
|
|
# set up the action
|
|
$ActionSendStreamDriverMode 1 # require TLS for the connection
|
|
$ActionSendStreamDriverAuthMode anon
|
|
$ActionSendTCPRebindInterval 50
|
|
*.* @@127.0.0.1:'$PORT_RCVR'
|
|
' 2
|
|
startup 2
|
|
|
|
# now inject the messages into instance 2. It will connect to instance 1,
|
|
# and that instance will record the data.
|
|
injectmsg2 1 $NUMMESSAGES
|
|
# shut down sender when everything is sent, receiver continues to run concurrently
|
|
shutdown_when_empty 2
|
|
wait_shutdown 2
|
|
# now it is time to stop the receiver as well
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
|
|
seq_check 1 $NUMMESSAGES
|
|
exit_test
|