Changeset 21279


Ignore:
Timestamp:
2010-05-01T07:59:13+02:00 (7 years ago)
Author:
craigc
Message:

[packages] multiwan: updated cache location, write times, adjusted failover and qos initilization

Location:
packages/net/multiwan
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • packages/net/multiwan/Makefile

    r21273 r21279  
    99 
    1010PKG_NAME:=multiwan 
    11 PKG_VERSION:=1.0.2 
     11PKG_VERSION:=1.0.3 
    1212PKG_RELEASE:=1 
    1313 
  • packages/net/multiwan/files/usr/bin/multiwan

    r21273 r21279  
    3535 
    3636        wan_fail_map=$(echo $wan_fail_map | sed -e "s/${1}\[${failchk}\]//g") 
    37         wan_fail_map=$(echo $wan_fail_map $1[x]) 
     37        wan_fail_map=$(echo $wan_fail_map${1}[x]) 
    3838        wan_recovery_map=$(echo $wan_recovery_map | sed -e "s/${1}\[${recvrychk}\]//g") 
     39        update_cache 
    3940 
    4041if [ "$existing_failover" == "2" ]; then 
     
    4647fi 
    4748        mwnote "$1 has failed and is currently offline." 
    48  
    49 query_config update 
    5049} 
    5150 
     
    5453        wan_recovery_map=$(echo $wan_recovery_map | sed -e "s/${1}\[${recvrychk}\]//g") 
    5554        wan_fail_map=$(echo $wan_fail_map | sed -e "s/${1}\[${failchk}\]//g") 
     55        update_cache 
    5656 
    5757if [ "$existing_failover" == "3" ]; then 
     
    5959fi 
    6060        mwnote "$1 has recovered and is back online!" 
    61  
    62 query_config update 
    6361} 
    6462 
     
    8482 
    8583if [ -z "$failchk" ]; then 
    86 wan_fail_map="$wan_fail_map $1[1]" 
     84wan_fail_map="$wan_fail_map${1}[1]" 
     85update_cache 
    8786        if [ "$health_fail_retries" == "1" ]; then 
    8887                fail_wan $1 
     
    9392                if [ "$new_fail_count" -lt "$health_fail_retries" ]; then 
    9493                        wan_fail_map=$(echo $wan_fail_map | sed -e "s/${1}\[${failchk}\]/$1\[${new_fail_count}\]/g") 
     94                        update_cache 
    9595                else 
    9696                        failover add $1 
     
    100100                        fi 
    101101                fi 
     102         
    102103        fi 
    103104fi 
    104105 
    105 query_config update 
    106106 
    107107} 
     
    122122wanid=$(query_config wanid $1) 
    123123 
     124if [ ! -z "$failchk" -a "$failchk" != "x" ]; then 
     125        wan_fail_map=$(echo $wan_fail_map | sed -e "s/${1}\[${failchk}\]//g") 
     126        update_cache 
     127fi 
     128 
    124129if [ "$failchk" == "x" ]; then 
    125130        if [ -z "$recvrychk" ]; then 
    126                 wan_recovery_map="$wan_recovery_map $1[1]" 
     131                wan_recovery_map="$wan_recovery_map${1}[1]" 
     132                update_cache 
    127133                if [ "$health_recovery_retries" == "1" ]; then 
    128134                        recover_wan $1 
     
    132138                        if [ "$new_recovery_count" -lt "$health_recovery_retries" ]; then 
    133139                                wan_recovery_map=$(echo $wan_recovery_map | sed -e "s/${1}\[${recvrychk}\]/$1\[${new_recovery_count}\]/g") 
     140                                update_cache 
    134141                        else 
    135142                                failover del $1 
     
    141148        fi 
    142149fi 
    143  
    144 query_config update 
    145150} 
    146151 
     
    175180        if [ -z $check_old_map ]; then 
    176181                wancount=`expr $wancount + 1` 
    177                 wan_if_map="$wan_if_map $1[${ifname}]" 
    178                 wan_id_map="$wan_id_map $1[${wancount}]" 
    179                 wan_gw_map="$wan_gw_map $1[${gateway}]" 
    180                 wan_ip_map="$wan_ip_map $1[${ipaddr}]" 
     182                wan_if_map="$wan_if_map${1}[${ifname}]" 
     183                wan_id_map="$wan_id_map${1}[${wancount}]" 
     184                wan_gw_map="$wan_gw_map${1}[${gateway}]" 
     185                wan_ip_map="$wan_ip_map${1}[${ipaddr}]" 
    181186        else 
    182187                old_ipaddr=$(query_config ipaddr $1) 
     
    199204                failover del $1 
    200205                iprules_config $get_wanid 
    201                 qos_init $1 $get_wanid 
    202206                else 
    203207                failover add $1 
     
    207211                refresh_loadbalancer 
    208212                refresh_dns 
    209  
     213                update_cache 
    210214        fi 
    211215else 
    212216wancount=9 
    213217fi 
    214  
    215 query_config update 
     218} 
     219 
     220update_cache() { 
     221 
     222if [ ! -d /tmp/.mwan ]; then 
     223mkdir /tmp/.mwan > /dev/null 2>&1 
     224fi 
     225 
     226rm /tmp/.mwan/cache > /dev/null 2>&1 
     227touch /tmp/.mwan/cache 
     228 
     229echo "# Automatically Generated by Multi-WAN Agent Script. Do not modify or remove. #" > /tmp/.mwan/cache 
     230echo "wan_id_map=\"$wan_id_map\"" >> /tmp/.mwan/cache 
     231echo "wan_if_map=\"$wan_if_map\"" >> /tmp/.mwan/cache 
     232echo "wan_ip_map=\"$wan_ip_map\"" >> /tmp/.mwan/cache 
     233echo "wan_gw_map=\"$wan_gw_map\"" >> /tmp/.mwan/cache 
     234echo "wan_fail_map=\"$wan_fail_map\"" >> /tmp/.mwan/cache 
     235echo "wan_recovery_map=\"$wan_recovery_map\"" >> /tmp/.mwan/cache 
    216236} 
    217237 
    218238query_config() { 
    219  
    220 update_cache_data() { 
    221 rm /tmp/.mwan.cache > /dev/null 2>&1 
    222 touch /tmp/.mwan.cache 
    223  
    224 echo "# Automatically Generated by Multi-WAN Agent Script. Do not modify. #" > /tmp/.mwan.cache 
    225 echo "wan_if_map=\"$wan_if_map\"" >> /tmp/.mwan.cache 
    226 echo "wan_ip_map=\"$wan_ip_map\"" >> /tmp/.mwan.cache 
    227 echo "wan_gw_map=\"$wan_gw_map\"" >> /tmp/.mwan.cache 
    228 echo "wan_id_map=\"$wan_id_map\"" >> /tmp/.mwan.cache 
    229 echo "wan_fail_map=\"$wan_fail_map\"" >> /tmp/.mwan.cache 
    230 echo "wan_recovery_map=\"$wan_recovery_map\"" >> /tmp/.mwan.cache 
    231 } 
    232239 
    233240case $1 in 
     
    276283echo "## Unloaded, updating syslog and exiting. ##" 
    277284mwnote "Succesfully Unloaded on $(exec date -R)." 
     285ip route flush cache 
     286rm -r /tmp/.mwan > /dev/null 2>&1 
    278287 
    279288else 
     
    281290echo "## Restarting Multi-WAN. ##" 
    282291mwnote "Reinitializing Multi-WAN Configuration." 
     292ip route flush cache 
     293rm -r /tmp/.mwan > /dev/null 2>&1 
    283294/etc/init.d/multiwan start & > /dev/null 2>&1 
    284  
    285 fi 
    286  
    287 ip route flush cache 
    288  
    289 rm $jobfile > /dev/null 2>&1 
    290 rm $jobfile.work  > /dev/null 2>&1 
    291 rm /tmp/.mwan.cache > /dev/null 2>&1 
     295fi 
     296 
    292297exit 
    293298} 
     
    349354local get_wan_tc 
    350355local get_wan_iptables 
    351 local qos_done_chk 
    352356local add_qos_iptables 
    353357local add_qos_tc 
     
    356360local p 
    357361 
    358 qos_done_chk=`echo $qos_done | grep -o "$1\."` 
    359  
    360 if [ ! -z "$qos_done_chk" ]; then 
    361 return 
    362 fi 
    363  
    364362ifname=$(query_config ifname $1) 
    365363 
     
    382380get_wan_iptables=$(iptables-save | egrep  '(-A Default )|(-A Default_ct )' | grep -v "MultiWanQoS" | sed -e "s/Default /MultiWanQoS_${1} /g" -e "s/Default_ct /MultiWanQoS_${1}_ct /g" -e "s/-A/iptables -t mangle -A/g") 
    383381 
    384 rm /tmp/.mwan.$1.sedfilter > /dev/null 2>&1 
    385382i=0 
    386383while [ $i -lt $queue_count ]; do  
    387 echo "s/\(0x$i \|0x$i\/0xffffffff\)/0x${2}${i} /g" >> /tmp/.mwan.$1.sedfilter 
     384echo "s/\(0x$i \|0x$i\/0xffffffff\)/0x${2}${i} /g" >> /tmp/.mwan/qos.$1.sedfilter 
    388385i=`expr $i + 1`  
    389386done 
    390387 
    391 add_qos_iptables=$(echo "$get_wan_iptables" | sed -f /tmp/.mwan.$1.sedfilter) 
     388add_qos_iptables=$(echo "$get_wan_iptables" | sed -f /tmp/.mwan/qos.$1.sedfilter) 
    392389echo "$add_qos_iptables" | while read execute; do ${execute}; done 
    393390 
    394 rm /tmp/.mwan.$1.sedfilter  
     391rm /tmp/.mwan/qos.$1.sedfilter  
    395392i=1 
    396393while [ $i -lt $queue_count ]; do  
    397 echo "s/0x$i /0x${2}${i} fw /g" >> /tmp/.mwan.$1.sedfilter 
     394echo "s/0x$i /0x${2}${i} fw /g" >> /tmp/.mwan/qos.$1.sedfilter 
    398395i=`expr $i + 1`  
    399396done 
    400397 
    401 add_qos_tc=$(echo "$get_wan_tc" | sed -f /tmp/.mwan.$1.sedfilter) 
     398add_qos_tc=$(echo "$get_wan_tc" | sed -f /tmp/.mwan/qos.$1.sedfilter) 
    402399echo "$add_qos_tc" | while read execute; do ${execute}; done 
    403 rm /tmp/.mwan.$1.sedfilter 
     400rm /tmp/.mwan/qos.$1.sedfilter 
    404401 
    405402i=0 
     
    412409  i=`expr $i + 1` 
    413410done 
    414  
    415 qos_done="$qos_done $1." 
    416  
    417411} 
    418412 
     
    775769echo "## Main Initialization ##" 
    776770 
     771mkdir /tmp/.mwan > /dev/null 2>&1 
     772 
    777773mwan_kill 
    778774flush 
     
    922918while [ 1 ]; do 
    923919 
    924 . /tmp/.mwan.cache 
     920. /tmp/.mwan/cache 
    925921 
    926922if [ "$bg_counter" -eq 5 ]; then 
     
    1002998config_foreach acquire_wan_data interface 
    1003999 
     1000update_cache 
     1001 
    10041002CHKFORQOS=`iptables -n -L Default -t mangle 2>&1 | grep "Chain Default"` 
    10051003 
    1006 jobfile="/tmp/.mwan.jobqueue" 
     1004jobfile="/tmp/.mwan/jobqueue" 
    10071005 
    10081006case $1 in 
Note: See TracChangeset for help on using the changeset viewer.