This commit is contained in:
Nikolaj
2021-11-05 13:30:55 +01:00
parent 26ad1f8725
commit 57c3e9f626
7 changed files with 124538 additions and 27 deletions

View File

@ -48,7 +48,7 @@ class TrackerServer(socketserver.StreamRequestHandler):
if datalen != CMD_LENGTH:
self.respond_error(f'Data for command=1 must be of length {CMD_LENGTH}, got {datalen}')
return
data = self.request.recv(CMD_LENGTH)
if len(data) != CMD_LENGTH:
self.respond_error(f'Data from socket had length {len(data)}, expected {CMD_LENGTH}')
@ -78,7 +78,7 @@ class TrackerServer(socketserver.StreamRequestHandler):
# Avoid peers registering as good peers without approval
if is_good_client(data[32:36], self.goodips):
if str(ipaddress.IPv4Address(data[32:36])) == self.client_address[0]:
print("Registering a good client")
print(f"Registering a good client at {ipaddress.IPv4Address(data[32:36])}:{int.from_bytes(data[36:38],'big')}")
else:
self.respond_error(f'The IP reported to the tracker ({".".join([str(x) for x in data[32:36]])}) is a reserved IP')
return
@ -88,6 +88,7 @@ class TrackerServer(socketserver.StreamRequestHandler):
with self.lock:
self.active_clients[hashhex][ipportkey] = int(time.time())
print(f"Reporting clients to {ipaddress.IPv4Address(data[32:36])}:{int.from_bytes(data[36:38],'big')}")
self.report_clients(hash.hex(), ipportkey)
else: