def setUp(self): self.realm = service.InMemoryWordsRealm("realmname") self.checker = checkers.InMemoryUsernamePasswordDatabaseDontUse() self.portal = portal.Portal(self.realm, [self.checker]) self.serverFactory = pb.PBServerFactory(self.portal) self.serverFactory.protocol = self._protocolFactory self.serverFactory.unsafeTracebacks = True self.clientFactory = pb.PBClientFactory() self.clientFactory.unsafeTracebacks = True self.serverPort = reactor.listenTCP(0, self.serverFactory) self.clientConn = reactor.connectTCP('127.0.0.1', self.serverPort.getHost().port, self.clientFactory)
def loopbackTCP(server, client, port=0, noisy=True): """Run session between server and client protocol instances over TCP.""" from reqs.twisted.internet import reactor f = policies.WrappingFactory(protocol.Factory()) serverWrapper = _FireOnClose(f, server) f.noisy = noisy f.buildProtocol = lambda addr: serverWrapper serverPort = reactor.listenTCP(port, f, interface='127.0.0.1') clientF = LoopbackClientFactory(client) clientF.noisy = noisy reactor.connectTCP('127.0.0.1', serverPort.getHost().port, clientF) d = clientF.deferred d.addCallback(lambda x: serverWrapper.deferred) d.addCallback(lambda x: serverPort.stopListening()) return d
def setUp(self): self.realm = service.InMemoryWordsRealm("realmname") self.checker = checkers.InMemoryUsernamePasswordDatabaseDontUse() self.portal = portal.Portal( self.realm, [self.checker]) self.serverFactory = pb.PBServerFactory(self.portal) self.serverFactory.protocol = self._protocolFactory self.serverFactory.unsafeTracebacks = True self.clientFactory = pb.PBClientFactory() self.clientFactory.unsafeTracebacks = True self.serverPort = reactor.listenTCP(0, self.serverFactory) self.clientConn = reactor.connectTCP( '127.0.0.1', self.serverPort.getHost().port, self.clientFactory)
def test_stopStartReading(self): """ This test checks transport read state! There are three bits of it: 1) The transport producer is paused -- transport.reading is False) 2) The transport is about to schedule an OS read, on the next reactor iteration -- transport._readScheduled 3) The OS has a pending asynchronous read on our behalf -- transport._readScheduledInOS if 3) is not implemented, it is possible to trick IOCPReactor into scheduling an OS read before the previous one finishes """ sf = ServerFactory() sf.protocol = StopStartReadingProtocol sf.ready_d = Deferred() sf.stop_d = Deferred() p = reactor.listenTCP(0, sf) port = p.getHost().port cc = ClientCreator(reactor, Protocol) def proceed(protos, port): log.msg('PROCEEDING WITH THE TESTATHRON') self.assert_(protos[0]) self.assert_(protos[1]) protos = protos[0][1], protos[1][1] protos[0].transport.write( 'x' * (2 * protos[0].transport.readBufferSize) + 'y' * (2 * protos[0].transport.readBufferSize)) return sf.stop_d.addCallback(cleanup, protos, port) def cleanup(data, protos, port): self.assert_(data == 'x'*(2*protos[0].transport.readBufferSize)+ 'y'*(2*protos[0].transport.readBufferSize), 'did not get the right data') return DeferredList([ maybeDeferred(protos[0].transport.loseConnection), maybeDeferred(protos[1].transport.loseConnection), maybeDeferred(port.stopListening)]) return (DeferredList([cc.connectTCP('127.0.0.1', port), sf.ready_d]) .addCallback(proceed, p))
factory = CoreFactory() factory.makefile("logs/chat.log") factory.makefile("logs/server.log") factory.makefile("logs/staff.log") factory.makefile("logs/whisper.log") factory.makefile("logs/world.log") factory.makefile("config/data/") factory.makefile("core/isoimage/images/") factory.makefile("core/archives/") factory.makedatfile("config/data/balances.dat") factory.makedatfile("config/data/inbox.dat") factory.makedatfile("config/data/jail.dat") factory.makedatfile("config/data/titles.dat") controller = ControllerFactory(factory) try: reactor.listenTCP(factory.config.getint("network", "port"), factory) except: logging.log(logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "port"))) sys.exit(1) try: reactor.listenTCP(factory.config.getint("network", "controller_port"), controller) except: logging.log(logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "controller_port"))) sys.exit(1) money_logger = logging.getLogger('TransactionLogger') fh = logging.FileHandler('logs/server.log') formatter = logging.Formatter("%(asctime)s: %(message)s") fh.setFormatter(formatter) # Add the handler money_logger.addHandler(fh)
def listenClass(self, port, klass, *args): serv = reactor.listenTCP(port, klass(*args)) return defer.succeed(serv.getHost()[1:])
factory = CoreFactory() factory.makefile("logs/chat.log") factory.makefile("logs/server.log") factory.makefile("logs/staff.log") factory.makefile("logs/whisper.log") factory.makefile("logs/world.log") factory.makefile("config/data/") factory.makefile("core/isoimage/images/") factory.makefile("core/archives/") factory.makedatfile("config/data/balances.dat") factory.makedatfile("config/data/inbox.dat") factory.makedatfile("config/data/jail.dat") factory.makedatfile("config/data/titles.dat") controller = ControllerFactory(factory) try: reactor.listenTCP(factory.config.getint("network", "port"), factory) except: logging.log( logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "port"))) sys.exit(1) try: reactor.listenTCP(factory.config.getint("network", "controller_port"), controller) except: logging.log( logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "controller_port"))) sys.exit(1) money_logger = logging.getLogger('TransactionLogger') fh = logging.FileHandler('logs/server.log')