mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 10:30:40 +01:00
- uses http library to provide http input. user would need to configure an 'endpoint' as input, along with a ruleset, defining how the input should be routed in rsyslog. bugfix, free dynamic buf if created, don't echo to client data. do data framing using newline character. more input options support: - input name - flowcontrol add support for gzip content support, and other options - gzip content - parse linefeeds by default, option to ignore linefeeds add support for gzip content support, and other options - gzip content - parse linefeeds by default, option to ignore linefeeds WIP - misc edits enable port, documentroot module parameter fix overloaded stack issue update tests to use available port instead of hard-coded one. Add 'octet counted framing' support - option is "SupportOctetCountedFraming", currently 'off' by default. update imhttp-getrequest-file.sh test to use $srcdir imhttp - support multi-threaded connection contexts. - tests for large data posts - Add header data as metadata option move mg_start into activatecnf instead of in runinput
53 lines
1.2 KiB
Bash
Executable File
53 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# This is part of the rsyslog testbench, licensed under ASL 2.0
|
|
|
|
. ${srcdir:=.}/diag.sh init
|
|
generate_conf
|
|
IMHTTP_PORT="$(get_free_port)"
|
|
add_conf '
|
|
#template(name="outfmt" type="string" string="%msg%\n")
|
|
template(name="outfmt" type="string" string="%rawmsg%\n")
|
|
module(load="../contrib/imhttp/.libs/imhttp"
|
|
ports="'$IMHTTP_PORT'")
|
|
input(type="imhttp" endpoint="/postrequest" ruleset="ruleset")
|
|
ruleset(name="ruleset") {
|
|
action(type="omfile" file=`echo $RSYSLOG_OUT_LOG` template="outfmt")
|
|
}
|
|
'
|
|
startup
|
|
NUMMESSAGES=25
|
|
DATA_SOURCE=$srcdir/testsuites/imhttp-large-data.txt
|
|
for (( i=1; i<=NUMMESSAGES; i++ ))
|
|
do
|
|
curl -si -X POST -H Content-Type:application/json http://localhost:$IMHTTP_PORT/postrequest --data-binary @$DATA_SOURCE &
|
|
pids[${i}]=$!
|
|
done
|
|
|
|
# wait for all pids
|
|
for pid in ${pids[*]};
|
|
do
|
|
wait $pid
|
|
# echo "$pid cleaned up"
|
|
done
|
|
|
|
sleep 2
|
|
wait_queueempty
|
|
echo "doing shutdown"
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
|
|
# reference file for comparison
|
|
TMPFILE=${RSYSLOG_DYNNAME}.tmp
|
|
for (( i=1; i <= NUMMESSAGES; i++ ))
|
|
do
|
|
cat $DATA_SOURCE >> $TMPFILE
|
|
done
|
|
|
|
if diff -q $TMPFILE $RSYSLOG_OUT_LOG;
|
|
then
|
|
echo "files match!"
|
|
exit_test
|
|
else
|
|
error_exit 1
|
|
fi
|