Python twisted.internet.address.IPv4Address() Examples
The following are 30
code examples of twisted.internet.address.IPv4Address().
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.address
, or try the search function
.
Example #1
Source File: test_v1parser.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_feedParsing(self): """ Test that parsing happens when fed a complete line. """ parser = _v1parser.V1Parser() info, remaining = parser.feed(b'PROXY TCP4 127.0.0.1 127.0.0.1 ') self.assertFalse(info) self.assertFalse(remaining) info, remaining = parser.feed(b'8080 8888') self.assertFalse(info) self.assertFalse(remaining) info, remaining = parser.feed(b'\r\n') self.assertFalse(remaining) self.assertIsInstance(info.source, address.IPv4Address) self.assertEqual(info.source.host, b'127.0.0.1') self.assertEqual(info.source.port, 8080) self.assertEqual(info.destination.host, b'127.0.0.1') self.assertEqual(info.destination.port, 8888)
Example #2
Source File: test_httpauth.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_decode(self): """ L{digest.DigestCredentialFactory.decode} calls the C{decode} method on L{twisted.cred.digest.DigestCredentialFactory} with the HTTP method and host of the request. """ host = b'169.254.0.1' method = b'GET' done = [False] response = object() def check(_response, _method, _host): self.assertEqual(response, _response) self.assertEqual(method, _method) self.assertEqual(host, _host) done[0] = True self.patch(self.credentialFactory.digest, 'decode', check) req = self.makeRequest(method, IPv4Address('TCP', host, 81)) self.credentialFactory.decode(response, req) self.assertTrue(done[0])
Example #3
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_nonASCII(self): """ Bytes in fields of the request which are not part of ASCII are escaped in the result. """ reactor = Clock() reactor.advance(1234567890) timestamp = http.datetimeToLogString(reactor.seconds()) request = DummyRequestForLogTest(http.HTTPFactory(reactor=reactor)) request.client = IPv4Address("TCP", b"evil x-forwarded-for \x80", 12345) request.method = b"POS\x81" request.protocol = b"HTTP/1.\x82" request.requestHeaders.addRawHeader(b"referer", b"evil \x83") request.requestHeaders.addRawHeader(b"user-agent", b"evil \x84") line = http.combinedLogFormatter(timestamp, request) self.assertEqual( u'"evil x-forwarded-for \\x80" - - [13/Feb/2009:23:31:30 +0000] ' u'"POS\\x81 /dummy HTTP/1.0" 123 - "evil \\x83" "evil \\x84"', line)
Example #4
Source File: test_protocol.py From afkak with Apache License 2.0 | 6 votes |
def test_lengthLimitExceeded(self): """ An error is logged and the connection dropped when an oversized message is received. """ too_long = KafkaProtocol.MAX_LENGTH + 1 peer = IPv4Address('TCP', '1.2.3.4', 1234) kp = KafkaProtocol() kp.factory = factory_spy = mock.Mock(wraps=TheFactory()) kp.transport = StringTransportWithDisconnection(peerAddress=peer) kp.transport.protocol = kp with capture_logging(logging.getLogger('afkak.protocol')) as records: kp.lengthLimitExceeded(too_long) self.assertEqual(1, len(factory_spy._connectionLost.mock_calls)) [record] = records record.getMessage() # Formats okay. self.assertEqual(( 'Broker at %s sent a %d byte message, exceeding the size limit of %d. ' 'Terminating connection.' ), record.msg) self.assertEqual((peer, too_long, kp.MAX_LENGTH), record.args)
Example #5
Source File: proto_helpers.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def adoptDatagramPort(self, fileno, addressFamily, protocol, maxPacketSize=8192): """ Fake L{IReactorSocket.adoptDatagramPort}, that logs the call and returns a fake L{IListeningPort}. @see: L{twisted.internet.interfaces.IReactorSocket.adoptDatagramPort} """ if addressFamily == AF_INET: addr = IPv4Address('UDP', '0.0.0.0', 1234) elif addressFamily == AF_INET6: addr = IPv6Address('UDP', '::', 1234) else: raise UnsupportedAddressFamily() self.adoptedPorts.append( (fileno, addressFamily, protocol, maxPacketSize)) return _FakePort(addr)
Example #6
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def setUp(self): self.hostname = b"ssh.example.com" self.port = 42022 self.user = b"user" self.password = b"password" self.reactor = MemoryReactorClock() self.realm = TrivialRealm() self.portal = Portal(self.realm) self.passwdDB = InMemoryUsernamePasswordDatabaseDontUse() self.passwdDB.addUser(self.user, self.password) self.portal.registerChecker(self.passwdDB) self.factory = CommandFactory() self.factory.reactor = self.reactor self.factory.portal = self.portal self.factory.doStart() self.addCleanup(self.factory.doStop) self.clientAddress = IPv4Address("TCP", "10.0.0.1", 12345) self.serverAddress = IPv4Address("TCP", "192.168.100.200", 54321)
Example #7
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def createServerEndpoint(self, reactor, factory, **listenArgs): """ Create an L{TCP4ServerEndpoint} and return the values needed to verify its behaviour. @param reactor: A fake L{IReactorTCP} that L{TCP4ServerEndpoint} can call L{IReactorTCP.listenTCP} on. @param factory: The thing that we expect to be passed to our L{IStreamServerEndpoint.listen} implementation. @param listenArgs: Optional dictionary of arguments to L{IReactorTCP.listenTCP}. """ address = IPv4Address("TCP", "0.0.0.0", 0) if listenArgs is None: listenArgs = {} return (endpoints.TCP4ServerEndpoint(reactor, address.port, **listenArgs), (address.port, factory, listenArgs.get('backlog', 50), listenArgs.get('interface', '')), address)
Example #8
Source File: test_smtp.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_onlyLogFailedAddresses(self): """ L{smtp.SenderMixin.sentMail} adds only the addresses with failing SMTP response codes to the log passed to the factory's errback. """ onDone = self.assertFailure(defer.Deferred(), smtp.SMTPDeliveryError) onDone.addCallback(lambda e: self.assertEqual( e.log, "bob@example.com: 199 Error in sending.\n")) clientFactory = smtp.SMTPSenderFactory( 'source@address', 'recipient@address', StringIO("Message body"), onDone, retries=0, timeout=0.5) client = clientFactory.buildProtocol( address.IPv4Address('TCP', 'example.net', 25)) addresses = [("alice@example.com", 200, "No errors here!"), ("bob@example.com", 199, "Error in sending.")] client.sentMail(199, "Test response", 1, addresses, client.log) return onDone
Example #9
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_ignoreUnknownAddressTypes(self): """ If an address type other than L{IPv4Address} and L{IPv6Address} is returned by on address resolution, the endpoint ignores that address. """ self.mreactor = MemoryReactor() self.endpoint = endpoints.HostnameEndpoint( deterministicResolvingReactor(self.mreactor, ['1.2.3.4', object(), '1:2::3:4']), b"www.example.com", 80 ) clientFactory = None self.endpoint.connect(clientFactory) self.mreactor.advance(0.3) (host, port, factory, timeout, bindAddress) = self.mreactor.tcpClients[1] self.assertEqual(len(self.mreactor.tcpClients), 2) self.assertEqual(host, '1:2::3:4') self.assertEqual(port, 80)
Example #10
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def createServerEndpoint(self, reactor, factory, **listenArgs): """ Create an L{SSL4ServerEndpoint} and return the tools to verify its behaviour. @param factory: The thing that we expect to be passed to our L{IStreamServerEndpoint.listen} implementation. @param reactor: A fake L{IReactorSSL} that L{SSL4ServerEndpoint} can call L{IReactorSSL.listenSSL} on. @param listenArgs: Optional dictionary of arguments to L{IReactorSSL.listenSSL}. """ address = IPv4Address("TCP", "0.0.0.0", 0) return (endpoints.SSL4ServerEndpoint(reactor, address.port, self.serverSSLContext, **listenArgs), (address.port, factory, self.serverSSLContext, listenArgs.get('backlog', 50), listenArgs.get('interface', '')), address)
Example #11
Source File: test_endpoints.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def createServerEndpoint(self, reactor, factory): """ Create a new L{AdoptedStreamServerEndpoint} for use by a test. @return: A three-tuple: - The endpoint - A tuple of the arguments expected to be passed to the underlying reactor method - An IAddress object which will match the result of L{IListeningPort.getHost} on the port returned by the endpoint. """ fileno = 12 addressFamily = AF_INET endpoint = self._createStubbedAdoptedEndpoint( reactor, fileno, addressFamily) # Magic numbers come from the implementation of MemoryReactor address = IPv4Address("TCP", "0.0.0.0", 1234) return (endpoint, (fileno, addressFamily, factory), address)
Example #12
Source File: test_smtp.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def _timeoutTest(self, onDone, clientFactory): """ Connect the clientFactory, and check the timeout on the request. """ clock = task.Clock() client = clientFactory.buildProtocol( address.IPv4Address('TCP', 'example.net', 25)) client.callLater = clock.callLater t = StringTransport() client.makeConnection(t) t.protocol = client def check(ign): self.assertEqual(clock.seconds(), 0.5) d = self.assertFailure(onDone, smtp.SMTPTimeoutError ).addCallback(check) # The first call should not trigger the timeout clock.advance(0.1) # But this one should clock.advance(0.4) return d
Example #13
Source File: proto_helpers.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def listenTCP(self, port, factory, backlog=50, interface=''): """ Fake L{IReactorTCP.listenTCP}, that logs the call and returns an L{IListeningPort}. """ self.tcpServers.append((port, factory, backlog, interface)) if isIPv6Address(interface): address = IPv6Address('TCP', interface, port) else: address = IPv4Address('TCP', '0.0.0.0', port) return _FakePort(address)
Example #14
Source File: test_channel.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_getPeer(self): """ L{SSHChannel.getPeer} returns the same object as the underlying transport's C{getPeer} method returns. """ peer = IPv4Address('TCP', '192.168.0.1', 54321) connectSSHTransport(service=self.channel.conn, peerAddress=peer) self.assertEqual(SSHTransportAddress(peer), self.channel.getPeer())
Example #15
Source File: test_dns.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_truncatedPacket(self): """ Test that when a short datagram is received, datagramReceived does not raise an exception while processing it. """ self.proto.datagramReceived( b'', address.IPv4Address('UDP', '127.0.0.1', 12345)) self.assertEqual(self.controller.messages, [])
Example #16
Source File: test_util.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def getHost(self): """ Return the address which this transport is pretending to be bound to. """ return IPv4Address('UDP', *self._host)
Example #17
Source File: test_policies.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def setUp(self): """ Create a testable, deterministic clock, and a set of server factory/protocol/transport. """ self.clock = task.Clock() wrappedFactory = protocol.ServerFactory() wrappedFactory.protocol = SimpleProtocol self.factory = TestableTimeoutFactory(self.clock, wrappedFactory, 3) self.proto = self.factory.buildProtocol( address.IPv4Address('TCP', '127.0.0.1', 12345)) self.transport = StringTransportWithDisconnection() self.transport.protocol = self.proto self.proto.makeConnection(self.transport)
Example #18
Source File: proto_helpers.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def listenSSL(self, port, factory, contextFactory, backlog=50, interface=''): """ Fake L{IReactorSSL.listenSSL}, that logs the call and returns an L{IListeningPort}. """ self.sslServers.append((port, factory, contextFactory, backlog, interface)) return _FakePort(IPv4Address('TCP', '0.0.0.0', port))
Example #19
Source File: test_policies.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_loggingFactoryOpensLogfileAutomatically(self): """ When the L{policies.TrafficLoggingFactory} builds a protocol, it automatically opens a unique log file for that protocol and attaches the logfile to the built protocol. """ open_calls = [] open_rvalues = [] def mocked_open(*args, **kwargs): """ Mock for the open call to prevent actually opening a log file. """ open_calls.append((args, kwargs)) io = NativeStringIO() io.name = args[0] open_rvalues.append(io) return io self.patch(builtins, 'open', mocked_open) wrappedFactory = protocol.ServerFactory() wrappedFactory.protocol = SimpleProtocol factory = policies.TrafficLoggingFactory(wrappedFactory, 'test') first_proto = factory.buildProtocol(address.IPv4Address('TCP', '127.0.0.1', 12345)) second_proto = factory.buildProtocol(address.IPv4Address('TCP', '127.0.0.1', 12346)) # We expect open to be called twice, with the files passed to the # protocols. first_call = (('test-1', 'w'), {}) second_call = (('test-2', 'w'), {}) self.assertEqual([first_call, second_call], open_calls) self.assertEqual( [first_proto.logfile, second_proto.logfile], open_rvalues )
Example #20
Source File: test_protocols.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_registerProducers(self): """ The proxy client registers itself as a producer of the proxy server and vice versa. """ # create a ProxyServer instance addr = address.IPv4Address('TCP', '127.0.0.1', 0) server = portforward.ProxyFactory('127.0.0.1', 0).buildProtocol(addr) # set the reactor for this test reactor = proto_helpers.MemoryReactor() server.reactor = reactor # make the connection serverTransport = proto_helpers.StringTransport() server.makeConnection(serverTransport) # check that the ProxyClientFactory is connecting to the backend self.assertEqual(len(reactor.tcpClients), 1) # get the factory instance and check it's the one we expect host, port, clientFactory, timeout, _ = reactor.tcpClients[0] self.assertIsInstance(clientFactory, portforward.ProxyClientFactory) # Connect it client = clientFactory.buildProtocol(addr) clientTransport = proto_helpers.StringTransport() client.makeConnection(clientTransport) # check that the producers are registered self.assertIs(clientTransport.producer, serverTransport) self.assertIs(serverTransport.producer, clientTransport) # check the streaming attribute in both transports self.assertTrue(clientTransport.streaming) self.assertTrue(serverTransport.streaming)
Example #21
Source File: test_smtp.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def setUp(self): """ Create an ESMTP instance attached to a StringTransport. """ self.server = smtp.ESMTP({ 'LOGIN': imap4.LOGINCredentials}) self.server.host = 'localhost' self.transport = StringTransport( peerAddress=address.IPv4Address('TCP', '127.0.0.1', 12345)) self.server.makeConnection(self.transport)
Example #22
Source File: test_socks.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def connectClass(self, host, port, klass, *args): # fake it proto = klass(*args) proto.transport = StringTCPTransport() proto.transport.peer = address.IPv4Address('TCP', host, port) proto.connectionMade() self.driver_outgoing = proto return defer.succeed(proto)
Example #23
Source File: test_pb.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def establishClientAndServer(self, _ignored=None): """ Connect a client obtained from C{clientFactory} and a server obtained from the current server factory via an L{IOPump}, then assign them to the appropriate instance variables @ivar clientFactory: the broker client factory @ivar clientFactory: L{pb.PBClientFactory} instance @ivar client: the client broker @type client: L{pb.Broker} @ivar server: the server broker @type server: L{pb.Broker} @ivar pump: the IOPump connecting the client and server @type pump: L{IOPump} @ivar connector: A connector whose connect method recreates the above instance variables @type connector: L{twisted.internet.base.IConnector} """ self.client, self.server, self.pump = connectServerAndClient( self, self.clientFactory, self.serverFactory) self.connectorState = _ReconnectingFakeConnectorState() self.connector = _ReconnectingFakeConnector( address.IPv4Address('TCP', '127.0.0.1', 4321), self.connectorState) self.connectorState.notifyOnConnect().addCallback( self.establishClientAndServer)
Example #24
Source File: test_v2parser.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_proxyCommandIpv4(self): """ Test that proxy returns endpoint data for IPv4 connections. """ header = _makeHeaderIPv4(verCom=b'\x21') info = _v2parser.V2Parser.parse(header) self.assertTrue(info.source) self.assertIsInstance(info.source, address.IPv4Address) self.assertTrue(info.destination) self.assertIsInstance(info.destination, address.IPv4Address)
Example #25
Source File: test_wrapper.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_validIPv6HeaderResolves_getPeerHost(self): """ Test if IPv6 headers result in the correct host and peer data. """ factory = HAProxyWrappingFactory(Factory.forProtocol(StaticProtocol)) proto = factory.buildProtocol( address.IPv4Address('TCP', b'::1', 8080), ) transport = StringTransportWithDisconnection() proto.makeConnection(transport) proto.dataReceived(self.IPV6HEADER) self.assertEqual(proto.getPeer().host, b'0:0:0:0:0:0:0:1') self.assertEqual(proto.getPeer().port, 8080) self.assertEqual( proto.wrappedProtocol.transport.getPeer().host, b'0:0:0:0:0:0:0:1', ) self.assertEqual( proto.wrappedProtocol.transport.getPeer().port, 8080, ) self.assertEqual(proto.getHost().host, b'0:0:0:0:0:0:0:1') self.assertEqual(proto.getHost().port, 8888) self.assertEqual( proto.wrappedProtocol.transport.getHost().host, b'0:0:0:0:0:0:0:1', ) self.assertEqual( proto.wrappedProtocol.transport.getHost().port, 8888, )
Example #26
Source File: test_wrapper.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_validIPv4HeaderResolves_getPeerHost(self): """ Test if IPv4 headers result in the correct host and peer data. """ factory = HAProxyWrappingFactory(Factory.forProtocol(StaticProtocol)) proto = factory.buildProtocol( address.IPv4Address('TCP', b'127.0.0.1', 8080), ) transport = StringTransportWithDisconnection() proto.makeConnection(transport) proto.dataReceived(b'PROXY TCP4 1.1.1.1 2.2.2.2 8080 8888\r\n') self.assertEqual(proto.getPeer().host, b'1.1.1.1') self.assertEqual(proto.getPeer().port, 8080) self.assertEqual( proto.wrappedProtocol.transport.getPeer().host, b'1.1.1.1', ) self.assertEqual( proto.wrappedProtocol.transport.getPeer().port, 8080, ) self.assertEqual(proto.getHost().host, b'2.2.2.2') self.assertEqual(proto.getHost().port, 8888) self.assertEqual( proto.wrappedProtocol.transport.getHost().host, b'2.2.2.2', ) self.assertEqual( proto.wrappedProtocol.transport.getHost().port, 8888, )
Example #27
Source File: test_wrapper.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_invalidPartialHeaderDisconnects(self): """ Test if invalid headers result in connectionLost events. """ factory = HAProxyWrappingFactory(Factory.forProtocol(StaticProtocol)) proto = factory.buildProtocol( address.IPv4Address('TCP', b'127.1.1.1', 8080), ) transport = StringTransportWithDisconnection() transport.protocol = proto proto.makeConnection(transport) proto.dataReceived(b'PROXY TCP4 1.1.1.1\r\n') proto.dataReceived(b'2.2.2.2 8080\r\n') self.assertFalse(transport.connected)
Example #28
Source File: test_wrapper.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_invalidHeaderDisconnects(self): """ Test if invalid headers result in connectionLost events. """ factory = HAProxyWrappingFactory(Factory.forProtocol(StaticProtocol)) proto = factory.buildProtocol( address.IPv4Address('TCP', b'127.1.1.1', 8080), ) transport = StringTransportWithDisconnection() transport.protocol = proto proto.makeConnection(transport) proto.dataReceived(b'NOTPROXY anything can go here\r\n') self.assertFalse(transport.connected)
Example #29
Source File: test_protocol.py From afkak with Apache License 2.0 | 5 votes |
def setUp(self): self.peer = IPv4Address('TCP', 'kafka', 9072) self.protocol = KafkaBootstrapProtocol() self.transport = FakeTransport(self.protocol, isServer=False, peerAddress=self.peer) self.protocol.makeConnection(self.transport)
Example #30
Source File: test_channel.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_getHost(self): """ L{SSHChannel.getHost} returns the same object as the underlying transport's C{getHost} method returns. """ host = IPv4Address('TCP', '127.0.0.1', 12345) connectSSHTransport(service=self.channel.conn, hostAddress=host) self.assertEqual(SSHTransportAddress(host), self.channel.getHost())