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