Assembla home | Assembla project page
 

Changeset 15

Show
Ignore:
Timestamp:
08/28/07 03:08:39 (1 year ago)
Author:
evdowizard
Message:

simplify keepalive, remove average packet loss

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/imagebuilder/files/bin/keepalive

    r12 r15  
    11#!/bin/sh 
    2  
    3 # ensure that only one instance of keepalive runs 
    4 trap 'rm -f $lock; exit' TERM EXIT 
    5  
    6 lock=/var/run/keepalive.pid 
    7 if [ -e $lock ]; then 
    8         logger -p user.notice -t keepalive "Keepalive daemon is already running (PID `cat $lock`)" 
    9         echo "Keepalive daemon is already running (PID `cat $lock`)" 
    10         exit 1 
    11 fi 
    12 echo $$ >> $lock 
    132 
    143# variables 
    154target=$(nvram get wwan_keepalive_ip) 
    16 peer=$(/sbin/ifconfig ppp0 | grep 'P-t-P:' | cut -d: -f3 | awk '{print $1}') 
     5peer=$(ifconfig ppp0 | grep 'P-t-P:' | cut -d: -f3 | awk '{print $1}') 
    176target=${target:-$peer} 
    187max=$(nvram get wwan_keepalive_maxfail) 
    198max=${max:-75} 
     9log=/tmp/keepalive.log 
    2010 
    2111# functions 
    22 status() { 
    23 packetloss=$(ping -c 10 -q $target | grep 'packet loss' | awk '{ print $7 }' | sed 's/%//') 
    24 echo "`date '+%H:%M:%S'`: Responding with ${packetloss}% packet loss" >> /tmp/keepalive.log 
     12log() { 
     13echo "`date '+%A %H:%M:%S'`: $1" >> $log 
     14logger -t keepalive  "$1" 
    2515} 
    2616 
    2717reconnect() { 
    28 [ "$(cat /proc/diag/led/3g_blue)" = "0" ] && exit 
    29 echo "`date '+%H:%M:%S'`: Exceeded ${max}% packet loss, reconnecting..." > /tmp/keepalive.log 
    30 logger -p user.notice -t keepalive "Exceeded ${max}% packet loss, reconnecting..." 
     18[ `cat /proc/diag/led/3g_blue` = "0" ] && exit 
     19log "Exceeded ${max}% packet loss, reconnecting..." 
    3120ifdown wwan 
    3221ifup wwan & 
     
    3524 
    3625# startup 
    37 echo "`date '+%H:%M:%S'`: Keepalive daemon started, maximum packet loss set to ${max}%" >> /tmp/keepalive.log 
    38 logger -p user.notice -t keepalive "Keepalive daemon started, maximum packet loss set to ${max}%" 
    39 echo "Keepalive daemon started, maximum packet loss set to ${max}%" 
     26log "Keepalive daemon started, maximum packet loss set to ${max}%" 
     27sleep 10 
    4028 
    4129# loop 
    42 while [ "$(cat /proc/diag/led/3g_blue)" = "1" ]; do 
    43 status 
     30while [ `cat /proc/diag/led/3g_blue` = "1" ]; do 
     31packetloss=`ping -c 10 -q $target | grep 'packet loss' | awk '{ print $7 }' | sed 's/%//'` 
    4432if [ $packetloss -gt $max ]; then 
    4533        reconnect 
  • trunk/imagebuilder/files/www/cgi-bin/webif/status-wwaninfo.sh

    r1 r15  
    3939hidekeepalive="|hidden" 
    4040[ -e /tmp/keepalive.log ] && { 
    41 for packet_loss in $(cat /tmp/keepalive.log | grep -i 'responding' | cut -d ' ' -f 5 | sed 's/%//') 
    42 do 
    43 sum_packet_loss=$((packet_loss + sum_packet_loss)) 
    44 done 
    45  
    46 num_packet_loss=$(cat /tmp/keepalive.log | grep -i 'responding' | wc -l) 
    47 [ "$num_packet_loss" -ne 0 ] && { 
    48 avg_packet_loss="$((sum_packet_loss / num_packet_loss))%" 
    49 } 
    5041hidekeepalive= 
    5142} 
     
    9990 
    10091start_form|@TR<<Keepalive>>|FORM_keepalive$hidekeepalive 
    101 field|@TR<<Average Packet Loss>> 
    102 string|$avg_packet_loss 
    10392field| 
    10493string|<div style="width: 100%; height: 150px; overflow: auto; padding: 4px; font-size: 0.8em"><pre>