Device mode class driver callbacks are now fired before the control request status...
[pub/USBasp.git] / Projects / Webserver / Lib / uIPManagement.c
index 13829c5..45f8a6a 100644 (file)
@@ -46,13 +46,14 @@ struct timer ARPTimer;
 /** MAC address of the RNDIS device, when enumerated */\r
 struct uip_eth_addr MACAddress;\r
 \r
+bool HaveIPConfiguration;\r
 \r
 /** Configures the uIP stack ready for network traffic. */\r
 void uIPManagement_Init(void)\r
 {\r
        /* uIP Timing Initialization */\r
        clock_init();\r
-       timer_set(&ConnectionTimer, CLOCK_SECOND / 5);\r
+       timer_set(&ConnectionTimer, CLOCK_SECOND / 2);\r
        timer_set(&ARPTimer, CLOCK_SECOND * 10);        \r
 \r
        /* uIP Stack Initialization */\r
@@ -62,8 +63,10 @@ void uIPManagement_Init(void)
 \r
        /* DHCP/Server IP Settings Initialization */\r
        #if defined(ENABLE_DHCP_CLIENT)\r
+       HaveIPConfiguration = false;\r
        DHCPClientApp_Init();\r
        #else\r
+       HaveIPConfiguration = true;\r
        uip_ipaddr_t IPAddress, Netmask, GatewayIPAddress;\r
        uip_ipaddr(&IPAddress,        DEVICE_IP_ADDRESS[0], DEVICE_IP_ADDRESS[1], DEVICE_IP_ADDRESS[2], DEVICE_IP_ADDRESS[3]);\r
        uip_ipaddr(&Netmask,          DEVICE_NETMASK[0],    DEVICE_NETMASK[1],    DEVICE_NETMASK[2],    DEVICE_NETMASK[3]);\r
@@ -77,7 +80,9 @@ void uIPManagement_Init(void)
        HTTPServerApp_Init();\r
        \r
        /* TELNET Server Initialization */\r
+       #if defined(ENABLE_TELNET_SERVER)\r
        TELNETServerApp_Init();\r
+       #endif\r
 }\r
 \r
 /** uIP Management function. This function manages the uIP stack when called while an RNDIS device has been\r
@@ -103,9 +108,11 @@ void uIPManagement_TCPCallback(void)
                case HTONS(HTTP_SERVER_PORT):\r
                        HTTPServerApp_Callback();\r
                        break;\r
+               #if defined(ENABLE_TELNET_SERVER)\r
                case HTONS(TELNET_SERVER_PORT):\r
                        TELNETServerApp_Callback();\r
                        break;\r
+               #endif\r
        }\r
 }\r
 \r
@@ -169,7 +176,7 @@ static void uIPManagement_ProcessIncomingPacket(void)
                }\r
        }\r
 \r
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
+       LEDs_SetAllLEDs(LEDMASK_USB_READY | ((HaveIPConfiguration) ? LEDMASK_UIP_READY_CONFIG : LEDMASK_UIP_READY_NOCONFIG));\r
 }\r
 \r
 /** Manages the currently open network connections, including TCP and (if enabled) UDP. */\r