Skip to content

Commit 2e68d0c

Browse files
authored
Merge pull request #17 from wildekat/main
bugfixes (#16), code cleanup
2 parents b072ff2 + 480e2cf commit 2e68d0c

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

src/tor_relay_scanner/scanner.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,12 @@ def start_browser():
124124

125125

126126
def str_list_with_prefix(prefix, list_):
127-
return "\n".join([prefix + r for r in list_])
127+
return "\n".join(prefix + r for r in list_)
128+
129+
130+
def chunked_list(l, size):
131+
for i in range(0, len(l), size):
132+
yield l[i:i+size]
128133

129134

130135
async def main_async(args):
@@ -168,42 +173,35 @@ async def main_async(args):
168173
relays_new.append(relay_copy)
169174
relays = relays_new
170175
if not relays:
171-
print("There are no relays within specified port number constrains!", file=sys.stderr)
176+
print("There are no relays within specified port number constraints!", file=sys.stderr)
172177
print("Try changing port numbers.", file=sys.stderr)
173178
return 2
174179

175180
working_relays = list()
176-
ntry = 0
177-
relaypos = 0
178-
numtries = round(len(relays) / NUM_RELAYS)
179-
for ntry in range(numtries):
181+
numtries = (len(relays) + NUM_RELAYS - 1) // NUM_RELAYS
182+
for ntry, chunk in enumerate(chunked_list(relays, NUM_RELAYS)):
180183
if len(working_relays) >= WORKING_RELAY_NUM_GOAL:
181184
break
182185

183-
relaynum = min(NUM_RELAYS, len(relays) - relaypos - 1)
184-
test_relays = [TorRelay(relays[x])
185-
for x in range(relaypos, relaypos+relaynum)]
186-
relaypos += NUM_RELAYS
187-
188-
if not test_relays:
189-
break
186+
relaynum = len(chunk)
187+
test_relays = [TorRelay(r) for r in chunk]
190188

191189
print(
192-
f"\nTry {ntry}/{numtries}, We'll test the following {NUM_RELAYS} random relays:", file=sys.stderr)
190+
f"\nTry {ntry+1}/{numtries}, We'll test the following {relaynum} random relays:", file=sys.stderr)
193191
for relay in test_relays:
194192
print(relay, file=sys.stderr)
195-
print("", file=sys.stderr)
193+
print(file=sys.stderr)
196194

197195
if ntry:
198-
print(f"Found {len(working_relays)} good relays so far. Test {ntry}/{numtries} started…", file=sys.stderr)
196+
print(f"Found {len(working_relays)} good relays so far. Test {ntry+1}/{numtries} started…", file=sys.stderr)
199197
else:
200198
print(f"Test started…", file=sys.stderr)
201199

202200
tasks = list()
203201
for relay in test_relays:
204202
tasks.append(asyncio.create_task(relay.check(TIMEOUT)))
205203
fin = await asyncio.gather(*tasks)
206-
print("", file=sys.stderr)
204+
print(file=sys.stderr)
207205

208206
print("The following relays are reachable this try:", file=sys.stderr)
209207
for relay in test_relays:
@@ -216,7 +214,7 @@ async def main_async(args):
216214
print("No relays are reachable this try.", file=sys.stderr)
217215

218216
if ntry > 1:
219-
print("", file=sys.stderr)
217+
print(file=sys.stderr)
220218
print("All reachable relays:", file=sys.stderr)
221219
for relay in working_relays:
222220
if relay:

0 commit comments

Comments
 (0)