# This script runs last, after all network configuration
# has completed. It sets a property to let the framework
# know that setting up the interface is complete.

# For debugging:
#setprop dhcp.${interface}.reason "${reason}"

clear_ip_props()
{
#Start of Cisco Confidential and Proprietary Code.
    setprop dhcp.${interface}.ipaddress ""
    setprop dhcp.${interface}.gateway   ""
    setprop dhcp.${interface}.mask      ""
    setprop dhcp.${interface}.leasetime ""
    setprop dhcp.${interface}.server    ""
    setprop dhcp.${interface}.domain_name    "" 
#remove after upper level does not need
    setprop dhcp.${interface}.cisco_tftp_server ""
#cisco tftp servers 
    for i in 1 2; do
        setprop dhcp.${interface}.cisco_tftp_server${i} ""
    done
#remove after upper level does not need 
  setprop dhcp.${interface}.cisco_tftp_server    ""
#option 35 ARP-Timeout
#    setprop dhcp.${interface}.arp_cache_timeout    "${new_arp_cache_timeout}"
    
#option 58 T1 Time
  setprop dhcp.${interface}.dhcp_renewal_time    ""

#option 59 T2 Time
  setprop dhcp.${interface}.dhcp_rebinding_time  ""

#option 66
    setprop dhcp.${interface}.tftp_server_name   ""
#option siaddr
    setprop dhcp.${interface}.siaddr_address    ""
}


case "${reason}" in
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|LAST_LEASE)
    setprop dhcp.${interface}.ipaddress "${new_ip_address}"
    setprop dhcp.${interface}.gateway   "${new_routers%% *}"
    setprop dhcp.${interface}.mask      "${new_subnet_mask}"
    setprop dhcp.${interface}.leasetime "${new_dhcp_lease_time}"
    setprop dhcp.${interface}.server    "${new_dhcp_server_identifier}"
#Start of Cisco Confidential and Proprietary Code.
    setprop dhcp.${interface}.domain_name    "${new_domain_name}" 
# Remove when Ethernet Manager can handle this
#    setprop net.dns.search   "${new_domain_name}" 
    
#remove after upper level does not need
    setprop dhcp.${interface}.cisco_tftp_server ""
    
#cisco tftp servers 
    for i in 1 2; do
        setprop dhcp.${interface}.cisco_tftp_server${i} ""
    done
    
    count=1
    for tftpaddr in ${new_cisco_tftp_server}; do
        setprop dhcp.${interface}.cisco_tftp_server${count}   ${tftpaddr}
        count=$(($count + 1)) 
    done
    
   
       
#remove after upper level does not need 
  setprop dhcp.${interface}.cisco_tftp_server    "${new_cisco_tftp_server}"

#  setprop dhcp.${interface}.alt_tftp_server    "${new_alt_tftp_server}" 
    
#option 35 ARP-Timeout
    setprop dhcp.${interface}.arp_cache_timeout    "${new_arp_cache_timeout}"
    
#option 58 T1 Time
  setprop dhcp.${interface}.dhcp_renewal_time    "${new_dhcp_renewal_time}"

#option 59 T2 Time
  setprop dhcp.${interface}.dhcp_rebinding_time    "${new_dhcp_rebinding_time}"

#option 66
    setprop dhcp.${interface}.tftp_server_name    "${new_tftp_server_name}"
    
#option siaddr
    setprop dhcp.${interface}.siaddr_address    "${new_siaddr_address}"
   

#End of Cisco Confidential and Proprietary Code. Copyright 2010 Cisco Systems, Inc., all rights reserved.

    setprop dhcp.${interface}.result "ok"
    setprop dhcp.${interface}.reason "${reason}"
    ;;

EXPIRE|FAIL|IPV4LL|STOP)
    setprop dhcp.${interface}.result "failed"
    setprop dhcp.${interface}.reason "${reason}"
    ;;

RELEASE)
    setprop dhcp.${interface}.result "released"
    clear_ip_props
    setprop dhcp.${interface}.reason "${reason}"
#This is here to make sure that properties are set
    usleep 125000
#Need to notify downd that information changed
    gsvrtest 0
    ;;

NOTIFY)
#This is here to make sure that properties are set
    usleep 125000
#Need to notify downd that information changed
    gsvrtest 0
    ;;
esac
