Only build new circuits when really needed

This commit is contained in:
Cadence Ember 2022-08-02 19:58:52 +12:00
parent 1872391a8e
commit c2df6d696b
No known key found for this signature in database
GPG Key ID: BC1C2C61CF521B17
1 changed files with 7 additions and 1 deletions

View File

@ -4,6 +4,8 @@ const constants = require("../constants")
const {request} = require("./request") const {request} = require("./request")
const {RequestCache} = require("../cache") const {RequestCache} = require("../cache")
let circuitIndex = 0
class TorManager { class TorManager {
/** /**
* @param {import("@deadcanaries/granax/lib/controller")} tor * @param {import("@deadcanaries/granax/lib/controller")} tor
@ -20,12 +22,16 @@ class TorManager {
let done = false let done = false
let g let g
while (!done) { while (!done) {
const circuitIndexUsed = circuitIndex
g = await request(url, {agent: this.agent}, {log: true, statusLine: "TOR"}) g = await request(url, {agent: this.agent}, {log: true, statusLine: "TOR"})
try { try {
await g.check(test) await g.check(test)
break break
} catch (e) { } catch (e) {
await this.newCircuit() if (circuitIndexUsed === circuitIndex) {
circuitIndex++
await this.newCircuit()
}
} }
} }
return g return g