Skip to content

Commit e0b3d23

Browse files
author
brentru
committed
remove cruft, new impl
1 parent ec49329 commit e0b3d23

File tree

1 file changed

+12
-43
lines changed

1 file changed

+12
-43
lines changed

adafruit_wiznet5k/adafruit_wiznet5k_dhcp.py

Lines changed: 12 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def send_dhcp_message(self, state, time_elapsed):
228228
# Send DHCP packet
229229
self._sock.send(_BUFF)
230230

231-
def parse_dhcp_response(self, response_timeout):
231+
def parse_dhcp_response(self, response_timeout): # pylint: disable=too-many-branches, too-many-statements
232232
"""Parse DHCP response from DHCP server.
233233
Returns DHCP packet type.
234234
@@ -243,107 +243,77 @@ def parse_dhcp_response(self, response_timeout):
243243
time.sleep(0.05)
244244
# store packet in buffer
245245
_BUFF = self._sock.recv()
246-
# _BUFF = b'\x02\x01\x06\x00\x00\x00\x05\x0e\x00\x00\x80\x00\x00\x00\x00\x00\n\x00\x010\x00\x00\x00\x00\x00\x00\x00\x00\xde\xad\xbe\xef\xfe\xed\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00c\x82Sc5\x01\x056\x04\n\x00\x01\x013\x04\x00\x00\xa8\xc0\x01\x04\xff\xff\xff\x00\x03\x04\n\x00\x01\x01\x06\x04\n\x00\x01\x01\x0f\x10fios-router.home:\x04\x00\x00T`;\x04\x00\x00\x93\xa8\xff'
247246
if self._debug:
248247
print("DHCP Response: ", _BUFF)
249248

250-
# Check OP, if valid, let's parse the packet out!
249+
# -- Parse Packet, FIXED -- #
250+
# Validate OP
251251
assert _BUFF[0] == DHCP_BOOT_REPLY, "Malformed Packet - \
252252
DHCP message OP is not expected BOOT Reply."
253253

254-
# Parse out FIXED portion of DHCP packet
255-
op = _BUFF[0]
256-
htype = _BUFF[1]
257-
hlen = _BUFF[2]
258-
hops = _BUFF[3]
259254
xid = _BUFF[4:8]
260-
if bytes(_BUFF[4:8]) < self._initial_xid:
261-
print("yes")
262-
#return 0, 0
255+
if bytes(xid) < self._initial_xid:
256+
return 0, 0
263257

264-
265-
secs = _BUFF[8:10]
266-
flags = _BUFF[10:12]
267-
ciaddr = _BUFF[12:16]
268-
269-
self.local_ip = _BUFF[16:20]
270-
self.gateway_ip = _BUFF[24:28]
271-
yiaddr = _BUFF[16:20]
272-
siaddr = _BUFF[20:24]
273-
giaddr = _BUFF[24:28]
258+
self.local_ip = _BUFF[16:20]
274259
if _BUFF[28:34] == 0:
275-
print("no")
276-
#return 0, 0
260+
return 0, 0
277261

278262
if int.from_bytes(_BUFF[235:240], 'l') != MAGIC_COOKIE:
279-
print("NO!")
280-
#return 0, 0
281-
263+
return 0, 0
282264

283-
# Parse out VARIABLE options
284-
print('Remaining Option Len: ', len(_BUFF[240:]))
285-
print(_BUFF[240:])
265+
# -- Parse Packet, VARIABLE -- #
286266
ptr = 240
287267
buff_remaining = len(_BUFF[240:])
288268
while buff_remaining > 0:
289-
print("reading..", ptr)
290-
print('byte: ', _BUFF[ptr])
291269
if _BUFF[ptr] == MSG_TYPE:
292270
ptr += 1
293271
opt_len = _BUFF[ptr]
294272
ptr += opt_len
295273
msg_type = _BUFF[ptr]
296274
ptr += 1
297-
print("MSG TYPE: ", msg_type)
298275
elif _BUFF[ptr] == SUBNET_MASK:
299276
ptr += 1
300277
opt_len = _BUFF[ptr]
301278
ptr += 1
302279
self.subnet_mask = _BUFF[ptr:ptr+opt_len]
303280
ptr += opt_len
304-
print("SUBNET MASK: ", self.subnet_mask)
305281
elif _BUFF[ptr] == DHCP_SERVER_ID:
306282
ptr += 1
307283
opt_len = _BUFF[ptr]
308284
ptr += 1
309285
self.dhcp_server_ip = _BUFF[ptr:ptr+opt_len]
310286
ptr += opt_len
311-
print("DHCP SERVER ID: ", self.dhcp_server_ip)
312287
elif _BUFF[ptr] == LEASE_TIME:
313288
ptr += 1
314289
opt_len = _BUFF[ptr]
315290
ptr += 1
316-
self._lease_time = int.from_bytes(_BUFF[ptr:ptr+opt_len], 'l')
291+
self._lease_time = int.from_bytes(_BUFF[ptr:ptr+opt_len], 'l')
317292
ptr += opt_len
318-
print("Lease Time: ", self._lease_time)
319293
elif _BUFF[ptr] == ROUTERS_ON_SUBNET:
320294
ptr += 1
321295
opt_len = _BUFF[ptr]
322296
ptr += 1
323-
gateway_ip = _BUFF[ptr:ptr+opt_len]
297+
self.gateway_ip = _BUFF[ptr:ptr+opt_len]
324298
ptr += opt_len
325-
print("gateway_ip: ", gateway_ip)
326299
elif _BUFF[ptr] == DNS_SERVERS:
327300
ptr += 2 # move past length
328301
# NOTE: we're only using the first DNS server
329302
opt_len = _BUFF[ptr]
330303
self.dns_server_ip = _BUFF[ptr:ptr+4]
331304
ptr += opt_len # still increment even though we only read 1 addr.
332-
print("dns_server: ", self.dns_server_ip)
333305
elif _BUFF[ptr] == T1_VAL:
334306
ptr += 1
335307
opt_len = _BUFF[ptr]
336308
ptr += 1
337309
self._t1 = int.from_bytes(_BUFF[ptr:ptr+opt_len], 'l')
338310
ptr += opt_len
339-
print("t1: ", self._t1)
340311
elif _BUFF[ptr] == T2_VAL:
341312
ptr += 1
342313
opt_len = _BUFF[ptr]
343314
ptr += 1
344315
self._t2 = int.from_bytes(_BUFF[ptr:ptr+opt_len], 'l')
345316
ptr += opt_len
346-
print("t2: ", self._t2)
347317
elif _BUFF[ptr] == OPT_END:
348318
break
349319
else:
@@ -354,12 +324,11 @@ def parse_dhcp_response(self, response_timeout):
354324
# no-op
355325
ptr += opt_len
356326
buff_remaining = ptr - buff_remaining
357-
print('remaining: ', buff_remaining)
358327

359328
gc.collect()
360329
return msg_type, xid
361330

362-
def request_dhcp_lease(self):
331+
def request_dhcp_lease(self): # pylint: disable=too-many-branches
363332
"""Request to renew or acquire a DHCP lease.
364333
365334
"""

0 commit comments

Comments
 (0)