#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=61

USE_PROCD=1
PROG=avahi-daemon

updateservice() {
    cp -rf /etc/avahi /tmp/
    rm /tmp/avahi/services/mywifiext.service
    cp /etc/avahi/services/service-mywifiext /tmp/avahi/services/mywifiext.service
    hostname=`uci get system.@system[0].hostname`
    devname=$(echo "$hostname" | hexdump -n ${#hostname} -ve '1/1 "%02X"')
    ownmac=$(uci get wireless.2g.macAddr | awk '{print $NF}' | sed 's/://g' | tr 'a-z' 'A-Z')
    if [ "x$ownmac" = "x" ];then
        ownmac=$(ifconfig ra0 | grep HWaddr | awk '{print $NF}' | sed 's/://g' | tr 'a-z' 'A-Z')
    fi
    joined="1"
    modelname=$(echo `uci get system.@system[0].model` | awk '{printf "%s",$1}'|sed 's/ //g')
    if [ "x$modelname" = "x" ];then
        modelname=$( echo `envctl factory get model` | awk '{printf "%s",$1}'|sed 's/ //g')
    fi
    [ -z ${modelname} ] && modelname=EAX17

    eval "sed -i -e '8s,<txt-record>.*</txt-record>,<txt-record>mac=${ownmac}</txt-record>,'  \\
                    -e '9s,<txt-record>.*</txt-record>,<txt-record>joined=${joined}</txt-record>,' \\
                    -e '10s,<txt-record value-format=\"binary-hex\">.*</txt-record>,<txt-record value-format=\"binary-hex\">devname=${devname}</txt-record>,' \\
                    -e '11s,<txt-record>.*</txt-record>,<txt-record>modelname=${modelname}</txt-record>,' \\
                    /tmp/avahi/services/mywifiext.service"
}

start_service() {
	local factory_mode=`envctl factory get factory_mode`
	if [ "$factory_mode" == "off" ]; then
		updateservice
		procd_open_instance
		procd_set_param command "$PROG"
		procd_append_param command -s -D
		procd_set_param respawn
		procd_close_instance
	fi
}


