Exemple #1
0
 def connectionMade(self):
     peer = self.transport.getPeer()
     log.debug("Connected to dispatcher at %s:%d" % (peer.host, peer.port))
     if RelayConfig.passport is not None:
         peer_cert = self.transport.getPeerCertificate()
         if not RelayConfig.passport.accept(peer_cert):
             self.transport.loseConnection(CertificateSecurityError('peer certificate not accepted'))
     self._connection_watcher = RecurrentCall(RelayConfig.keepalive_interval, self._send_keepalive)
Exemple #2
0
 def __init__(self, relay, start_port, end_port):
     self.relay = relay
     self.ports = deque((i, i + 1) for i in xrange(start_port, end_port, 2))
     self.bad_ports = deque()
     self.sessions = {}
     self.watcher = _conntrack.ExpireWatcher()
     self.active_byte_counter = 0  # relayed byte counter for sessions active during last speed measurement
     self.closed_byte_counter = 0  # relayed byte counter for sessions closed after last speed measurement
     self.bps_relayed = 0
     if RelayConfig.traffic_sampling_period > 0:
         self.speed_calculator = RecurrentCall(
             RelayConfig.traffic_sampling_period, self._measure_speed)
     else:
         self.speed_calculator = None
     reactor.addReader(self)
Exemple #3
0
 def __init__(self, dispatcher):
     self.dispatcher = dispatcher
     self.relays = {}
     self.shutting_down = False
     state_file = process.runtime.file('dispatcher_state')
     try:
         self.sessions = pickle.load(open(state_file))
     except Exception:
         self.sessions = {}
         self.cleanup_timers = {}
     else:
         self.cleanup_timers = dict(
             (ip,
              reactor.callLater(DispatcherConfig.cleanup_dead_relays_after,
                                self._do_cleanup, ip))
             for ip in set(session.relay_ip
                           for session in self.sessions.itervalues()))
     unlink(state_file)
     self.expired_cleaner = RecurrentCall(600,
                                          self._remove_expired_sessions)
Exemple #4
0
 def __init__(self):
     self.shutting_down = False
     self.srv_monitor = RecurrentCall(RelayConfig.dns_check_interval,
                                      self._do_lookup)
     self._do_lookup()