summaryrefslogtreecommitdiffstats
path: root/lib/lufa/Projects/Webserver/Lib
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2019-08-02 14:02:40 -0700
committerskullydazed <skullydazed@users.noreply.github.com>2019-08-30 15:01:52 -0700
commitcf4575b94a3c65e6535a159fc71fc885aebc2620 (patch)
tree2354f2b7a200e02246a564afefedc32357e62b8e /lib/lufa/Projects/Webserver/Lib
parent75ee8df19e0f14ba466f41ab673dde2fe2fdae9c (diff)
Fix the LUFA lib to use a submodule instead of just files (#6245)
* Remove LUFA files * Update descriptions for newer version of LUFA * Create PR6245.md * Fix CDC(Serial) type errors * Fix missed merge conflict for AUDIO_DTYPE_CSInterface
Diffstat (limited to 'lib/lufa/Projects/Webserver/Lib')
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DHCPClientApp.c208
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DHCPClientApp.h69
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DHCPCommon.c103
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DHCPCommon.h159
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DHCPServerApp.c265
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DHCPServerApp.h64
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DataflashManager.c534
-rw-r--r--lib/lufa/Projects/Webserver/Lib/DataflashManager.h87
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/00readme.txt135
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/diskio.c65
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/diskio.h52
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/ff.c4139
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/ff.h337
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/ffconf.h190
-rw-r--r--lib/lufa/Projects/Webserver/Lib/FATFs/integer.h38
-rw-r--r--lib/lufa/Projects/Webserver/Lib/HTTPServerApp.c284
-rw-r--r--lib/lufa/Projects/Webserver/Lib/HTTPServerApp.h84
-rw-r--r--lib/lufa/Projects/Webserver/Lib/SCSI.c344
-rw-r--r--lib/lufa/Projects/Webserver/Lib/SCSI.h87
-rw-r--r--lib/lufa/Projects/Webserver/Lib/TELNETServerApp.c163
-rw-r--r--lib/lufa/Projects/Webserver/Lib/TELNETServerApp.h71
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uIPManagement.c298
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uIPManagement.h69
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/clock.c37
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/clock.h13
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/timer.c128
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/timer.h87
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uip-split.c151
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uip-split.h104
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uip.c1941
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uip.h2130
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uip_arp.c432
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uip_arp.h146
-rw-r--r--lib/lufa/Projects/Webserver/Lib/uip/uipopt.h740
34 files changed, 0 insertions, 13754 deletions
diff --git a/lib/lufa/Projects/Webserver/Lib/DHCPClientApp.c b/lib/lufa/Projects/Webserver/Lib/DHCPClientApp.c
deleted file mode 100644
index 760718127e..0000000000
--- a/lib/lufa/Projects/Webserver/Lib/DHCPClientApp.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * DHCP Client Application. When connected to the uIP stack, this will retrieve IP configuration settings from the
- * DHCP server on the network.
- */
-
-#define INCLUDE_FROM_DHCPCLIENTAPP_C
-#include "DHCPClientApp.h"
-
-#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)
-
-/** Initialization function for the DHCP client. */
-void DHCPClientApp_Init(void)
-{
- /* Create a new UDP connection to the DHCP server port for the DHCP solicitation */
- struct uip_udp_conn* Connection = uip_udp_new(&uip_broadcast_addr, HTONS(DHCP_SERVER_PORT));
-
- /* If the connection was successfully created, bind it to the local DHCP client port */
- if (Connection != NULL)
- {
- uip_udp_appstate_t* const AppState = &Connection->appstate;
- uip_udp_bind(Connection, HTONS(DHCP_CLIENT_PORT));
-
- /* Set the initial client state */
- AppState->DHCPClient.CurrentState = DHCP_STATE_SendDiscover;
-
- /* Set timeout period to half a second for a DHCP server to respond */
- timer_set(&AppState->DHCPClient.Timeout, CLOCK_SECOND / 2);
- }
-}
-
-/** uIP stack application callback for the DHCP client. This function must be called each time the TCP/IP stack
- * needs a UDP packet to be processed.
- */
-void DHCPClientApp_Callback(void)
-{
- uip_udp_appstate_t* const AppState = &uip_udp_conn->appstate;
- DHCP_Header_t* const AppData = (DHCP_Header_t*)uip_appdata;
- uint16_t AppDataSize = 0;
-
- switch (AppState->DHCPClient.CurrentState)
- {
- case DHCP_STATE_SendDiscover:
- /* Clear all DHCP settings, reset client IP address */
- memset(&AppState->DHCPClient.DHCPOffer_Data, 0x00, sizeof(AppState->DHCPClient.DHCPOffer_Data));
- uip_sethostaddr((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.AllocatedIP);
-
- /* Fill out the DHCP response header */
- AppDataSize += DHCPClientApp_FillDHCPHeader(AppData, DHCP_DISCOVER, AppState);
-
- /* Add the required DHCP options list to the packet */
- uint8_t RequiredOptionList[] = {DHCP_OPTION_SUBNET_MASK, DHCP_OPTION_ROUTER, DHCP_OPTION_DNS_SERVER};
- AppDataSize += DHCPCommon_SetOption(AppData->Options, DHCP_OPTION_REQ_LIST, sizeof(RequiredOptionList),
- RequiredOptionList);
-
- /* Send the DHCP DISCOVER packet */
- uip_udp_send(AppDataSize);
-
- /* Reset the timeout timer, progress to next state */
- timer_reset(&AppState->DHCPClient.Timeout);
- AppState->DHCPClient.CurrentState = DHCP_STATE_WaitForOffer;
-
- break;
- case DHCP_STATE_WaitForOffer:
- if (!(uip_newdata()))
- {
- /* Check if the DHCP timeout period has expired while waiting for a response */
- if (timer_expired(&AppState->DHCPClient.Timeout))
- AppState->DHCPClient.CurrentState = DHCP_STATE_SendDiscover;
-
- break;
- }
-
- uint8_t OfferResponse_MessageType;
- if ((AppData->TransactionID == DHCP_TRANSACTION_ID) &&
- DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_MSG_TYPE, &OfferResponse_MessageType) &&
- (OfferResponse_MessageType == DHCP_OFFER))
- {
- /* Received a DHCP offer for an IP address, copy over values for later request */
- memcpy(&AppState->DHCPClient.DHCPOffer_Data.AllocatedIP, &AppData->YourIP, sizeof(uip_ipaddr_t));
- DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_SUBNET_MASK, &AppState->DHCPClient.DHCPOffer_Data.Netmask);
- DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_ROUTER, &AppState->DHCPClient.DHCPOffer_Data.GatewayIP);
- DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_SERVER_ID, &AppState->DHCPClient.DHCPOffer_Data.ServerIP);
-
- timer_reset(&AppState->DHCPClient.Timeout);
- AppState->DHCPClient.CurrentState = DHCP_STATE_SendRequest;
- }
-
- break;
- case DHCP_STATE_SendRequest:
- /* Fill out the DHCP response header */
- AppDataSize += DHCPClientApp_FillDHCPHeader(AppData, DHCP_REQUEST, AppState);
-
- /* Add the DHCP REQUESTED IP ADDRESS option to the packet */
- AppDataSize += DHCPCommon_SetOption(AppData->Options, DHCP_OPTION_REQ_IPADDR, sizeof(uip_ipaddr_t),
- &AppState->DHCPClient.DHCPOffer_Data.AllocatedIP);
-
- /* Add the DHCP SERVER IP ADDRESS option to the packet */
- AppDataSize += DHCPCommon_SetOption(AppData->Options, DHCP_OPTION_SERVER_ID, sizeof(uip_ipaddr_t),
- &AppState->DHCPClient.DHCPOffer_Data.ServerIP);
-
- /* Send the DHCP REQUEST packet */
- uip_udp_send(AppDataSize);
-
- /* Reset the timeout timer, progress to next state */
- timer_reset(&AppState->DHCPClient.Timeout);
- AppState->DHCPClient.CurrentState = DHCP_STATE_WaitForACK;
-
- break;
- case DHCP_STATE_WaitForACK:
- if (!(uip_newdata()))
- {
- /* Check if the DHCP timeout period has expired while waiting for a response */
- if (timer_expired(&AppState->DHCPClient.Timeout))
- AppState->DHCPClient.CurrentState = DHCP_STATE_SendDiscover;
-
- break;
- }
-
- uint8_t RequestResponse_MessageType;
- if ((AppData->TransactionID == DHCP_TRANSACTION_ID) &&
- DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_MSG_TYPE, &RequestResponse_MessageType) &&
- (RequestResponse_MessageType == DHCP_ACK))
- {
- /* Set the new network parameters from the DHCP server */
- uip_sethostaddr((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.AllocatedIP);
- uip_setnetmask((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.Netmask);
- uip_setdraddr((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.GatewayIP);
-
- AppState->DHCPClient.CurrentState = DHCP_STATE_AddressLeased;
- }
-
- break;
- }
-}
-
-/** Fills the DHCP packet response with the appropriate BOOTP header for DHCP. This fills out all the required
- * fields, leaving only the additional DHCP options to be added to the packet before it is sent to the DHCP server.
- *
- * \param[out] DHCPHeader Location in the packet buffer where the BOOTP header should be written to
- * \param[in] DHCPMessageType DHCP Message type, such as DHCP_DISCOVER
- * \param[in] AppState Application state of the current UDP connection
- *
- * \return Size in bytes of the created DHCP packet
- */
-static uint16_t DHCPClientApp_FillDHCPHeader(DHCP_Header_t* const DHCPHeader,
- const uint8_t DHCPMessageType,
- uip_udp_appstate_t* const AppState)
-{
- /* Erase existing packet data so that we start will all 0x00 DHCP header data */
- memset(DHCPHeader, 0, sizeof(DHCP_Header_t));
-
- /* Fill out the DHCP packet header */
- DHCPHeader->Operation = DHCP_OP_BOOTREQUEST;
- DHCPHeader->HardwareType = DHCP_HTYPE_ETHERNET;
- DHCPHeader->HardwareAddressLength = sizeof(MACAddress);
- DHCPHeader->Hops = 0;
- DHCPHeader->TransactionID = DHCP_TRANSACTION_ID;
- DHCPHeader->ElapsedSeconds = 0;
- DHCPHeader->Flags = HTONS(BOOTP_BROADCAST);
- memcpy(&DHCPHeader->ClientIP, &uip_hostaddr, sizeof(uip_ipaddr_t));
- memcpy(&DHCPHeader->YourIP, &AppState->DHCPClient.DHCPOffer_Data.AllocatedIP, sizeof(uip_ipaddr_t));
- memcpy(&DHCPHeader->NextServerIP, &AppState->DHCPClient.DHCPOffer_Data.ServerIP, sizeof(uip_ipaddr_t));
- memcpy(&DHCPHeader->ClientHardwareAddress, &MACAddress, sizeof(struct uip_eth_addr));
- DHCPHeader->Cookie = DHCP_MAGIC_COOKIE;
-
- /* Add a DHCP message type and terminator options to the start of the DHCP options field */
- DHCPHeader->Options[0] = DHCP_OPTION_MSG_TYPE;
- DHCPHeader->Options[1] = 1;
- DHCPHeader->Options[2] = DHCPMessageType;
- DHCPHeader->Options[3] = DHCP_OPTION_END;
-
- /* Calculate the total number of bytes added to the outgoing packet */
- return (sizeof(DHCP_Header_t) + 4);
-}
-
-#endif
-
diff --git a/lib/lufa/Projects/Webserver/Lib/DHCPClientApp.h b/lib/lufa/Projects/Webserver/Lib/DHCPClientApp.h
deleted file mode 100644
index 0aec00331c..0000000000
--- a/lib/lufa/Projects/Webserver/Lib/DHCPClientApp.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * Header file for DHCPClientApp.c.
- */
-
-#ifndef _DHCPCLIENT_APP_H_
-#define _DHCPCLIENT_APP_H_
-
- /* Includes: */
- #include <stdio.h>
-
- #include <uip.h>
-
- #include "Config/AppConfig.h"
- #include "../Webserver.h"
- #include "DHCPCommon.h"
-
- /* Enums: */
- /** States for each DHCP connection to a DHCP client. */
- enum DHCP_Client_States_t
- {
- DHCP_STATE_SendDiscover, /**< Send DISCOVER packet to retrieve DHCP lease offers */
- DHCP_STATE_WaitForOffer, /**< Waiting for OFFER packet giving available DHCP leases */
- DHCP_STATE_SendRequest, /**< Send REQUEST packet to request a DHCP lease */
- DHCP_STATE_WaitForACK, /**< Wait for ACK packet to complete the DHCP lease */
- DHCP_STATE_AddressLeased, /**< DHCP address has been leased from a DHCP server */
- };
-
- /* 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* const AppState);
- #endif
-#endif
-
diff --git a/lib/lufa/Projects/Webserver/Lib/DHCPCommon.c b/lib/lufa/Projects/Webserver/Lib/DHCPCommon.c
deleted file mode 100644
index 6d80f65cae..0000000000
--- a/lib/lufa/Projects/Webserver/Lib/DHCPCommon.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * Common DHCP routines to manage DHCP packet data.
- */
-
-#include "DHCPCommon.h"
-
-#if defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
-
-/** Sets the given DHCP option in the DHCP packet's option list. This automatically moves the
- * end of options terminator past the new option in the options list.
- *
- * \param[in,out] DHCPOptionList Pointer to the start of the DHCP packet's options list
- * \param[in] Option DHCP option to add to the list
- * \param[in] DataLen Size in bytes of the option data to add
- * \param[in] OptionData Buffer where the option's data is to be sourced from
- *
- * \return Number of bytes added to the DHCP packet
- */
-uint8_t DHCPCommon_SetOption(uint8_t* DHCPOptionList,
- const uint8_t Option,
- const uint8_t DataLen,
- void* const OptionData)
-{
- /* Skip through the DHCP options list until the terminator option is found */
- while (*DHCPOptionList != DHCP_OPTION_END)
- DHCPOptionList += (DHCPOptionList[1] + 2);
-
- /* Overwrite the existing terminator with the new option, add a new terminator at the end of the list */
- DHCPOptionList[0] = Option;
- DHCPOptionList[1] = DataLen;
- memcpy(&DHCPOptionList[2], OptionData, DataLen);
- DHCPOptionList[2 + DataLen] = DHCP_OPTION_END;
-
- /* Calculate the total number of bytes added to the outgoing packet */
- return (2 + DataLen);
-}
-
-/** Retrieves the given option's data (if present) from the DHCP packet's options list.
- *
- * \param[in,out] DHCPOptionList Pointer to the start of the DHCP packet's options list
- * \param[in] Option DHCP option to retrieve to the list
- * \param[out] Destination Buffer where the option's data is to be written to if found
- *
- * \return Boolean \c true if the option was found in the DHCP packet's options list, \c false otherwise
- */
-bool DHCPCommon_GetOption(const uint8_t* DHCPOptionList,
- const uint8_t Option,
- void* const Destination)
-{
- /* Look through the incoming DHCP packet's options list for the requested option */
- while (*DHCPOptionList != DHCP_OPTION_END)
- {
- /* Check if the current DHCP option in the packet is the one requested */
- if (DHCPOptionList[0] == Option)
- {
- /* Copy request option's data to the destination buffer */
- memcpy(Destination, &DHCPOptionList[2], DHCPOptionList[1]);
-
- /* Indicate that the requested option data was successfully retrieved */
- return true;
- }
-
- /* Skip to next DHCP option in the options list */
- DHCPOptionList += (DHCPOptionList[1] + 2);
- }
-
- /* Requested option not found in the incoming packet's DHCP options list */
- return false;
-}
-
-#endif
-
diff --git a/lib/lufa/Projects/Webserver/Lib/DHCPCommon.h b/lib/lufa/Projects/Webserver/Lib/DHCPCommon.h
deleted file mode 100644
index 8f54c16717..0000000000
--- a/lib/lufa/Projects/Webserver/Lib/DHCPCommon.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * Header file for common DHCP defines.
- */
-
-#ifndef _DHCP_COMMON_H_
-#define _DHCP_COMMON_H_
-
- /* Includes: */
- #include <stdint.h>
- #include <stdbool.h>
- #include <string.h>
-
- #include "Config/AppConfig.h"
-
- #include <uip.h>
-
- /* Macros: */
- /** UDP listen port for a BOOTP server. */
- #define DHCP_SERVER_PORT 67
-
- /** UDP listen port for a BOOTP client. */
- #define DHCP_CLIENT_PORT 68
-
- /** BOOTP message type for a BOOTP REQUEST message. */
- #define DHCP_OP_BOOTREQUEST 0x01
-
- /** BOOTP message type for a BOOTP REPLY message. */
- #define DHCP_OP_BOOTREPLY 0x02
-
- /** 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. */
- #define DHCP_MAGIC_COOKIE 0x63538263
-
- /** Unique transaction ID used to identify DHCP responses to the client. */
- #define DHCP_TRANSACTION_ID 0x13245466
-
- /** DHCP message type for a DISCOVER message. */
- #define DHCP_DISCOVER 1
-
- /** DHCP message type for an OFFER message. */
- #define DHCP_OFFER 2
-
- /** DHCP message type for a REQUEST message. */
- #define DHCP_REQUEST 3
-
- /** DHCP message type for a DECLINE message. */
- #define DHCP_DECLINE 4
-
- /** DHCP message type for an ACK message. */
- #define DHCP_ACK 5
-
- /** DHCP message type for a NAK message. */
- #define DHCP_NAK 6
-
- /** DHCP message type for a RELEASE message. */
- #define DHCP_RELEASE 7
-
- /** DHCP medium type for standard Ethernet. */
- #define DHCP_HTYPE_ETHERNET 1
-
- /** DHCP message option for the network subnet mask. */
- #define DHCP_OPTION_SUBNET_MASK 1
-
- /** DHCP message option for the network gateway IP. */
- #define DHCP_OPTION_ROUTER 3
-
- /** DHCP message option for the network DNS server. */
- #define DHCP_OPTION_DNS_SERVER 6
-
- /** DHCP message option for the requested client IP address. */
- #define DHCP_OPTION_REQ_IPADDR 50
-
- /** DHCP message option for the IP address lease time. */
- #define DHCP_OPTION_LEASE_TIME 51
-
- /** DHCP message option for the DHCP message type. */
- #define DHCP_OPTION_MSG_TYPE 53
-
- /** 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. */
- #define DHCP_OPTION_REQ_LIST 55
-
- /** DHCP message option for the options list terminator. */
- #define DHCP_OPTION_END 255
-
- /* Type Defines: */
- /** Type define for a DHCP packet inside an Ethernet frame. */
- typedef struct
- {
- uint8_t Operation; /**< DHCP operation, either DHCP_OP_BOOTREQUEST or DHCP_OP_BOOTREPLY */
- uint8_t HardwareType; /**< Hardware carrier type constant */
- uint8_t HardwareAddressLength; /**< Length in bytes of a hardware (MAC) address on the network */
- uint8_t Hops; /**< Number of hops required to reach the server, unused */
-
- uint32_t TransactionID; /**< Unique ID of the DHCP packet, for positive matching between sent and received packets */
-
- 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 */
- } DHCP_Header_t;
-
- /* Function Prototypes: */
- uint8_t DHCPCommon_SetOption(uint8_t* DHCPOptionList,
- const uint8_t Option,
- const uint8_t DataLen,
- void* const OptionData);
- bool DHCPCommon_GetOption(const uint8_t* DHCPOptionList,
- const uint8_t Option,
- void* const Destination);
-
-#endif
-
diff --git a/lib/lufa/Projects/Webserver/Lib/DHCPServerApp.c b/lib/lufa/Projects/Webserver/Lib/DHCPServerApp.c
deleted file mode 100644
index fea54ddb0e..0000000000
--- a/lib/lufa/Projects/Webserver/Lib/DHCPServerApp.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * DHCP Server Application. When connected to the uIP stack, this will send IP configuration settings to a
- * DHCP client on the network.
- */
-
-#define INCLUDE_FROM_DHCPSERVERAPP_C
-#include "DHCPServerApp.h"
-
-#if defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
-
-struct uip_conn* BroadcastConnection;
-
-uint8_t LeasedIPs[255 / 8];
-
-/** Initialization function for the DHCP server. */
-void DHCPServerApp_Init(void)
-{
- /* Listen on port 67 for DHCP server connections from hosts */
- uip_listen(HTONS(DHCP_SERVER_PORT));
-
- /* Create a new UDP connection to the DHCP server port for the DHCP solicitation */
- struct uip_udp_conn* BroadcastConnection = uip_udp_new(&uip_broadcast_addr, HTONS(DHCP_CLIENT_PORT));
-
- /* If the connection was successfully created, bind it to the local DHCP client port */
- if (BroadcastConnection != NULL)
- uip_udp_bind(BroadcastConnection, HTONS(DHCP_SERVER_PORT));
-
- /* Set all IP addresses as unleased */
- memset(LeasedIPs, 0x00, sizeof(LeasedIPs));
-}
-
-/** uIP stack application callback for the DHCP server. This function must be called each time the TCP/IP stack
- * needs a UDP packet to be processed.
- */
-void DHCPServerApp_Callback(void)
-{
- DHCP_Header_t* const AppData = (DHCP_Header_t*)uip_appdata;
- uint16_t AppDataSize = 0;
-
- /* Only process when new data arrives - don't retransmit lost packets */
- if (uip_newdata())
- {
- /* Get the DHCP message type (if present), otherwise early-abort */
- uint8_t DHCPMessageType;
- if (!(DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_MSG_TYPE, &DHCPMessageType)))
- return;
-
- uip_ipaddr_t Netmask, GatewayIPAddress, PreferredClientIP;
- struct uip_eth_addr RemoteMACAddress;
- uint32_t TransactionID;
-
- /* Get configured network mask, gateway IP and extract out DHCP transaction ID and remote IP */
- uip_getnetmask(&Netmask);
- uip_getdraddr(&GatewayIPAddress);
- memcpy(&RemoteMACAddress, &AppData->ClientHardwareAddress, sizeof(struct uip_eth_addr));
- TransactionID = AppData->TransactionID;
-
- /* Try to extract out the client's preferred IP address if it is indicated in the packet */
- if (!(DHCPCommon_GetOption(AppData->Options, DHCP_OPTION_REQ_IPADDR, &PreferredClientIP)))
- memcpy(&PreferredClientIP, &uip_all_zeroes_addr, sizeof(uip_ipaddr_t));
-
- switch (DHCPMessageType)
- {
- case DHCP_DISCOVER:
- /* If no preference was made or the preferred IP is already taken, find a new address */
- if (DHCPServerApp_CheckIfIPLeased(&PreferredClientIP))
- DHCPServerApp_GetUnleasedIP(&PreferredClientIP);
-
- /* Create a new DHCP OFFER packet with the offered IP address */
- AppDataSize += DHCPServerApp_FillDHCPHeader(AppData, DHCP_OFFER, &RemoteMACAddress, &PreferredClientIP, TransactionID);
-
- /* Add network mask and router information to the list of DHCP OFFER packet options */
- AppDataSize += DHCPCommon_SetOption(AppData->Options, DHCP_OPTION_SUBNET_MASK,
- sizeof(uip_ipaddr_t), &Netmask);
- AppDataSize += DHCPCommon_SetOption(AppData->Options, DHCP_OPTION_ROUTER,
- sizeof(uip_ipaddr_t), &GatewayIPAddress);
-
- /* Send the DHCP OFFER packet */