~cadence/bibliogram

c2df6d696b15a20fb68b5ad2356a43b0aebae29e — Cadence Ember 1 year, 4 months ago 1872391
Only build new circuits when really needed
1 files changed, 7 insertions(+), 1 deletions(-)

M src/lib/utils/tor.js
M src/lib/utils/tor.js => src/lib/utils/tor.js +7 -1
@@ 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