From d002c7c4b85efa2a5bb63c4daadf3a2b2139b743 Mon Sep 17 00:00:00 2001 From: Patryk Prejs Date: Fri, 17 Jun 2022 14:59:36 +0100 Subject: [PATCH 1/3] Removed run_peer_service_forever function --- peercrawler.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/peercrawler.py b/peercrawler.py index 344979f..9e33b78 100755 --- a/peercrawler.py +++ b/peercrawler.py @@ -390,24 +390,6 @@ def spawn_peer_crawler_thread(ctx, forever, delay, verbosity): return t -def run_peer_service_forever(peerman, addr='', port=7070): - with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s: - s.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - s.bind((addr, port)) - s.listen() - - while True: - conn, addr = s.accept() - with conn: - conn.settimeout(10) - hdr = peer_service_header(peerman.ctx["net_id"], peerman.count_good_peers(), peerman.count_peers()) - data = hdr.serialise() - json_list = jsonpickle.encode(peerman.get_peers_as_list()) - data += json_list.encode() - conn.sendall(data) - - def get_peers_from_service(ctx, addr='::ffff:78.46.80.199'): with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s: s.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) @@ -532,7 +514,7 @@ def main(): if args.service: verbosity = args.verbosity if (args.verbosity is not None) else 0 crawler_thread = spawn_peer_crawler_thread(ctx, True, args.delay, verbosity) - run_peer_service_forever(crawler_thread.peerman, port=args.port) + crawler_thread.join() else: verbosity = args.verbosity if (args.verbosity is not None) else 1 peerman = peer_manager(ctx, listen=(not args.nolisten), verbosity=verbosity) From ca6f5454640cc963096bff2edea387355c40364e Mon Sep 17 00:00:00 2001 From: Patryk Prejs Date: Sat, 18 Jun 2022 18:26:59 +0100 Subject: [PATCH 2/3] Removed port argument from script --- peercrawler.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/peercrawler.py b/peercrawler.py index 9e33b78..af323a4 100755 --- a/peercrawler.py +++ b/peercrawler.py @@ -321,8 +321,6 @@ def parse_args(): help='run peer crawler as a service') parser.add_argument('-l', '--nolisten', action='store_true', default=False, help='listen to incoming connections') - parser.add_argument('-p', '--port', type=int, default=7070, - help='tcp port number to listen on in service mode') return parser.parse_args() From 8709529aba7d70665aca2f82f477655cdad42348 Mon Sep 17 00:00:00 2001 From: Patryk Prejs Date: Sat, 18 Jun 2022 18:27:52 +0100 Subject: [PATCH 3/3] Removed peer_service_header --- peercrawler.py | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/peercrawler.py b/peercrawler.py index af323a4..356fdcc 100755 --- a/peercrawler.py +++ b/peercrawler.py @@ -324,50 +324,6 @@ def parse_args(): return parser.parse_args() -class peer_service_header: - size = 124 - - def __init__(self, net_id, good_peers, total_peers, software_ver="devel", protocol_ver=3): - self.magic = b'PEER' - assert (isinstance(net_id, network_id)) - assert (isinstance(software_ver, str)) - self.net_id = net_id - self.good_peers = good_peers - self.total_peers = total_peers - self.software_ver = software_ver - self.protocol_ver = protocol_ver - - def serialise(self): - data = self.magic - data += self.net_id.id.to_bytes(1, "big") - data += self.protocol_ver.to_bytes(3, "big") - data += self.good_peers.to_bytes(8, "big") - data += self.total_peers.to_bytes(8, "big") - data += string_to_bytes(self.software_ver, 100) - return data - - @classmethod - def parse(cls, data): - assert (len(data) == peer_service_header.size) - assert (data[0:4] == b'PEER') - return peer_service_header( - net_id=network_id(data[4]), - protocol_ver=int.from_bytes(data[5:8], "big"), - good_peers=int.from_bytes(data[8:16], "big"), - total_peers=int.from_bytes(data[16:24], "big"), - software_ver=data[24:].decode("utf-8") - ) - - def __str__(self): - s = '' - s += 'NetID: %s\n' % self.net_id - s += 'GoodPeers: %s\n' % self.good_peers - s += 'TotalPeers: %s\n' % self.total_peers - s += 'ProtoVers: %s\n' % self.protocol_ver - s += 'SwVers: %s' % self.software_ver - return s - - class peer_crawler_thread(threading.Thread): def __init__(self, ctx, forever, delay, verbosity=0): threading.Thread.__init__(self, daemon=True)