Replace the LUFA build system with DMBS.
[pub/USBasp.git] / Demos / Device / ClassDriver / RNDISEthernet / Lib / DHCP.c
index 7b191b1..37f4e77 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2015.
+     Copyright (C) Dean Camera, 2016.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2015  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2016  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
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -95,12 +95,20 @@ int16_t DHCP_ProcessDHCPPacket(void* IPHeaderInStart,
                                                                                                                                                                                                : DHCP_MESSAGETYPE_ACK;
 
                                *(DHCPOptionsOUTStart++) = DHCP_OPTION_SUBNETMASK;
                                                                                                                                                                                                : DHCP_MESSAGETYPE_ACK;
 
                                *(DHCPOptionsOUTStart++) = DHCP_OPTION_SUBNETMASK;
-                               *(DHCPOptionsOUTStart++) = 4;
+                               *(DHCPOptionsOUTStart++) = sizeof(IP_Address_t);
                                *(DHCPOptionsOUTStart++) = 0xFF;
                                *(DHCPOptionsOUTStart++) = 0xFF;
                                *(DHCPOptionsOUTStart++) = 0xFF;
                                *(DHCPOptionsOUTStart++) = 0x00;
 
                                *(DHCPOptionsOUTStart++) = 0xFF;
                                *(DHCPOptionsOUTStart++) = 0xFF;
                                *(DHCPOptionsOUTStart++) = 0xFF;
                                *(DHCPOptionsOUTStart++) = 0x00;
 
+                               *(DHCPOptionsOUTStart++) = DHCP_OPTION_LEASETIME;
+                               *(DHCPOptionsOUTStart++) = sizeof(uint32_t);
+                               /* Lease Time 86400s (ONE_DAY) */
+                               *(DHCPOptionsOUTStart++) = 0x00;
+                               *(DHCPOptionsOUTStart++) = 0x01;
+                               *(DHCPOptionsOUTStart++) = 0x51;
+                               *(DHCPOptionsOUTStart++) = 0x80;
+
                                *(DHCPOptionsOUTStart++) = DHCP_OPTION_DHCPSERVER;
                                *(DHCPOptionsOUTStart++) = sizeof(IP_Address_t);
                                memcpy(DHCPOptionsOUTStart, &ServerIPAddress, sizeof(IP_Address_t));
                                *(DHCPOptionsOUTStart++) = DHCP_OPTION_DHCPSERVER;
                                *(DHCPOptionsOUTStart++) = sizeof(IP_Address_t);
                                memcpy(DHCPOptionsOUTStart, &ServerIPAddress, sizeof(IP_Address_t));
@@ -108,7 +116,7 @@ int16_t DHCP_ProcessDHCPPacket(void* IPHeaderInStart,
 
                                *(DHCPOptionsOUTStart++) = DHCP_OPTION_END;
 
 
                                *(DHCPOptionsOUTStart++) = DHCP_OPTION_END;
 
-                               return (sizeof(DHCP_Header_t) + 12 + sizeof(IP_Address_t));
+                               return (sizeof(DHCP_Header_t) + 18 + sizeof(IP_Address_t));
                        }
                }
 
                        }
                }