tools/litex_server: set socket option flags separately (required for Mac OS X).

This commit is contained in:
Florent Kermarrec 2020-06-20 22:20:29 +02:00
parent efa41fd6bb
commit 13e0852af4
1 changed files with 4 additions and 6 deletions

View File

@ -26,13 +26,11 @@ class RemoteServer(EtherboneIPC):
def open(self): def open(self):
if hasattr(self, "socket"): if hasattr(self, "socket"):
return return
socket_flags = 0
if hasattr(socket, "SO_REUSEADDR"):
socket_flags = socket_flags | socket.SO_REUSEADDR
if hasattr(socket, "SO_REUSEPORT"):
socket_flags = socket_flags | socket.SO_REUSEPORT
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket_flags, 1) if hasattr(socket, "SO_REUSEADDR"):
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
if hasattr(socket, "SO_REUSEPORT"):
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
self.socket.bind((self.bind_ip, self.bind_port)) self.socket.bind((self.bind_ip, self.bind_port))
print("tcp port: {:d}".format(self.bind_port)) print("tcp port: {:d}".format(self.bind_port))
self.socket.listen(1) self.socket.listen(1)