Added ENABLE_TELNET_SERVER compile time option to the Webserver project to disable...
[pub/USBasp.git] / Projects / Webserver / Lib / DHCPClientApp.c
index 09bae73..1af90ad 100644 (file)
   this software.\r
 */\r
 \r
+#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)\r
+\r
 /** \file\r
  *\r
  *  DHCP Client Application. When connected to the uIP stack, this will retrieve IP configuration settings from the\r
  *  DHCP server on the network.\r
  */\r
 \r
+#define  INCLUDE_FROM_DHCPCLIENTAPP_C\r
 #include "DHCPClientApp.h"\r
 \r
-#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)\r
-\r
 /** Initialization function for the DHCP client. */\r
 void DHCPClientApp_Init(void)\r
 {\r
-       /* Create an IP address to the broadcast network address */\r
-       uip_ipaddr_t DHCPServerIPAddress;\r
-       uip_ipaddr(&DHCPServerIPAddress, 255, 255, 255, 255);\r
-\r
        /* Create a new UDP connection to the DHCP server port for the DHCP solicitation */\r
-       struct uip_udp_conn* Connection = uip_udp_new(&DHCPServerIPAddress, HTONS(DHCPC_SERVER_PORT));\r
+       struct uip_udp_conn* Connection = uip_udp_new(&uip_broadcast_addr, HTONS(DHCPC_SERVER_PORT));\r
        \r
        /* If the connection was successfully created, bind it to the local DHCP client port */\r
        if (Connection != NULL)\r
@@ -160,7 +157,10 @@ void DHCPClientApp_Callback(void)
                                uip_setnetmask((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.Netmask);\r
                                uip_setdraddr((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.GatewayIP);\r
                        \r
-                               AppState->DHCPClient.CurrentState = DHCP_STATE_AddressLeased;\r
+                               /* Indicate to the user that we now have a valid IP configuration */\r
+                               HaveIPConfiguration = true;\r
+\r
+                               AppState->DHCPClient.CurrentState = DHCP_STATE_AddressLeased;                           \r
                        }\r
                        \r
                        break;\r
@@ -176,7 +176,7 @@ void DHCPClientApp_Callback(void)
  *\r
  *  \return Size in bytes of the created DHCP packet\r
  */\r
-uint16_t DHCPClientApp_FillDHCPHeader(DHCP_Header_t* DHCPHeader, uint8_t DHCPMessageType, uip_udp_appstate_t* AppState)\r
+static uint16_t DHCPClientApp_FillDHCPHeader(DHCP_Header_t* DHCPHeader, uint8_t DHCPMessageType, uip_udp_appstate_t* AppState)\r
 {\r
        /* Erase existing packet data so that we start will all 0x00 DHCP header data */\r
        memset(DHCPHeader, 0, sizeof(DHCP_Header_t));\r
@@ -215,7 +215,7 @@ uint16_t DHCPClientApp_FillDHCPHeader(DHCP_Header_t* DHCPHeader, uint8_t DHCPMes
  *\r
  *  \return Number of bytes added to the DHCP packet\r
  */\r
-uint8_t DHCPClientApp_SetOption(uint8_t* DHCPOptionList, uint8_t Option, uint8_t DataLen, void* OptionData)\r
+static uint8_t DHCPClientApp_SetOption(uint8_t* DHCPOptionList, uint8_t Option, uint8_t DataLen, void* OptionData)\r
 {\r
        /* Skip through the DHCP options list until the terminator option is found */\r
        while (*DHCPOptionList != DHCP_OPTION_END)\r
@@ -239,7 +239,7 @@ uint8_t DHCPClientApp_SetOption(uint8_t* DHCPOptionList, uint8_t Option, uint8_t
  *\r
  *  \return Boolean true if the option was found in the DHCP packet's options list, false otherwise\r
  */\r
-bool DHCPClientApp_GetOption(uint8_t* DHCPOptionList, uint8_t Option, void* Destination)\r
+static bool DHCPClientApp_GetOption(uint8_t* DHCPOptionList, uint8_t Option, void* Destination)\r
 {\r
        /* Look through the incoming DHCP packet's options list for the requested option */\r
        while (*DHCPOptionList != DHCP_OPTION_END)\r