Helmut Tschemernjak / WIZnetInterface

Fork of WIZnetInterface by WIZnet

Revision:
35:fe3028eda085
Parent:
0:6f28332c466f
Child:
36:0ba2e8d5274a
diff -r 7d44648ec5f2 -r fe3028eda085 Socket/DHCPClient.h
--- a/Socket/DHCPClient.h	Mon Oct 09 19:58:19 2017 +0200
+++ b/Socket/DHCPClient.h	Tue Oct 10 20:56:13 2017 +0200
@@ -11,6 +11,9 @@
 #define DHCP_OFFSET_OPTIONS 240
 #define DHCP_MAX_PACKET_SIZE 600
 
+#define DHCP_SERVER_PORT 67
+#define DHCP_CLIENT_PORT 68
+
 // DHCP Message Type
 #define DHCPDISCOVER 1
 #define DHCPOFFER    2
@@ -20,17 +23,76 @@
 #define DHCPNAK      6
 #define DHCPRELEASE  7
 #define DHCPINFORM   8
+#define DHCP_MAGIC_COOKIE	0x63825363
+#define OPT_PAD				0
+#define OPT_SUBNET_MASK			1
+#define OPT_TIME_OFFSET			2
+#define OPT_ROUTER			3
+#define OPT_TIME_SERVER			4
+#define OPT_IEN116_NAME_SERVER		5
+#define OPT_DNS				6
+#define OPT_LOG_SERVER			7
+#define OPT_COOKIE_SERVER		8
+#define OPT_LPR_SERVER			9
+#define OPT_IMPRESS_SERVER		10
+#define OPT_RESOURCE_LOC_SERVER		11
+#define OPT_HOSTNAME			12
+#define OPT_BOOTFILE_SIZE		13
+#define OPT_MERIT_DUMP			14
+#define OPT_DOMAIN_NAME			15
+#define OPT_SWAP_SERVER			16
+#define OPT_ROOT_PATH			17
+#define OPT_EXTENSIONS_PATH		18
+#define OPT_IP_FORWARDING		19
+#define OPT_NONLOCAL_SOURCE_ROUTING	20
+#define OPT_POLICY_FILTER		21
+#define OPT_MAX_DATAGRAM_REASS	22
+#define OPT_DEFAULT_IP_TTL		23
+#define OPT_PATH_MTU_AGING_TIMEOUT	24
+#define OPT_PATH_MTU_PLATEAU_TABLE	25
+#define OPT_INTERFACE_MTU		26
+#define OPT_ALL_SUBNETS_ARE_LOCAL	27
+#define OPT_BROADCAST_ADDR		28
+#define OPT_STATIC_ROUTE		33
+#define OPT_VENDOR			43
+#define OPT_NETBIOS_NAME_SERVER	44
+#define OPT_NETBIOS_DATA_DIST	45
+#define OPT_NETBIOS_NODE_TYPE	46
+#define OPT_NETBIOS_SCOPE		47
+#define OPT_IP_ADDR_REQ			50
+#define OPT_ADDR_LEASE_TIME		51
+#define OPT_DHCP_MESSAGE		53
+#define OPT_SERVER_IDENT		54
+#define OPT_PARAMETER_REQ		55
+#define OPT_RENEWAL_TIME		58
+#define OPT_REBINDING_TIME		59
+#define OPT_CLIENT_IDENT		61
+#define OPT_TFTP_SERVER_NAME		66
+#define OPT_BOOTFILE_NAME		67
+#define OPT_LDAP_URL			95	/* from draft RFC */
+#define OPT_DOMAIN_SEARCH		119	/* from draft RFC 3397 */
+
+/* site specific options */
+#define SITE_HD				252
+#define SITE_BF				253
+#define SITE_SA				254
+#define OPT_END				255
 
 class DHCPClient {
 public:
     DHCPClient();
+    ~DHCPClient();
     int setup(int timeout_ms = 15*1000);
     uint8_t chaddr[6]; // MAC
     uint8_t yiaddr[4]; // IP
+    uint8_t siaddr[4]; // DHCP server
     uint8_t dnsaddr[4]; // DNS
     uint8_t gateway[4];
     uint8_t netmask[4];
-    uint8_t siaddr[4];
+    uint8_t timesrv[4];
+    uint8_t leaseTime[4];
+    char *domainName;
+   
 private:
     int discover();
     int request();