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
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
*\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
*\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
*\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