]> git.sur5r.net Git - u-boot/commitdiff
tools/netconsole: make a bit more robust
authorMike Frysinger <vapier@gentoo.org>
Wed, 9 Sep 2009 16:20:20 +0000 (12:20 -0400)
committerTom Rix <Tom.Rix@windriver.com>
Sat, 3 Oct 2009 14:04:26 +0000 (09:04 -0500)
The netcat utility likes to exit when it receives an empty packet (as it
thinks this means EOF).  This can easily occur when working with command
line editing as this behavior will be triggered when using backspace.  Or
with tabs and command line completion.  So create two netcat processes -
one to only listen (and put it into a loop), and one to do the sending.
Once the user quits the transmitting netcat, the listening one will be
killed automatically.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
tools/netconsole

index 09c89816829f6d1672e6bd746fb5555b586f286d..6ef2723f5848a0b7f973067271d9c5bf1150a18a 100755 (executable)
@@ -31,12 +31,18 @@ if [ -z "${ip}" ] || [ -n "$3" ] ; then
 fi
 
 for nc in netcat nc ; do
-       type ${nc} >/dev/null && break
+       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
-${nc} -u -l -p ${port} < /dev/null &
-exec ${nc} -u ${ip} ${port}
+(
+while ${nc} -u -l -p ${port} < /dev/null ; do
+       :
+done
+) &
+pid=$!
+${nc} -u ${ip} ${port}
+kill ${pid} 2>/dev/null