--- bin/prepare_fwupgrade +++ bin/prepare_fwupgrade @@ -38,7 +38,7 @@ voipd -s avmike -s killall printserv -/sbin/igdd -s +[ -x /sbin/igdd ] && /sbin/igdd -s usermand -s if [ "$1" = "start_from_internet" ] ; then # we will download the update image from the internet so @@ -96,6 +96,7 @@ killall avmike killall dsld killall websrv +[ -x /etc/init.d/rc.websrv ] && /etc/init.d/rc.websrv stop 2> /dev/null killall wpa_authenticator killall wstart /sbin/multid -s @@ -109,6 +110,7 @@ killall -9 dsld killall -9 thttpd killall -9 websrv +[ -x /etc/init.d/rc.websrv ] && /etc/init.d/rc.websrv kill 2> /dev/null killall -9 wpa_authenticator killall -9 wstart killall -9 multid --- etc/init.d/rc.net +++ etc/init.d/rc.net @@ -46,8 +46,14 @@ WLAN_TEST=0 fi +# Do we have a websrv or was ist stripped from the firmware? +_websrv=$(basename $(which /sbin/websrv) 2> /dev/null) +# Do we have a UPnP server (igdd) or was ist stripped from the firmware? +_igdd=$(basename $(which igdd) 2> /dev/null) + igddstart() { + [ "$_igdd" ] || return; if [ "`pidof igdd`" = "" ] ; then igdd $VERBOSEPARAM sleep 1 @@ -208,14 +214,15 @@ stopall() { if [ "$CONFIG_DSL" ] ; then - AVMDAEMONS="avmike dsld igdd websrv multid" + AVMDAEMONS="avmike dsld $_igdd $_websrv multid" else - AVMDAEMONS="igdd websrv multid" + AVMDAEMONS="$_igdd $_websrv multid" fi DAEMONS= for i in $AVMDAEMONS ; do eval $i -s done + [ "$_websrv" ] || /etc/init.d/rc.websrv stop sleep 3 for i in $DAEMONS $AVMDAEMONS ; do killall -15 $i @@ -264,9 +271,15 @@ ctlmgr $NICEPARAM $VERBOSEPARAM fi + if [ "$_websrv" ]; then if [ "`pidof websrv`" = "" ] ; then websrv $NICEPARAM fi + else + if [ "$(/etc/init.d/rc.websrv status)" == "stopped" ]; then + /etc/init.d/rc.websrv start + fi + fi igddstart multidstart @@ -312,9 +325,9 @@ if [ "$1" ] ; then AVMDAEMONS="$*" elif [ "$CONFIG_DSL" ] ; then - AVMDAEMONS="avmike dsld igdd multid" + AVMDAEMONS="avmike dsld $_igdd multid" else - AVMDAEMONS="igdd multid" + AVMDAEMONS="$_igdd multid" fi # stop the daemon with -s