@@ -12,6 +12,9 @@ func TestDhcpDiscover(t *testing.T) {
12
12
pool .Start = net .ParseIP ("10.0.0.10" )
13
13
pool .End = net .ParseIP ("10.0.0.20" )
14
14
pool .Netmask = net .ParseIP ("255.255.255.0" )
15
+ pool .Router = []net.IP {net .ParseIP ("10.0.0.1" )}
16
+ pool .MyIp = IpToFixedV4 (net .ParseIP ("10.0.0.254" ))
17
+ pool .Dns = []net.IP {net .ParseIP ("1.1.1.1" ), net .ParseIP ("1.0.0.1" )}
15
18
16
19
//
17
20
// DHCPREQUEST targeting an unknown lease. Should get a NAK back
@@ -28,7 +31,8 @@ func TestDhcpDiscover(t *testing.T) {
28
31
handler := NewRequestHandler (message , pool )
29
32
response := handler .Handle ()
30
33
31
- require .Equal (t , byte (DHCPNAK ), response .Options .GetByte (OPTION_MESSAGE_TYPE ))
34
+ require .Equal (t , BOOT_REPLY , response .Header .Op )
35
+ require .Equal (t , DHCPNAK , response .Options .GetByte (OPTION_MESSAGE_TYPE ))
32
36
33
37
//
34
38
// DISCOVER. Should get back a lease.
@@ -39,14 +43,20 @@ func TestDhcpDiscover(t *testing.T) {
39
43
40
44
message , err = ParseDhcpMessage (b )
41
45
require .Nil (t , err )
42
- require .Equal (t , byte ( DHCPDISCOVER ) , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
46
+ require .Equal (t , DHCPDISCOVER , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
43
47
44
48
handler = NewRequestHandler (message , pool )
45
49
response = handler .Handle ()
46
50
47
- require .Equal (t , byte (DHCPOFFER ), response .Options .GetByte (OPTION_MESSAGE_TYPE ))
51
+ require .Equal (t , BOOT_REPLY , response .Header .Op )
52
+ require .Equal (t , DHCPOFFER , response .Options .GetByte (OPTION_MESSAGE_TYPE ))
48
53
require .Equal (t , IpToFixedV4 (net .ParseIP ("10.0.0.10" )), response .Header .YourAddr )
49
54
55
+ require .Equal (t , []FixedV4 {IpToFixedV4 (net .ParseIP ("255.255.255.0" ))}, response .Options .GetFixedV4s (OPTION_SUBNET ))
56
+ require .Equal (t , []FixedV4 {IpToFixedV4 (net .ParseIP ("10.0.0.1" ))}, response .Options .GetFixedV4s (OPTION_ROUTER ))
57
+ require .Equal (t , []FixedV4 {IpToFixedV4 (net .ParseIP ("1.1.1.1" )), IpToFixedV4 (net .ParseIP ("1.0.0.1" ))}, response .Options .GetFixedV4s (OPTION_DNS_SERVER ))
58
+ require .Equal (t , []FixedV4 {IpToFixedV4 (net .ParseIP ("10.0.0.254" ))}, response .Options .GetFixedV4s (OPTION_SERVER_ID ))
59
+
50
60
// Pool should have a lease for this mac
51
61
lease , ok := pool .TouchLeaseByMac (message .Header .Mac )
52
62
require .True (t , ok )
@@ -61,12 +71,13 @@ func TestDhcpDiscover(t *testing.T) {
61
71
62
72
message , err = ParseDhcpMessage (b )
63
73
require .Nil (t , err )
64
- require .Equal (t , byte (DHCPREQUEST ), message .Options .GetByte (OPTION_MESSAGE_TYPE ))
74
+ require .Equal (t , BOOT_REPLY , response .Header .Op )
75
+ require .Equal (t , DHCPREQUEST , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
65
76
66
77
handler = NewRequestHandler (message , pool )
67
78
response = handler .Handle ()
68
79
69
- require .Equal (t , byte ( DHCPNAK ) , response .Options .GetByte (OPTION_MESSAGE_TYPE ))
80
+ require .Equal (t , DHCPNAK , response .Options .GetByte (OPTION_MESSAGE_TYPE ))
70
81
71
82
//
72
83
// A request should now get back an ACK
@@ -77,12 +88,13 @@ func TestDhcpDiscover(t *testing.T) {
77
88
78
89
message , err = ParseDhcpMessage (b )
79
90
require .Nil (t , err )
80
- require .Equal (t , byte ( DHCPREQUEST ) , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
91
+ require .Equal (t , DHCPREQUEST , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
81
92
82
93
handler = NewRequestHandler (message , pool )
83
94
response = handler .Handle ()
84
95
85
- require .Equal (t , byte (DHCPACK ), response .Options .GetByte (OPTION_MESSAGE_TYPE ))
96
+ require .Equal (t , BOOT_REPLY , response .Header .Op )
97
+ require .Equal (t , DHCPACK , response .Options .GetByte (OPTION_MESSAGE_TYPE ))
86
98
87
99
//
88
100
// Do a DHCPRELEASE
@@ -93,7 +105,7 @@ func TestDhcpDiscover(t *testing.T) {
93
105
94
106
message , err = ParseDhcpMessage (b )
95
107
require .Nil (t , err )
96
- require .Equal (t , byte ( DHCPRELEASE ) , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
108
+ require .Equal (t , DHCPRELEASE , message .Options .GetByte (OPTION_MESSAGE_TYPE ))
97
109
98
110
handler = NewRequestHandler (message , pool )
99
111
response = handler .Handle ()
0 commit comments