Skip to content

Commit a5a6d60

Browse files
author
BiffoBear
committed
Move close UDP port to _handle_dhcp_message.
1 parent ba001b7 commit a5a6d60

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

adafruit_wiznet5k/adafruit_wiznet5k_dhcp.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ def _dsm_reset(self) -> None:
196196
"""Close the socket and set attributes to default values used by the
197197
state machine INIT state."""
198198
debug_msg("Resetting DHCP state machine.", self._debug)
199-
self._socket_release()
200199
self.dhcp_server_ip = _BROADCAST_SERVER_ADDR
201200
self._eth.ifconfig = (
202201
_UNASSIGNED_IP_ADDR,
@@ -215,7 +214,7 @@ def _dsm_reset(self) -> None:
215214
def _socket_release(self) -> None:
216215
"""Close the socket if it exists."""
217216
debug_msg("Releasing socket.", self._debug)
218-
if self._wiz_sock:
217+
if self._wiz_sock is not None:
219218
self._eth.socket_close(self._wiz_sock)
220219
self._wiz_sock = None
221220
debug_msg(" Socket released.", self._debug)
@@ -386,12 +385,16 @@ def _handle_dhcp_message(self) -> int:
386385
return msg_type_in
387386
except ValueError as error:
388387
debug_msg(error, self._debug)
388+
finally:
389+
self._socket_release()
389390
if not self._blocking or self._renew:
390391
debug_msg(
391392
"No message, FSM is nonblocking or renewing, exiting loop.",
392393
self._debug,
393394
)
395+
self._socket_release()
394396
return 0 # Did not receive a response in a single attempt.
397+
self._socket_release()
395398
raise TimeoutError(
396399
"No response from DHCP server after {} retries.".format(attempt)
397400
)
@@ -409,7 +412,6 @@ def _dhcp_state_machine(self, *, blocking: bool = False) -> None:
409412
now = time.monotonic()
410413
if now < self._t1:
411414
debug_msg("No timers have expired. Exiting FSM.", self._debug)
412-
self._socket_release()
413415
return
414416
if now > self._lease:
415417
debug_msg(

0 commit comments

Comments
 (0)