Example #1
0
 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)
Example #2
0
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
Example #3
0
 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)
Example #4
0
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
Example #5
0
    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))
Example #6
0
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)
Example #7
0
 def listenClass(self, port, klass, *args):
     serv = reactor.listenTCP(port, klass(*args))
     return defer.succeed(serv.getHost()[1:])
Example #8
0
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')
Example #9
0
 def listenClass(self, port, klass, *args):
     serv = reactor.listenTCP(port, klass(*args))
     return defer.succeed(serv.getHost()[1:])