Skip to content

Commit 6944481

Browse files
committed
Added reuse behaviour for CPython
1 parent 8d55322 commit 6944481

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

adafruit_httpserver/server.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,15 @@ def start(self, host: str, port: int = 80) -> None:
210210
self._sock = self._socket_source.socket(
211211
self._socket_source.AF_INET, self._socket_source.SOCK_STREAM
212212
)
213-
self._sock.bind((host, port))
214-
self._sock.listen(10)
215-
self._sock.setblocking(False) # Non-blocking socket
213+
try:
214+
# Only for CPython, prevents "Address already in use" error
215+
self._sock.setsockopt(
216+
self._socket_source.SOL_SOCKET, self._socket_source.SO_REUSEADDR, 1
217+
)
218+
finally:
219+
self._sock.bind((host, port))
220+
self._sock.listen(10)
221+
self._sock.setblocking(False) # Non-blocking socket
216222

217223
if self.debug:
218224
_debug_started_server(self)

0 commit comments

Comments
 (0)