Altered all endpoint/pipe stream transfers so that the new BytesProcessed parameter...
[pub/USBasp.git] / Projects / Webserver / Lib / DHCPClientApp.h
index d523983..cb4014f 100644 (file)
@@ -1,21 +1,21 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
-              
+     Copyright (C) Dean Camera, 2011.
+
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
-  Permission to use, copy, modify, distribute, and sell this 
+  Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in 
+  without fee, provided that the above copyright notice appear in
   all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting 
-  documentation, and that the name of the author not be used in 
-  advertising or publicity pertaining to distribution of the 
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
   The author disclaim all warranties with regard to this
 
        /* Includes: */
                #include <stdio.h>
-               
+
                #include <uip.h>
-               
+
                #include "../Webserver.h"
-               
+
        /* Macros: */
-               /** UDP listen port for a BOOTP server */
+               /** UDP listen port for a BOOTP server. */
                #define DHCPC_SERVER_PORT         67
 
-               /** UDP listen port for a BOOTP client */
+               /** UDP listen port for a BOOTP client. */
                #define DHCPC_CLIENT_PORT         68
 
-               /** BOOTP message type for a BOOTP REQUEST message */
+               /** BOOTP message type for a BOOTP REQUEST message. */
                #define DHCP_OP_BOOTREQUEST       0x01
 
-               /** BOOTP message type for a BOOTP REPLY message */
+               /** BOOTP message type for a BOOTP REPLY message. */
                #define DHCP_OP_BOOTREPLY         0x02
 
-               /** BOOTP flag for a BOOTP broadcast message */
+               /** BOOTP flag for a BOOTP broadcast message. */
                #define BOOTP_BROADCAST           0x8000
-               
-               /** Magic DHCP cookie for a BOOTP message to identify it as a DHCP message */
+
+               /** Magic DHCP cookie for a BOOTP message to identify it as a DHCP message. */
                #define DHCP_MAGIC_COOKIE         0x63538263
-               
-               /** Unique transaction ID used to identify DHCP responses to the client */
+
+               /** Unique transaction ID used to identify DHCP responses to the client. */
                #define DHCP_TRANSACTION_ID       0x13245466
 
-               /** DHCP message type for a DISCOVER message */
+               /** DHCP message type for a DISCOVER message. */
                #define DHCP_DISCOVER             1
 
-               /** DHCP message type for an OFFER message */
+               /** DHCP message type for an OFFER message. */
                #define DHCP_OFFER                2
 
-               /** DHCP message type for a REQUEST message */
+               /** DHCP message type for a REQUEST message. */
                #define DHCP_REQUEST              3
 
-               /** DHCP message type for a DECLINE message */
+               /** DHCP message type for a DECLINE message. */
                #define DHCP_DECLINE              4
 
-               /** DHCP message type for an ACK message */
+               /** DHCP message type for an ACK message. */
                #define DHCP_ACK                  5
 
-               /** DHCP message type for a NAK message */
+               /** DHCP message type for a NAK message. */
                #define DHCP_NAK                  6
 
-               /** DHCP message type for a RELEASE message */
+               /** DHCP message type for a RELEASE message. */
                #define DHCP_RELEASE              7
 
-               /** DHCP medium type for standard Ethernet */
+               /** DHCP medium type for standard Ethernet. */
                #define DHCP_HTYPE_ETHERNET       1
 
-               /** DHCP message option for the network subnet mask */
+               /** DHCP message option for the network subnet mask. */
                #define DHCP_OPTION_SUBNET_MASK   1
 
-               /** DHCP message option for the network gateway IP */
+               /** DHCP message option for the network gateway IP. */
                #define DHCP_OPTION_ROUTER        3
 
-               /** DHCP message option for the network DNS server */
+               /** DHCP message option for the network DNS server. */
                #define DHCP_OPTION_DNS_SERVER    6
 
-               /** DHCP message option for the requested client IP address */
+               /** DHCP message option for the requested client IP address. */
                #define DHCP_OPTION_REQ_IPADDR    50
 
-               /** DHCP message option for the IP address lease time */
+               /** DHCP message option for the IP address lease time. */
                #define DHCP_OPTION_LEASE_TIME    51
 
-               /** DHCP message option for the DHCP message type */
+               /** DHCP message option for the DHCP message type. */
                #define DHCP_OPTION_MSG_TYPE      53
-               
-               /** DHCP message option for the DHCP server IP */               
+
+               /** DHCP message option for the DHCP server IP. */
                #define DHCP_OPTION_SERVER_ID     54
 
-               /** DHCP message option for the list of required options from the server */
+               /** DHCP message option for the list of required options from the server. */
                #define DHCP_OPTION_REQ_LIST      55
 
-               /** DHCP message option for the options list terminator */
+               /** DHCP message option for the options list terminator. */
                #define DHCP_OPTION_END           255
 
        /* Type Defines: */
 
                        uint16_t ElapsedSeconds; /**< Elapsed seconds since the request was made */
                        uint16_t Flags; /**< BOOTP packet flags */
-                       
+
                        uip_ipaddr_t ClientIP; /**< Client IP address, if already leased an IP */
                        uip_ipaddr_t YourIP; /**< Client IP address */
                        uip_ipaddr_t NextServerIP; /**< Legacy BOOTP protocol field, unused for DHCP */
                        uip_ipaddr_t RelayAgentIP; /**< Legacy BOOTP protocol field, unused for DHCP */
-                       
+
                        uint8_t ClientHardwareAddress[16]; /**< Hardware (MAC) address of the client making a request to the DHCP server */
                        uint8_t ServerHostnameString[64]; /**< Legacy BOOTP protocol field, unused for DHCP */
                        uint8_t BootFileName[128]; /**< Legacy BOOTP protocol field, unused for DHCP */
-                       
+
                        uint32_t Cookie; /**< Magic BOOTP protocol cookie to indicate a valid packet */
-                       
-                       uint8_t  Options[]; /** DHCP message options */
+
+                       uint8_t  Options[]; /**< DHCP message options */
                } DHCP_Header_t;
 
        /* Enums: */
        /* Function Prototypes: */
                void DHCPClientApp_Init(void);
                void DHCPClientApp_Callback(void);
-               
+
                #if defined(INCLUDE_FROM_DHCPCLIENTAPP_C)
-                       static uint16_t DHCPClientApp_FillDHCPHeader(DHCP_Header_t* const DHCPHeader, const uint8_t DHCPMessageType,
-                                                                    uip_udp_appstate_t* AppState);
-                       static uint8_t  DHCPClientApp_SetOption(uint8_t* DHCPOptionList, uint8_t Option, uint8_t DataLen,
-                                                               void* OptionData);
-                       static bool     DHCPClientApp_GetOption(const uint8_t* DHCPOptionList, const uint8_t Option, void* const Destination);
+                       static uint16_t DHCPClientApp_FillDHCPHeader(DHCP_Header_t* const DHCPHeader,
+                                                                    const uint8_t DHCPMessageType,
+                                                                    uip_udp_appstate_t* const AppState);
+                       static uint8_t  DHCPClientApp_SetOption(uint8_t* DHCPOptionList,
+                                                               const uint8_t Option,
+                                                               const uint8_t DataLen,
+                                                               void* const OptionData);
+                       static bool     DHCPClientApp_GetOption(const uint8_t* DHCPOptionList,
+                                                               const uint8_t Option,
+                                                               void* const Destination);
                #endif
 #endif
+