u-boot-brain/tools/netconsole
Mike Frysinger 1c20e4a9fb tools/netconsole: use ncb automatically if available
The standard netcat, while ubiquitous, doesn't handle broadcast udp packets
properly.  The local ncb util does however.  So if ncb can be located in
the standard locations, automatically use that instead.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-15 22:55:45 +02:00

60 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
usage() {
(
echo "Usage: $0 <board IP> [board port]"
echo ""
echo "If port is not specified, '6666' will be used"
[ -z "$*" ] && exit 0
echo ""
echo "ERROR: $*"
exit 1
) 1>&2
exit $?
}
while [ -n "$1" ] ; do
case $1 in
-h|--help) usage;;
--) break;;
-*) usage "Invalid option $1";;
*) break;;
esac
shift
done
ip=$1
port=${2:-6666}
if [ -z "${ip}" ] || [ -n "$3" ] ; then
usage "Invalid number of arguments"
fi
for nc in netcat nc ; do
type ${nc} >/dev/null 2>&1 && break
done
trap "stty icanon echo intr ^C" 0 2 3 5 10 13 15
echo "NOTE: the interrupt signal (normally ^C) has been remapped to ^T"
stty -icanon -echo intr ^T
(
if type ncb 2>/dev/null ; then
# see if ncb is in $PATH
exec ncb ${port}
elif [ -x ${0%/*}/ncb ] ; then
# maybe it's in the same dir as the netconsole script
exec ${0%/*}/ncb ${port}
else
# blah, just use regular netcat
while ${nc} -u -l -p ${port} < /dev/null ; do
:
done
fi
) &
pid=$!
${nc} -u ${ip} ${port}
kill ${pid} 2>/dev/null