/* ----------------------------------------------------------------------------- * 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 xtcpd_icmp6_call(uint8_t type){ PRINTF("%s: type: %i\n", __func__, type); switch(type){ case ICMP6_NA: case ICMP6_RA: uip_xtcp_up(); break; default: break; } }
void dhcpc_configured(const struct dhcpc_state *s) { #ifdef XTCP_VERBOSE_DEBUG printf("dhcp: ");uip_printip4(s->ipaddr);printf("\n"); #endif #if UIP_USE_AUTOIP autoip_stop(); #endif uip_sethostaddr(s->ipaddr); uip_setdraddr(s->default_router); uip_setnetmask(s->netmask); uip_xtcp_up(); dhcp_done = 1; }
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 } }
void autoip_configured(uip_ipaddr_t autoip_ipaddr) { if (!dhcp_done) { uip_ipaddr_t ipaddr; #ifdef XTCP_VERBOSE_DEBUG printf("ipv4ll: "); uip_printip4(autoip_ipaddr); printf("\n"); #endif /* XTCP_VERBOSE_DEBUG */ uip_sethostaddr(autoip_ipaddr); uip_ipaddr(ipaddr, 255, 255, 0, 0); uip_setnetmask(ipaddr); uip_ipaddr(ipaddr, 0, 0, 0, 0); uip_setdraddr(ipaddr); uip_xtcp_up(); } }