summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <root@telnet.shack>2010-12-28 21:19:47 +0100
committertv <root@telnet.shack>2010-12-28 21:20:18 +0100
commit6b09e03faff764fef2c867877e410357f43bf543 (patch)
treef74d333612ac7f5cbc734c6c764ca27c76300c8a
parenta71ee8729e83c4a1509e58674ce34e0e57ae7250 (diff)
added modules: ping, pong
-rwxr-xr-xmodules/ping24
-rwxr-xr-xmodules/pong26
2 files changed, 50 insertions, 0 deletions
diff --git a/modules/ping b/modules/ping
new file mode 100755
index 00000000..acf2529f
--- /dev/null
+++ b/modules/ping
@@ -0,0 +1,24 @@
+#! /bin/sh
+cd /tmp/noise
+case "$1" in
+ (--help) : ;;
+ ('')
+ . $NOISE_pid/environment
+ ping_timestamp=${ping_timestamp-0}
+ ping_challenger=${ping_challenger-0}
+ if test $ping_challenger != 0 ; then
+ echo There is already a ping challange running
+ else
+ timestamp=`date +%s%N`
+ for client in * ; do
+ echo /ping $NOISE_pid $timestamp >$client/linefeed &
+ done
+ fi
+ ;;
+ (*)
+ echo "/set -q ping_timestamp $2" >$NOISE_pid/linefeed
+ if test $NOISE_pid != $1 ; then
+ echo "/set -q ping_challenger $1" >$NOISE_pid/linefeed
+ echo "PING?"
+ fi
+esac
diff --git a/modules/pong b/modules/pong
new file mode 100755
index 00000000..eb2df46d
--- /dev/null
+++ b/modules/pong
@@ -0,0 +1,26 @@
+#! /bin/sh
+cd /tmp/noise
+case "$1" in
+ (--help) : ;;
+ ('')
+ . $NOISE_pid/environment
+ ping_timestamp=${ping_timestamp-0}
+ ping_challenger=${ping_challenger-0}
+ if test $ping_challenger = 0 ; then
+ echo There is no ping challange running
+ else
+ timestamp=`date +%s%N`
+ echo /pong $NOISE_pid $timestamp >$ping_challenger/linefeed
+ ## reset ping TODO /unset
+ echo /set -q ping_timestamp 0 >$NOISE_pid/linefeed
+ echo /set -q ping_challenger 0 >$NOISE_pid/linefeed
+ fi
+ ;;
+ (*)
+ . $1/environment
+ # XXX is attendee the right counterpart to 'challenger'?
+ attendee_nick=$chat_nick
+ . $NOISE_pid/environment
+ time=`echo "scale=3; ($2 - $ping_timestamp)/10^9" | bc`
+ echo "PONG! $attendee_nick ${time}s"
+esac