mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-18 16:50:42 +01:00
- DEAD_PORT now uses unassigned IANA port unlike to be used on the system (dynamic port querying is racy and we had at least once an issue, so we can remove ambiguity here easily) - replace some diag.sh commands by bash functions
53 lines
1.8 KiB
Bash
Executable File
53 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# This test tests tcp forwarding in a network namespace with assigned template.
|
|
# To do so, a simple tcp listener service is started in a network namespace.
|
|
# Released under GNU GPLv3+
|
|
echo ===============================================================================
|
|
echo \[tcp_forwarding_ns_tpl.sh\]: test for tcp forwarding in a network namespace with assigned template
|
|
echo This test must be run as root [network namespace creation/change required]
|
|
if [ "$EUID" -ne 0 ]; then
|
|
exit 77 # Not root, skip this test
|
|
fi
|
|
|
|
# create the pipe and start a background process that copies data from
|
|
# it to the "regular" work file
|
|
. $srcdir/diag.sh init
|
|
generate_conf
|
|
add_conf '
|
|
$MainMsgQueueTimeoutShutdown 10000
|
|
template(name="outfmt" type="string" string="%msg:F,58:2%\n")
|
|
|
|
if $msg contains "msgnum:" then
|
|
action(type="omfwd" template="outfmt"
|
|
target="127.0.0.1" port="'$TCPFLOOD_PORT'" protocol="tcp" networknamespace="rsyslog_test_ns")
|
|
'
|
|
# create network namespace and bring it up
|
|
ip netns add rsyslog_test_ns
|
|
ip netns exec rsyslog_test_ns ip link set dev lo up
|
|
|
|
# run server in namespace
|
|
ip netns exec rsyslog_test_ns ./minitcpsrv -t127.0.0.1 -p'$TCPFLOOD_PORT' -f $RSYSLOG_OUT_LOG &
|
|
BGPROCESS=$!
|
|
echo background minitcpsrvr process id is $BGPROCESS
|
|
|
|
# now do the usual run
|
|
startup
|
|
# 10000 messages should be enough
|
|
injectmsg 0 10000
|
|
shutdown_when_empty # shut down rsyslogd when done processing messages
|
|
wait_shutdown
|
|
|
|
# note: minitcpsrvr shuts down automatically if the connection is closed!
|
|
# (we still leave the code here in in case we need it later)
|
|
#echo shutting down minitcpsrv...
|
|
#kill $BGPROCESS
|
|
#wait $BGPROCESS
|
|
#echo background process has terminated, continue test...
|
|
|
|
# remove network namespace
|
|
ip netns delete rsyslog_test_ns
|
|
|
|
# and continue the usual checks
|
|
seq_check 0 9999
|
|
exit_test
|