Python twisted.internet.endpoints.serverFromString() Examples
The following are 30
code examples of twisted.internet.endpoints.serverFromString().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
twisted.internet.endpoints
, or try the search function
.
Example #1
Source File: test_cinder.py From flocker with Apache License 2.0 | 6 votes |
def webserver_for_test(test, url_path, response_content): """ Create a webserver that serves ``response_content`` from ``url_path``. """ app = Klein() @app.route(url_path) def _respond(request): return response_content factory = Site(app.resource()) endpoint = serverFromString(reactor, b"tcp:0") listening = endpoint.listen(factory) def stop_port(port): test.addCleanup(port.stopListening) return port listening.addCallback(stop_port) return listening
Example #2
Source File: connector.py From magic-wormhole with MIT License | 6 votes |
def _start_listener(self, addresses): # TODO: listen on a fixed port, if possible, for NAT/p2p benefits, also # to make firewall configs easier # TODO: retain listening port between connection generations? ep = serverFromString(self._reactor, "tcp:0") f = InboundConnectionFactory(self) d = ep.listen(f) def _listening(lp): # lp is an IListeningPort self._listeners.add(lp) # for shutdown and tests portnum = lp.getHost().port direct_hints = [DirectTCPV1Hint(to_unicode(addr), portnum, 0.0) for addr in addresses] self.listener_ready(direct_hints) d.addCallback(_listening) d.addErrback(log.err)
Example #3
Source File: dump-timing.py From magic-wormhole with MIT License | 6 votes |
def web(): # set up a server that serves web/ at the root, plus a /data.json built # from {timeline}. Quit when it fetches /done . from twisted.web import resource, static, server from twisted.internet import reactor, endpoints ep = endpoints.serverFromString(reactor, "tcp:8066:interface=127.0.0.1") root = static.File(web_root) root.putChild("data.json", static.Data(json.dumps(data).encode("utf-8"), "application/json")) root.putChild("lib", static.File(lib_root)) class Shutdown(resource.Resource): def render_GET(self, request): #print("timeline ready, server shutting down") #reactor.stop() return "shutting down" root.putChild("done", Shutdown()) site = server.Site(root) ep.listen(site) import webbrowser def launch_browser(): webbrowser.open("http://localhost:%d/timeline.html" % 8066) print("browser opened, waiting for shutdown") reactor.callLater(0, launch_browser) reactor.run()
Example #4
Source File: strports.py From learn_python3_spider with MIT License | 6 votes |
def listen(description, factory): """ Listen on a port corresponding to a description. @param description: The description of the connecting port, in the syntax described by L{twisted.internet.endpoints.serverFromString}. @type description: L{str} @param factory: The protocol factory which will build protocols on connection. @type factory: L{twisted.internet.interfaces.IProtocolFactory} @rtype: L{twisted.internet.interfaces.IListeningPort} @return: the port corresponding to a description of a reliable virtual circuit server. @see: L{twisted.internet.endpoints.serverFromString} """ from twisted.internet import reactor name, args, kw = endpoints._parseServer(description, factory) return getattr(reactor, 'listen' + name)(*args, **kw)
Example #5
Source File: strports.py From learn_python3_spider with MIT License | 6 votes |
def service(description, factory, reactor=None): """ Return the service corresponding to a description. @param description: The description of the listening port, in the syntax described by L{twisted.internet.endpoints.serverFromString}. @type description: C{str} @param factory: The protocol factory which will build protocols for connections to this service. @type factory: L{twisted.internet.interfaces.IProtocolFactory} @rtype: C{twisted.application.service.IService} @return: the service corresponding to a description of a reliable stream server. @see: L{twisted.internet.endpoints.serverFromString} """ if reactor is None: from twisted.internet import reactor svc = StreamServerEndpointService( endpoints.serverFromString(reactor, description), factory) svc._raiseSynchronously = True return svc
Example #6
Source File: test_endpoints.py From learn_python3_spider with MIT License | 6 votes |
def test_typeFromPlugin(self): """ L{endpoints.serverFromString} looks up plugins of type L{IStreamServerEndpoint} and constructs endpoints from them. """ # Set up a plugin which will only be accessible for the duration of # this test. addFakePlugin(self) # Plugin is set up: now actually test. notAReactor = object() fakeEndpoint = endpoints.serverFromString( notAReactor, "fake:hello:world:yes=no:up=down") from twisted.plugins.fakeendpoint import fake self.assertIs(fakeEndpoint.parser, fake) self.assertEqual(fakeEndpoint.args, (notAReactor, 'hello', 'world')) self.assertEqual(fakeEndpoint.kwargs, dict(yes='no', up='down'))
Example #7
Source File: test_endpoints.py From python-for-android with Apache License 2.0 | 6 votes |
def test_ssl(self): """ When passed an SSL strports description, L{endpoints.serverFromString} returns a L{SSL4ServerEndpoint} instance initialized with the values from the string. """ reactor = object() server = endpoints.serverFromString( reactor, "ssl:1234:backlog=12:privateKey=%s:" "certKey=%s:interface=10.0.0.1" % (escapedPEMPathName, escapedPEMPathName)) self.assertIsInstance(server, endpoints.SSL4ServerEndpoint) self.assertIdentical(server._reactor, reactor) self.assertEquals(server._port, 1234) self.assertEquals(server._backlog, 12) self.assertEquals(server._interface, "10.0.0.1") ctx = server._sslContextFactory.getContext() self.assertIsInstance(ctx, ContextType)
Example #8
Source File: test_endpoints.py From learn_python3_spider with MIT License | 6 votes |
def test_unix(self): """ When passed a UNIX strports description, L{endpoint.serverFromString} returns a L{UNIXServerEndpoint} instance initialized with the values from the string. """ reactor = object() endpoint = endpoints.serverFromString( reactor, "unix:/var/foo/bar:backlog=7:mode=0123:lockfile=1") self.assertIsInstance(endpoint, endpoints.UNIXServerEndpoint) self.assertIs(endpoint._reactor, reactor) self.assertEqual(endpoint._address, "/var/foo/bar") self.assertEqual(endpoint._backlog, 7) self.assertEqual(endpoint._mode, 0o123) self.assertTrue(endpoint._wantPID)
Example #9
Source File: test_endpoints.py From learn_python3_spider with MIT License | 6 votes |
def test_sslNoTrailingNewlinePem(self): """ Lack of a trailing newline in key and cert .pem files should not generate an exception. """ reactor = object() server = endpoints.serverFromString( reactor, "ssl:1234:backlog=12:privateKey=%s:" "certKey=%s:sslmethod=TLSv1_METHOD:interface=10.0.0.1" % ( escapedNoTrailingNewlineKeyPEMPathName, escapedNoTrailingNewlineCertPEMPathName, ) ) self.assertIsInstance(server, endpoints.SSL4ServerEndpoint) self.assertIs(server._reactor, reactor) self.assertEqual(server._port, 1234) self.assertEqual(server._backlog, 12) self.assertEqual(server._interface, "10.0.0.1") self.assertEqual(server._sslContextFactory.method, TLSv1_METHOD) ctx = server._sslContextFactory.getContext() self.assertIsInstance(ctx, ContextType)
Example #10
Source File: test_endpoints.py From python-for-android with Apache License 2.0 | 6 votes |
def test_unix(self): """ When passed a UNIX strports description, L{endpoint.serverFromString} returns a L{UNIXServerEndpoint} instance initialized with the values from the string. """ reactor = object() endpoint = endpoints.serverFromString( reactor, "unix:/var/foo/bar:backlog=7:mode=0123:lockfile=1") self.assertIsInstance(endpoint, endpoints.UNIXServerEndpoint) self.assertIdentical(endpoint._reactor, reactor) self.assertEquals(endpoint._address, "/var/foo/bar") self.assertEquals(endpoint._backlog, 7) self.assertEquals(endpoint._mode, 0123) self.assertEquals(endpoint._wantPID, True)
Example #11
Source File: test_endpoints.py From learn_python3_spider with MIT License | 6 votes |
def test_sslChainLoads(self): """ Specifying a chain file loads the contained certificates in the right order. """ server = endpoints.serverFromString( object(), self.SSL_CHAIN_TEMPLATE % (escapedPEMPathName, escapedChainPathName,) ) # Test chain file is just a concatenation of thing1.pem and thing2.pem # so we can check that loading has succeeded and order has been # preserved. expectedChainCerts = [ Certificate.loadPEM(casPath.child("thing%d.pem" % (n,)) .getContent()) for n in [1, 2] ] cf = server._sslContextFactory self.assertEqual(cf.extraCertChain[0].digest('sha1'), expectedChainCerts[0].digest('sha1')) self.assertEqual(cf.extraCertChain[1].digest('sha1'), expectedChainCerts[1].digest('sha1'))
Example #12
Source File: test_endpoints.py From learn_python3_spider with MIT License | 6 votes |
def test_sslWithDefaults(self): """ An SSL string endpoint description with minimal arguments returns a properly initialized L{SSL4ServerEndpoint} instance. """ reactor = object() server = endpoints.serverFromString( reactor, "ssl:4321:privateKey=%s" % (escapedPEMPathName,)) self.assertIsInstance(server, endpoints.SSL4ServerEndpoint) self.assertIs(server._reactor, reactor) self.assertEqual(server._port, 4321) self.assertEqual(server._backlog, 50) self.assertEqual(server._interface, "") self.assertEqual(server._sslContextFactory.method, SSLv23_METHOD) self.assertTrue( server._sslContextFactory._options & OP_NO_SSLv3, ) ctx = server._sslContextFactory.getContext() self.assertIsInstance(ctx, ContextType) # Use a class variable to ensure we use the exactly same endpoint string # except for the chain file itself.
Example #13
Source File: test_endpoints.py From learn_python3_spider with MIT License | 6 votes |
def test_ssl(self): """ When passed an SSL strports description, L{endpoints.serverFromString} returns a L{SSL4ServerEndpoint} instance initialized with the values from the string. """ reactor = object() server = endpoints.serverFromString( reactor, "ssl:1234:backlog=12:privateKey=%s:" "certKey=%s:sslmethod=TLSv1_METHOD:interface=10.0.0.1" % (escapedPEMPathName, escapedPEMPathName)) self.assertIsInstance(server, endpoints.SSL4ServerEndpoint) self.assertIs(server._reactor, reactor) self.assertEqual(server._port, 1234) self.assertEqual(server._backlog, 12) self.assertEqual(server._interface, "10.0.0.1") self.assertEqual(server._sslContextFactory.method, TLSv1_METHOD) ctx = server._sslContextFactory.getContext() self.assertIsInstance(ctx, ContextType)
Example #14
Source File: test_endpoints.py From python-for-android with Apache License 2.0 | 6 votes |
def test_typeFromPlugin(self): """ L{endpoints.serverFromString} looks up plugins of type L{IStreamServerEndpoint} and constructs endpoints from them. """ # Set up a plugin which will only be accessible for the duration of # this test. addFakePlugin(self) # Plugin is set up: now actually test. notAReactor = object() fakeEndpoint = endpoints.serverFromString( notAReactor, "fake:hello:world:yes=no:up=down") from twisted.plugins.fakeendpoint import fake self.assertIdentical(fakeEndpoint.parser, fake) self.assertEquals(fakeEndpoint.args, (notAReactor, 'hello', 'world')) self.assertEquals(fakeEndpoint.kwargs, dict(yes='no', up='down'))
Example #15
Source File: endpoint.py From txacme with MIT License | 6 votes |
def _parse(reactor, directory, pemdir, *args, **kwargs): """ Parse a txacme endpoint description. :param reactor: The Twisted reactor. :param directory: ``twisted.python.url.URL`` for the ACME directory to use for issuing certs. :param str pemdir: The path to the certificate directory to use. """ def colon_join(items): return ':'.join([item.replace(':', '\\:') for item in items]) timeout = kwargs.pop('timeout', _DEFAULT_TIMEOUT) sub = colon_join(list(args) + ['='.join(item) for item in kwargs.items()]) pem_path = FilePath(pemdir).asTextMode() acme_key = load_or_create_client_key(pem_path) return AutoTLSEndpoint( reactor=reactor, directory=directory, client_creator=partial( Client.from_url, key=acme_key, alg=RS256, timeout=timeout), cert_store=DirectoryStore(pem_path), cert_mapping=HostDirectoryMap(pem_path), sub_endpoint=serverFromString(reactor, sub))
Example #16
Source File: service.py From bitmask-dev with GNU General Public License v3.0 | 6 votes |
def _start_onion_service(self, factory): def progress(percent, tag, message): bar = int(percent / 10) log.debug('[%s%s] %s' % ('#' * bar, '.' * (10 - bar), message)) def setup_complete(port): port = txtorcon.IHiddenService(port) self.uri = "http://%s" % (port.getHost().onion_uri) log.info('I have set up a hidden service, advertised at: %s' % self.uri) log.info('locally listening on %s' % port.local_address.getHost()) def setup_failed(args): log.error('onion service setup FAILED: %r' % args) endpoint = endpoints.serverFromString(reactor, 'onion:80') txtorcon.IProgressProvider(endpoint).add_progress_listener(progress) d = endpoint.listen(factory) d.addCallback(setup_complete) d.addErrback(setup_failed) return d
Example #17
Source File: strports.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def listen(description, factory): """ Listen on a port corresponding to a description. @param description: The description of the connecting port, in the syntax described by L{twisted.internet.endpoints.serverFromString}. @type description: L{str} @param factory: The protocol factory which will build protocols on connection. @type factory: L{twisted.internet.interfaces.IProtocolFactory} @rtype: L{twisted.internet.interfaces.IListeningPort} @return: the port corresponding to a description of a reliable virtual circuit server. @see: L{twisted.internet.endpoints.serverFromString} """ from twisted.internet import reactor name, args, kw = endpoints._parseServer(description, factory) return getattr(reactor, 'listen' + name)(*args, **kw)
Example #18
Source File: strports.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def service(description, factory, reactor=None): """ Return the service corresponding to a description. @param description: The description of the listening port, in the syntax described by L{twisted.internet.endpoints.serverFromString}. @type description: C{str} @param factory: The protocol factory which will build protocols for connections to this service. @type factory: L{twisted.internet.interfaces.IProtocolFactory} @rtype: C{twisted.application.service.IService} @return: the service corresponding to a description of a reliable stream server. @see: L{twisted.internet.endpoints.serverFromString} """ if reactor is None: from twisted.internet import reactor svc = StreamServerEndpointService( endpoints.serverFromString(reactor, description), factory) svc._raiseSynchronously = True return svc
Example #19
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_typeFromPlugin(self): """ L{endpoints.serverFromString} looks up plugins of type L{IStreamServerEndpoint} and constructs endpoints from them. """ # Set up a plugin which will only be accessible for the duration of # this test. addFakePlugin(self) # Plugin is set up: now actually test. notAReactor = object() fakeEndpoint = endpoints.serverFromString( notAReactor, "fake:hello:world:yes=no:up=down") from twisted.plugins.fakeendpoint import fake self.assertIs(fakeEndpoint.parser, fake) self.assertEqual(fakeEndpoint.args, (notAReactor, 'hello', 'world')) self.assertEqual(fakeEndpoint.kwargs, dict(yes='no', up='down'))
Example #20
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_ssl(self): """ When passed an SSL strports description, L{endpoints.serverFromString} returns a L{SSL4ServerEndpoint} instance initialized with the values from the string. """ reactor = object() server = endpoints.serverFromString( reactor, "ssl:1234:backlog=12:privateKey=%s:" "certKey=%s:sslmethod=TLSv1_METHOD:interface=10.0.0.1" % (escapedPEMPathName, escapedPEMPathName)) self.assertIsInstance(server, endpoints.SSL4ServerEndpoint) self.assertIs(server._reactor, reactor) self.assertEqual(server._port, 1234) self.assertEqual(server._backlog, 12) self.assertEqual(server._interface, "10.0.0.1") self.assertEqual(server._sslContextFactory.method, TLSv1_METHOD) ctx = server._sslContextFactory.getContext() self.assertIsInstance(ctx, ContextType)
Example #21
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_unix(self): """ When passed a UNIX strports description, L{endpoint.serverFromString} returns a L{UNIXServerEndpoint} instance initialized with the values from the string. """ reactor = object() endpoint = endpoints.serverFromString( reactor, "unix:/var/foo/bar:backlog=7:mode=0123:lockfile=1") self.assertIsInstance(endpoint, endpoints.UNIXServerEndpoint) self.assertIs(endpoint._reactor, reactor) self.assertEqual(endpoint._address, "/var/foo/bar") self.assertEqual(endpoint._backlog, 7) self.assertEqual(endpoint._mode, 0o123) self.assertTrue(endpoint._wantPID)
Example #22
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_sslWithDefaults(self): """ An SSL string endpoint description with minimal arguments returns a properly initialized L{SSL4ServerEndpoint} instance. """ reactor = object() server = endpoints.serverFromString( reactor, "ssl:4321:privateKey=%s" % (escapedPEMPathName,)) self.assertIsInstance(server, endpoints.SSL4ServerEndpoint) self.assertIs(server._reactor, reactor) self.assertEqual(server._port, 4321) self.assertEqual(server._backlog, 50) self.assertEqual(server._interface, "") self.assertEqual(server._sslContextFactory.method, SSLv23_METHOD) self.assertTrue( server._sslContextFactory._options & OP_NO_SSLv3, ) ctx = server._sslContextFactory.getContext() self.assertIsInstance(ctx, ContextType) # Use a class variable to ensure we use the exactly same endpoint string # except for the chain file itself.
Example #23
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_sslChainLoads(self): """ Specifying a chain file loads the contained certificates in the right order. """ server = endpoints.serverFromString( object(), self.SSL_CHAIN_TEMPLATE % (escapedPEMPathName, escapedChainPathName,) ) # Test chain file is just a concatenation of thing1.pem and thing2.pem # so we can check that loading has succeeded and order has been # preserved. expectedChainCerts = [ Certificate.loadPEM(casPath.child("thing%d.pem" % (n,)) .getContent()) for n in [1, 2] ] cf = server._sslContextFactory self.assertEqual(cf.extraCertChain[0].digest('sha1'), expectedChainCerts[0].digest('sha1')) self.assertEqual(cf.extraCertChain[1].digest('sha1'), expectedChainCerts[1].digest('sha1'))
Example #24
Source File: http_server.py From Paradrop with Apache License 2.0 | 5 votes |
def setup_http_server(http_server, host, port): endpoint = serverFromString( reactor, "tcp:port={0}:interface={1}".format(port, host) ) endpoint.listen(Site(http_server.app.resource()))
Example #25
Source File: server_tap.py From magic-wormhole-transit-relay with MIT License | 5 votes |
def makeService(config, reactor=reactor): increase_rlimits() ep = endpoints.serverFromString(reactor, config["port"]) # to listen log_file = (os.fdopen(int(config["log-fd"]), "w") if config["log-fd"] is not None else None) f = transit_server.Transit(blur_usage=config["blur-usage"], log_file=log_file, usage_db=config["usage-db"]) parent = MultiService() StreamServerEndpointService(ep, f).setServiceParent(parent) TimerService(5*60.0, f.timerUpdateStats).setServiceParent(parent) return parent
Example #26
Source File: test_endpoints.py From python-for-android with Apache License 2.0 | 5 votes |
def test_quoteStringArgument(self): """ L{endpoints.quoteStringArgument} should quote backslashes and colons for interpolation into L{endpoints.serverFromString} and L{endpoints.clientFactory} arguments. """ self.assertEquals(endpoints.quoteStringArgument("some : stuff \\"), "some \\: stuff \\\\")
Example #27
Source File: gamespy_server_browser_server.py From dwc_network_server_emulator with GNU Affero General Public License v3.0 | 5 votes |
def start(self): endpoint = serverFromString( reactor, "tcp:%d:interface=%s" % (address[1], address[0]) ) conn = endpoint.listen(SessionFactory(self.qr)) try: if not reactor.running: reactor.run(installSignalHandlers=0) except ReactorAlreadyRunning: pass
Example #28
Source File: gamespy_player_search_server.py From dwc_network_server_emulator with GNU Affero General Public License v3.0 | 5 votes |
def start(self): endpoint_search = serverFromString( reactor, "tcp:%d:interface=%s" % (address[1], address[0]) ) conn_search = endpoint_search.listen(PlayerSearchFactory()) try: if not reactor.running: reactor.run(installSignalHandlers=0) except ReactorAlreadyRunning: pass
Example #29
Source File: test_endpoints.py From python-for-android with Apache License 2.0 | 5 votes |
def test_tcp(self): """ When passed a TCP strports description, L{endpoints.serverFromString} returns a L{TCP4ServerEndpoint} instance initialized with the values from the string. """ reactor = object() server = endpoints.serverFromString( reactor, "tcp:1234:backlog=12:interface=10.0.0.1") self.assertIsInstance(server, endpoints.TCP4ServerEndpoint) self.assertIdentical(server._reactor, reactor) self.assertEquals(server._port, 1234) self.assertEquals(server._backlog, 12) self.assertEquals(server._interface, "10.0.0.1")
Example #30
Source File: gamespy_gamestats_server.py From dwc_network_server_emulator with GNU Affero General Public License v3.0 | 5 votes |
def start(self): endpoint_search = serverFromString( reactor, "tcp:%d:interface=%s" % (address[1], address[0]) ) conn_search = endpoint_search.listen(GamestatsFactory()) try: if not reactor.running: reactor.run(installSignalHandlers=0) except ReactorAlreadyRunning: pass