DD-WRT: inadyn segmentation fault

csak a baj van vele:))
DD-WRT Forum + inadyn segfault:)

saját workaround a fentiek alapján dyndns esetére, slágvortokban:):

Setup --> DDNS --> DDNS Service | DynDNS.org
Setup --> DDNS --> User Name | felhaználó
Setup --> DDNS --> Password | jelszó
Setup --> DDNS --> Host Name | hostnév -a hosztnév1 ...
Setup --> DDNS --> Save
Setup --> DDNS --> DDNS Service | Disable
Setup --> DDNS --> Save

Administration --> Commands --> Commands | (copy-paste)
Save Custom Script (/tmp/custom.sh)


DD="members.dyndns.org/nic/update?hostname="

ps | grep -q [i]nadyn && exit 0
[ $(nvram get ddns_enable) -ne 0 ] && exit 0
[ -z "$(nvram get ddns_username)" -o -z $(nvram get ddns_passwd) ] && exit 0
[ -z "$(nvram get ddns_hostname)" ] && exit 0

[ ! -z $(nvram get ddns_script) ] && \
  ps | grep -q "^[ ]*$(nvram get ddns_script).*[c]ustom.sh" && exit 0
nvram set ddns_script=$$

if [ "$(nvram get wan_ipaddr)" != "$(nvram get wan_ipaddr_buf)" ]
then
  for i in $(nvram get ddns_hostname | sed 's/ -a / /g')
  do
    /usr/bin/wget -O /dev/null http://$(nvram get ddns_username):$(nvram get ddns_passwd)@${DD}${i}
  done
  nvram set wan_ipaddr_buf=$(nvram get wan_ipaddr)
fi
nvram set ddns_script=

Administration --> Management --> cron:


*/5 * * * *  sh /tmp/custom.sh

szerkesztés:
/tmp/custom.sh egyszerűsítése:


DD="members.dyndns.org/nic/update?hostname="

ps | grep -q [i]nadyn && exit 0
[ $(nvram get ddns_enable) -ne 0 ] && exit 0
[ "$(nvram get wan_ipaddr)" == "$(nvram get wan_ipaddr_buf)" ] && exit 0
[ -z "$(nvram get ddns_username)" -o -z $(nvram get ddns_passwd) ] && exit 0

for i in $(nvram get ddns_hostname | sed 's/ -a / /g')
do
  /usr/bin/wget -O /dev/null http://$(nvram get ddns_username):$(nvram get ddns_passwd)@${DD}${i}
done
nvram set wan_ipaddr_buf=$(nvram get wan_ipaddr)

szerkesztés1:
valami el lett cseszve: mindenféle nyúzás után is mindig működik:)

root@DD-WRT:/tmp# nvram set wan_ipaddr_buf=0.0.0.0
root@DD-WRT:/tmp# sh -x ./custom.sh 
+ DD=members.dyndns.org/nic/update?hostname=
+ ps
+ grep -q [i]nadyn
+ nvram get ddns_enable
+ [ 0 -ne 0 ]
+ nvram get wan_ipaddr
+ nvram get wan_ipaddr_buf
+ [ 78.xxx.xxx.xxx = 0.0.0.0 ]
+ nvram get ddns_username
+ nvram get ddns_passwd
+ [ -z ******** -o -z ******** ]
+ sed s/ -a / /g
+ nvram get ddns_hostname
+ nvram get ddns_username
+ nvram get ddns_passwd
+ wget -O /dev/null http://********:********@members.dyndns.org/nic/update?hostname=host.dyndns-free.com
Connecting to members.dyndns.org (204.13.248.112:80)
null                 100% |*******************************************************************************|    18  --:--:-- ETA
+ nvram get ddns_username
+ nvram get ddns_passwd
+ wget -O /dev/null http://********:********@members.dyndns.org/nic/update?hostname=host1.dyndns-free.com
Connecting to members.dyndns.org (204.13.248.112:80)
null                 100% |*******************************************************************************|    18  --:--:-- ETA
+ nvram get wan_ipaddr
+ nvram set wan_ipaddr_buf=78.xxx.xxx.xxx
root@DD-WRT:/tmp# 

vagyis ennyi. úgy tűnik ennél már nem lesz jobb.

szerkesztés2:
meg sem száradt a tenta...

/tmp/custom.sh


DD="members.dyndns.org/nic/update?hostname="

ps | grep -q [i]nadyn && exit 0
[ $(nvram get ddns_enable) -ne 0 ] && exit 0
[ -z $(nvram get wan_ipaddr) ] && exit 0
[ "$(nvram get wan_ipaddr)" = "$(nvram get wan_ipaddr_buf)" ] && exit 0
[ -z "$(nvram get ddns_username)" -o -z $(nvram get ddns_passwd) ] && exit 0

for i in $(nvram get ddns_hostname | sed 's/ -a / /g')
do
  wget -O /dev/null http://$(nvram get ddns_username):$(nvram get ddns_passwd)@${DD}${i}
done
nvram set wan_ipaddr_buf=$(nvram get wan_ipaddr)

Hozzászólások