Skip to content

Commit 82277ca

Browse files
author
BiffoBear
committed
Increased buffer to 512 bytes due to long DHCP response. Fixed timeout bug.
1 parent 549ca5b commit 82277ca

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

adafruit_wiznet5k/adafruit_wiznet5k_dhcp.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
_OPT_END = const(255)
8585

8686
# Packet buffer
87-
_BUFF_LENGTH = 318
87+
_BUFF_LENGTH = 512
8888
_BUFF = bytearray(_BUFF_LENGTH)
8989

9090

@@ -303,7 +303,8 @@ def _receive_dhcp_response(self, timeout: float) -> int:
303303
buffer = bytearray(b"")
304304
bytes_read = 0
305305
debug_msg("+ Beginning to receive…", self._debug)
306-
while bytes_read <= minimum_packet_length and time.monotonic() < timeout:
306+
timeout += time.monotonic()
307+
while bytes_read < minimum_packet_length and time.monotonic() < timeout:
307308
if self._eth.socket_available(self._wiz_sock, _SNMR_UDP):
308309
x = self._eth.read_udp(self._wiz_sock, _BUFF_LENGTH - bytes_read)[1]
309310
buffer.extend(x)
@@ -612,12 +613,18 @@ def option_reader(pointer: int) -> Tuple[int, int, bytes]:
612613
:returns Tuple[int, int, bytes]: Pointer to next option,
613614
option type, and option data.
614615
"""
616+
# debug_msg("initial pointer = {}".format(pointer), self._debug)
615617
option_type = _BUFF[pointer]
618+
# debug_msg("option type = {}".format(option_type), self._debug)
616619
pointer += 1
617620
data_length = _BUFF[pointer]
621+
# debug_msg("data length = {}".format(data_length), self._debug)
618622
pointer += 1
619623
data_end = pointer + data_length
624+
# debug_msg("data end = {}".format(data_end), self._debug)
620625
option_data = bytes(_BUFF[pointer:data_end])
626+
# debug_msg(option_data, self._debug)
627+
# debug_msg("Final pointer = {}".format(pointer), self._debug)
621628
return data_end, option_type, option_data
622629

623630
debug_msg("Parsing DHCP message.", self._debug)

0 commit comments

Comments
 (0)