Exemple #1
0
    def __init__(self, config, doneflag, listen_fail_ok=False):
        self.config = dict(config)
        Anomos.Crypto.init(self.config['data_dir'])
        self.sessionid = Anomos.Crypto.get_rand(8)
        self.certificate = Anomos.Crypto.Certificate(self.config['identity'])
        self.ssl_ctx = self.certificate.get_ctx(allow_unknown_ca=True)
        self.event_handler = EventHandler(doneflag)
        self.schedule = self.event_handler.schedule

        self.ratelimiter = RateLimiter(self.schedule)
        self.ratelimiter.set_parameters(config['max_upload_rate'],
                                        config['upload_unit_size'])

        self.nbr_mngrs = {}
        self.torrents = {}

        self.singleport_listener = SingleportListener(self.config, self.ssl_ctx)
        self.singleport_listener.find_port(listen_fail_ok)
        self.filepool = FilePool(config['max_files_open'])
        set_filesystem_encoding(config['filesystem_encoding'])