From e88df4289f84f06c5e35d5cecc2ab003f9e1e095 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Mon, 22 Aug 2011 15:56:57 +1000 Subject: Tests - eventscripts - add an nmap stub Signed-off-by: Martin Schwenke (This used to be ctdb commit 6ff9545a0fd58f0728b769c7b36d3b6ab7366321) --- ctdb/tests/eventscripts/stubs/nmap | 68 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 ctdb/tests/eventscripts/stubs/nmap diff --git a/ctdb/tests/eventscripts/stubs/nmap b/ctdb/tests/eventscripts/stubs/nmap new file mode 100755 index 0000000000..15eebe6901 --- /dev/null +++ b/ctdb/tests/eventscripts/stubs/nmap @@ -0,0 +1,68 @@ +#!/bin/bash + +prog="nmap" + +usage () +{ + cat >&2 <[, ...] + +A fake nmap stub that prints items depending on the variable +FAKE_TCP_LISTEN and the ports specified. + +Note that all options apart from -p are ignored. + +EOF + exit 1 +} + +ports="" + +parse_options () +{ + _temp=$(getopt -n "$prog" -a -o "np:" -l help -l PS: -l oG: -- "$@") + + [ $? != 0 ] && usage + + eval set -- "$_temp" + + while true ; do + case "$1" in + -n) shift ;; + --oG|--PS) shift 2 ;; + -p) ports="${ports}${ports:+ }${2//,/ }" ; shift 2 ;; + --) shift ; break ;; + -h|--help|*) usage ;; # * shouldn't happen, so this is reasonable. + esac + done + + [ $# -gt 0 ] && usage + + [ -n "$ports" ] || usage +} + +# For printing out... +args="$*" + +parse_options "$@" + +port_states="" + +for p in $ports ; do + pn=$(getent services "$p" | sed -e 's@[[:space:]].*@@') + for i in $FAKE_TCP_LISTEN ; do + lp="${i##*:}" + if [ "$p" = "$lp" ] ; then + port_states="${port_states}${port_states:+, }${p}/open/tcp//${pn}///" + continue 2 + fi + done + port_states="${port_states}${port_states:+, }${p}/closed/tcp//${pn}///" +done + +cat <