#!/bin/sh /etc/rc.common
. /etc/arch.sh

START=42
log_msg="License-client"

boot() {
    k0=$(nvram get license_key)
    v1=$(nvram show wan_hwaddr_rule_default 0 hwaddr)
    v2=$(nvram show lan_hwaddr_rule_default 0 hwaddr)
    if [ -f /proc/ezp_machine_id ];then
        v3=$(cat /proc/ezp_machine_id)
    else {
        # EZP XXX: 
        ifconfig ra0 up
        v3=$(cat /proc/ezp_machine_id)
        ifconfig ra0 down
    } fi

    v4=$(nvram get brand)
    v5=$(nvram get model)

    bc=$(nvram get bootcount)
    k1=$(echo -n "$v1$v2$v3$v4$v5" | md5sum | cut -d' ' -f1 | tr a-z A-Z)

    if [ "$k0" = "$k1" ];then
        bc=0
        licinv=0
    else {
        BRAND="$(nvram get brand)"
        if [ "$BRAND" = "APOLLO" ];then
            # For change firmware from Proxicast
            v4="PROX"
            v5="LAN-Cell 3"
        else
            # For old Zyxel VFG firmware
            v4="ZYXEL"
        fi
        k1=$(echo -n "$v1$v2$v3$v4$v5" | md5sum | cut -d' ' -f1 | tr a-z A-Z)
        if [ "$k0" = "$k1" ];then
            bc=0
            licinv=0
        else {
            bc=$((bc + 1))
            if [ $bc -lt 10 ];then
                licinv=1
            else
                licinv=2
            fi
        } fi
    } fi

    nvram fset bootcount=$bc
    [ "$(nvram get license_invalid)" != $licinv ] && {
        nvram fset license_invalid=$licinv
        nvram commit
    }
    
    BRAND="$(nvram get brand)"
    [ "$BRAND" = "PROX" -o "$BRAND" = "APOLLO" ] && {
	iwpriv ra0 e2p 4
	iwpriv_flag=$?
	[ "$iwpriv_flag" != "0" ] && ifconfig ra0 up
	mac1=`iwpriv ra0 e2p 4 | grep "]" | cut -f2 -d ":" | cut -f2 -d "x" | cut -c 3,4`
	mac2=`iwpriv ra0 e2p 4 | grep "]" | cut -f2 -d ":" | cut -f2 -d "x" | cut -c 1,2`
	mac3=`iwpriv ra0 e2p 6 | grep "]" | cut -f2 -d ":" | cut -f2 -d "x" | cut -c 3,4`
	mac4=`iwpriv ra0 e2p 6 | grep "]" | cut -f2 -d ":" | cut -f2 -d "x" | cut -c 1,2`
	mac5=`iwpriv ra0 e2p 8 | grep "]" | cut -f2 -d ":" | cut -f2 -d "x" | cut -c 3,4`
	mac6=`iwpriv ra0 e2p 8 | grep "]" | cut -f2 -d ":" | cut -f2 -d "x" | cut -c 1,2`
	[ "$iwpriv_flag" != "0" ] && ifconfig ra0 down
        nvram fset prox_serial="$mac1$mac2$mac3$mac4$mac5$mac6"
        nvram commit
    }

    return $err
}
