diff options
Diffstat (limited to 'modules')
| -rwxr-xr-x | modules/ping | 24 | ||||
| -rwxr-xr-x | modules/pong | 26 | 
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 | 
