Exemple #1
0
class Multitorrent(object):

    def __init__(self, config, doneflag, errorfunc, logcollector, listen_fail_ok=False):
        self.config = dict(config)
        self.errorfunc = errorfunc
        self.logcollector=logcollector
        self.rawserver = RawServer(doneflag, config, errorfunc=errorfunc,
                                   tos=config['peer_socket_tos'])
        self.singleport_listener = SingleportListener(self.rawserver, self.logcollector)
        self._find_port(listen_fail_ok)
        self.filepool = FilePool(config['max_files_open'])
        self.ratelimiter = RateLimiter(self.rawserver.add_task)
        self.ratelimiter.set_parameters(config['max_upload_rate'],
                                        config['upload_unit_size'])
        set_filesystem_encoding(config['filesystem_encoding'],
                                                 errorfunc)

    def _find_port(self, listen_fail_ok=True):
        e = 'maxport less than minport - no ports to check'
        if self.config['minport'] <= 0:
            self.config['minport'] = 1
        for port in xrange(self.config['minport'], self.config['maxport'] + 1):
            try:
                self.singleport_listener.open_port(port, self.config)
                break
            except socketerror, e:
                pass
        else:
Exemple #2
0
class Multitorrent(object):

    def __init__(self, config, doneflag, errorfunc, listen_fail_ok=False):
        self.config = dict(config)
        self.errorfunc = errorfunc
        self.rawserver = RawServer(doneflag, config, errorfunc=errorfunc,
                                   tos=config['peer_socket_tos'])
        self.singleport_listener = SingleportListener(self.rawserver)
        self._find_port(listen_fail_ok)
        self.filepool = FilePool(config['max_files_open'])
        self.ratelimiter = RateLimiter(self.rawserver.add_task)
        self.ratelimiter.set_parameters(config['max_upload_rate'],
                                        config['upload_unit_size'])
        set_filesystem_encoding(config['filesystem_encoding'],
                                                 errorfunc)

    def _find_port(self, listen_fail_ok=True):
        e = 'maxport less than minport - no ports to check'
        if self.config['minport'] <= 0:
            self.config['minport'] = 1
        for port in xrange(self.config['minport'], self.config['maxport'] + 1):
            try:
                self.singleport_listener.open_port(port, self.config)
                break
            except socketerror, e:
                pass
        else:
Exemple #3
0
 def __init__(self, config, doneflag, errorfunc, listen_fail_ok=False):
     self.config = dict(config)
     self.errorfunc = errorfunc
     self.rawserver = RawServer(doneflag, config, errorfunc=errorfunc,
                                tos=config['peer_socket_tos'])
     self.singleport_listener = SingleportListener(self.rawserver)
     self._find_port(listen_fail_ok)
     self.filepool = FilePool(config['max_files_open'])
     self.ratelimiter = RateLimiter(self.rawserver.add_task)
     self.ratelimiter.set_parameters(config['max_upload_rate'],
                                     config['upload_unit_size'])
     set_filesystem_encoding(config['filesystem_encoding'],
                                              errorfunc)
Exemple #4
0
 def __init__(self, config, doneflag, errorfunc, listen_fail_ok=False):
     self.dht = None
     self.config = config
     self.errorfunc = errorfunc
     self.rawserver = RawServer(doneflag, config, errorfunc=errorfunc,
                                tos=config['peer_socket_tos'])
     set_zurllib_rawserver(self.rawserver)
     add_unsafe_thread()
     self.nattraverser = NatTraverser(self.rawserver, logfunc=errorfunc)
     self.singleport_listener = SingleportListener(self.rawserver,
                                                   self.nattraverser)
     self.ratelimiter = RateLimiter(self.rawserver.add_task)
     self.ratelimiter.set_parameters(config['max_upload_rate'],
                                     config['upload_unit_size'])
     self._find_port(listen_fail_ok)
     self.filepool = FilePool(config['max_files_open'])
     set_filesystem_encoding(config['filesystem_encoding'],
                                              errorfunc)
Exemple #5
0
class Multitorrent(object):

    def __init__(self, config, doneflag, errorfunc, listen_fail_ok=False):
        self.dht = None
        self.config = config
        self.errorfunc = errorfunc
        self.rawserver = RawServer(doneflag, config, errorfunc=errorfunc,
                                   tos=config['peer_socket_tos'])
        set_zurllib_rawserver(self.rawserver)
        add_unsafe_thread()
        self.nattraverser = NatTraverser(self.rawserver, logfunc=errorfunc)
        self.singleport_listener = SingleportListener(self.rawserver,
                                                      self.nattraverser)
        self.ratelimiter = RateLimiter(self.rawserver.add_task)
        self.ratelimiter.set_parameters(config['max_upload_rate'],
                                        config['upload_unit_size'])
        self._find_port(listen_fail_ok)
        self.filepool = FilePool(config['max_files_open'])
        set_filesystem_encoding(config['filesystem_encoding'],
                                                 errorfunc)


    def _find_port(self, listen_fail_ok=True):
        e = _("maxport less than minport - no ports to check")
        if self.config['minport'] < 1024:
            self.config['minport'] = 1024
        for port in xrange(self.config['minport'], self.config['maxport'] + 1):
            try:
                self.singleport_listener.open_port(port, self.config)
                if self.config['start_trackerless_client']:
                    self.dht = UTKhashmir(self.config['bind'], 
                                            self.singleport_listener.get_port(), 
                                            self.config['data_dir'], self.rawserver, 
                                            int(self.config['max_upload_rate'] * 1024 * 0.01), 
                                            rlcount=self.ratelimiter.increase_offset,
                                            config=self.config)
                break
            except socketerror, e:
                pass
        else:
Exemple #6
0
 def __init__(self, config, doneflag, errorfunc, listen_fail_ok=False):
     self.config = dict(config)
     self.errorfunc = errorfunc
     self.rawserver = RawServer(doneflag, config, errorfunc=errorfunc,
                                tos=config['peer_socket_tos'])
     self.singleport_listener = SingleportListener(self.rawserver)
     self._find_port(listen_fail_ok)
     self.filepool = FilePool(config['max_files_open'])
     self.ratelimiter = RateLimiter(self.rawserver.add_task)
     self.ratelimiter.set_parameters(config['max_upload_rate'],
                                     config['upload_unit_size'])
     set_filesystem_encoding(config['filesystem_encoding'],
                                              errorfunc)