From 227475a45e6a45453da2969a2573f25d8f018427 Mon Sep 17 00:00:00 2001 From: Simon Goldschmidt Date: Fri, 2 Sep 2011 22:31:05 +0200 Subject: [PATCH] win32 port: added 3 new defines so that I have less local diffs when testing, print out link-local-IPv6-address if LWIP_IPV6==1 --- ports/win32/lwipcfg_msvc.h.example | 7 ++++++ ports/win32/test.c | 40 ++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/ports/win32/lwipcfg_msvc.h.example b/ports/win32/lwipcfg_msvc.h.example index 545b819..0ed6ad7 100644 --- a/ports/win32/lwipcfg_msvc.h.example +++ b/ports/win32/lwipcfg_msvc.h.example @@ -15,6 +15,10 @@ /*#define PACKET_LIB_GET_ADAPTER_NETADDRESS(addr) IP4_ADDR((addr), 192,168,1,0)*/ /*#define PACKET_LIB_QUIET*/ +/* If these 2 are not defined, the corresponding config setting is used */ +/* #define USE_DHCP 0 */ +/* #define USE_AUTOIP 0 */ + #define LWIP_PORT_INIT_IPADDR(addr) IP4_ADDR((addr), 192,168,1,200) #define LWIP_PORT_INIT_GW(addr) IP4_ADDR((addr), 192,168,1,1) #define LWIP_PORT_INIT_NETMASK(addr) IP4_ADDR((addr), 255,255,255,0) @@ -43,3 +47,6 @@ * otherwise the raw api server will be used. */ /*#define LWIP_TCPECHO_APP_NETCONN */ #define LWIP_UDPECHO_APP 0 + +/* define this to your custom application-init function */ +/* #define LWIP_APP_INIT my_app_init() */ diff --git a/ports/win32/test.c b/ports/win32/test.c index c5452c4..5d34b0b 100644 --- a/ports/win32/test.c +++ b/ports/win32/test.c @@ -101,6 +101,13 @@ #define USE_ETHERNET_TCPIP !PPP_SUPPORT #endif +#ifndef USE_DHCP +#define USE_DHCP LWIP_DHCP +#endif +#ifndef USE_AUTOIP +#define USE_AUTOIP LWIP_AUTOIP +#endif + /* globales variables for netifs */ #if USE_ETHERNET @@ -197,11 +204,11 @@ void link_callback(struct netif *netif) { if (netif_is_link_up(netif)) { printf("link_callback==UP\n"); -#if LWIP_DHCP +#if USE_DHCP if (netif->dhcp != NULL) { dhcp_renew(netif); } -#endif /* LWIP_DHCP */ +#endif /* USE_DHCP */ } else { printf("link_callback==DOWN\n"); } @@ -243,16 +250,16 @@ msvc_netif_init() ip_addr_set_zero(&ipaddr); ip_addr_set_zero(&netmask); #if USE_ETHERNET_TCPIP -#if LWIP_DHCP +#if USE_DHCP printf("Starting lwIP, local interface IP is dhcp-enabled\n"); -#elif LWIP_AUTOIP +#elif USE_AUTOIP printf("Starting lwIP, local interface IP is autoip-enabled\n"); -#else /* LWIP_AUTOIP */ +#else /* USE_DHCP */ LWIP_PORT_INIT_GW(&gw); LWIP_PORT_INIT_IPADDR(&ipaddr); LWIP_PORT_INIT_NETMASK(&netmask); printf("Starting lwIP, local interface IP is %s\n", ip_ntoa(&ipaddr)); -#endif /* LWIP_DHCP */ +#endif /* USE_DHCP */ #endif /* USE_ETHERNET_TCPIP */ #if NO_SYS @@ -263,6 +270,12 @@ msvc_netif_init() #endif /* LWIP_ARP */ #else /* NO_SYS */ netif_set_default(netif_add(&netif, &ipaddr, &netmask, &gw, NULL, pcapif_init, tcpip_input)); +#if LWIP_IPV6 + netif_create_ip6_linklocal_address(&netif, 1); + printf("ip6 linklocal address: "); + ip6_addr_debug_print(0xFFFFFFFF & ~LWIP_DBG_HALT, &netif.ip6_addr[0]); + printf("\n"); +#endif /* LWIP_IPV6 */ #endif /* NO_SYS */ #if LWIP_NETIF_STATUS_CALLBACK netif_set_status_callback(&netif, status_callback); @@ -277,12 +290,14 @@ msvc_netif_init() #endif /* LWIP_AUTOIP */ #if LWIP_DHCP dhcp_set_struct(&netif, &netif_dhcp); - dhcp_start(&netif); -#elif LWIP_AUTOIP - autoip_start(&netif); -#else /* LWIP_DHCP */ - netif_set_up(&netif); #endif /* LWIP_DHCP */ +#if USE_DHCP + dhcp_start(&netif); +#elif USE_AUTOIP + autoip_start(&netif); +#else /* USE_DHCP */ + netif_set_up(&netif); +#endif /* USE_DHCP */ #else /* USE_ETHERNET_TCPIP */ /* Use ethernet for PPPoE only */ netif.flags &= ~(NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP); /* no ARP */ @@ -373,6 +388,9 @@ apps_init() #if LWIP_SOCKET_EXAMPLES_APP && LWIP_SOCKET socket_examples_init(); #endif /* LWIP_SOCKET_EXAMPLES_APP && LWIP_SOCKET */ +#ifdef LWIP_APP_INIT + LWIP_APP_INIT(); +#endif } /* This function initializes this lwIP test. When NO_SYS=1, this is done in