/* ----------------------------------------------------------------------------- * When a cable is plugged in, this function is called * ---------------------------------------------------------------------------*/ void uip_linkup() { if (uip_xtcp_get_ifstate()){ uip_xtcp_down(); } #if UIP_CONF_IPV4 if (uip_static_ip) { uip_sethostaddr(&uip_static_ipconfig.ipaddr); uip_setdraddr(&uip_static_ipconfig.gateway); uip_setnetmask(&uip_static_ipconfig.netmask); uip_xtcp_up(); } else { dhcp_done = 0; #if UIP_USE_DHCP dhcpc_stop(); #endif #if UIP_USE_AUTOIP #if UIP_USE_DHCP autoip_stop(); #else autoip_start(); #endif #endif #if UIP_USE_DHCP dhcpc_start(); #endif } #endif /* UIP_CONF_IPVx */ }
void uip_linkup() { if (get_uip_xtcp_ifstate()) uip_xtcp_down(); if (uip_static_ip) { #if UIP_CONF_IPV6 uip_ipaddr_t ipaddr; uip_ipaddr(ipaddr, uip_static_ipconfig.ipaddr[0], uip_static_ipconfig.ipaddr[1], uip_static_ipconfig.ipaddr[2], uip_static_ipconfig.ipaddr[3]); uip_sethostaddr(ipaddr); uip_ipaddr(ipaddr, uip_static_ipconfig.gateway[0], uip_static_ipconfig.gateway[1], uip_static_ipconfig.gateway[2], uip_static_ipconfig.gateway[3]); uip_setdraddr(ipaddr); uip_ipaddr(ipaddr, uip_static_ipconfig.netmask[0], uip_static_ipconfig.netmask[1], uip_static_ipconfig.netmask[2], uip_static_ipconfig.netmask[3]); uip_setnetmask(ipaddr); uip_setsubnetaddr(); #else uip_sethostaddr(uip_static_ipconfig.ipaddr); uip_setdraddr(uip_static_ipconfig.gateway); uip_setnetmask(uip_static_ipconfig.netmask); uip_setsubnetaddr(); #endif uip_xtcp_up(); } else { dhcp_done = 0; #if UIP_USE_DHCP dhcpc_stop(); #endif #if UIP_USE_AUTOIP #if UIP_USE_DHCP autoip_stop(); #else autoip_start(); #endif #endif #if UIP_USE_DHCP dhcpc_start(); #endif } }