Add python-eventlet package to MOS 9.0 repository
[packages/trusty/python-eventlet.git] / examples / twisted / twisted_srvconnector.py
1 from twisted.internet import reactor
2 from twisted.names.srvconnect import SRVConnector
3 from gnutls.interfaces.twisted import X509Credentials
4
5 from eventlet.twistedutil.protocol import GreenClientCreator
6 from eventlet.twistedutil.protocols.basic import LineOnlyReceiverTransport
7
8 class NoisySRVConnector(SRVConnector):
9
10     def pickServer(self):
11         host, port = SRVConnector.pickServer(self)
12         print('Resolved _%s._%s.%s --> %s:%s' % (self.service, self.protocol, self.domain, host, port))
13         return host, port
14
15 cred = X509Credentials(None, None)
16 creator = GreenClientCreator(reactor, LineOnlyReceiverTransport)
17 conn = creator.connectSRV('msrps', 'ag-projects.com',
18                           connectFuncName='connectTLS', connectFuncArgs=(cred,),
19                           ConnectorClass=NoisySRVConnector)
20
21 request = """MSRP 49fh AUTH
22 To-Path: msrps://alice@intra.example.com;tcp
23 From-Path: msrps://alice.example.com:9892/98cjs;tcp
24 -------49fh$
25 """.replace('\n', '\r\n')
26
27 print('Sending:\n%s' % request)
28 conn.write(request)
29 print('Received:')
30 for x in conn:
31     print(repr(x))
32     if '-------' in x:
33         break