def run(): global log parseOpts() logger.create_logger("torcheck", level = logger.NOTICE, stdout = True, file = config['log_file'], ) log = logger.get_logger("torcheck") update_elist() reactor.listenTCP(config['listen_port'], server.Site(WebResource( use_forwarded_header=config['use_forwarded_header'] )), interface=config['listen_address']) try: log.debug("Loaded Twisted server (exit list has %d routers).", len(elist.cache_id)) reactor.run() finally: log.notice("Exiting...") if update_timer: update_timer.cancel()
from datetime import datetime from calendar import timegm from zope.interface import implements from twisted.names import server, dns, common, error from twisted.internet import reactor, interfaces, defer from twisted.python import failure from torbel.dnsel import config from torbel.query import ExitList from torbel.utils import * from torbel import logger from ipaddr import IPAddress log = logger.create_logger("tordnsel", logger.DEBUG) nxdomain = error.DomainError class TorDNSServerFactory(server.DNSServerFactory): def __init__(self, zone, filename, status, *args, **kwargs): server.DNSServerFactory.__init__(self, *args, **kwargs) self.el = ExitList(filename, status) if self.el.stale: log.info("Export %s likely stale.", filename) # Set up updates. nextUpdate = timegm(self.el.next_update.timetuple()) - time.time() if nextUpdate > 0: log.debug("Scheduling first update in %.1f seconds.", nextUpdate)
import socket, struct, signal, errno import time, random import threading from TorCtl import TorCtl from twisted.internet import error, defer from twisted.names import client from torbel import logger, controller from torbel.utils import config_check, ConfigurationError from torbel.query import ExitList from ipaddr import IPAddress config = controller.config log = logger.create_logger("torbelTests", config.log_level) # HACK FIXME create reactor per-application reactor = controller.reactor dnsel_zone = "exitlist.torproject.org" local_zone = "dnsel.torproject.org" match = 0 mismatch = 0 # TorDNSEL vs. TorBEL consistency checker. # # The consistency checker updates to the latest TorBEL export # available on the local system and expects a local TorBEL # implementation of the DNSEL to be running. The checker takes a list # of IP addresses, generated from addresses outside of the Tor network