diff --git a/examples/twisted_ex2.py b/examples/twisted_basic_client.py similarity index 100% rename from examples/twisted_ex2.py rename to examples/twisted_basic_client.py diff --git a/examples/twisted_ex3_server.py b/examples/twisted_basic_server.py similarity index 100% rename from examples/twisted_ex3_server.py rename to examples/twisted_basic_server.py diff --git a/examples/twisted_ex4_xcap_proxy.py b/examples/twisted_ex4_xcap_proxy.py deleted file mode 100644 index 0694ee4..0000000 --- a/examples/twisted_ex4_xcap_proxy.py +++ /dev/null @@ -1,94 +0,0 @@ -from twisted.internet import pollreactor; pollreactor.install() -from twisted.internet.protocol import Factory -from twisted.internet import reactor -from twisted.protocols import basic -from twisted.internet.error import ConnectionDone - -from xcaplib.client import XCAPClient - -from eventlet.api import spawn, get_hub -from eventlet.channel import channel - -class LineOnlyReceiver(basic.LineOnlyReceiver): - - def __init__(self, channel): - self.channel = channel - - def lineReceived(self, line): - spawn(self.channel.send, line) - - def connectionLost(self, reason): - self.channel.send_exception(reason.value) - - -class line_only_receiver: - - def __init__(self, protocol, channel): - self.protocol = protocol - self.channel = channel - - def readline(self): - return self.channel.receive() - - def send(self, data): - self.protocol.transport.write(data) - - def sendline(self, line): - self.protocol.sendLine(line) - - # iterator protocol: - - def __iter__(self): - return self - - def next(self): - try: - return self.readline() - except ConnectionDone: - raise StopIteration - - -class MyFactory(Factory): - protocol = LineOnlyReceiver - - def __init__(self, handler): - self.handler = handler - - def buildProtocol(self, addr): - ch = channel() - p = self.protocol(ch) - p.factory = self - spawn(self.handler, line_only_receiver(p, ch)) - return p - -def xcaplib_enable_eventlet(): - from eventlet.green import urllib2 - from xcaplib import httpclient - # replacing all the references to the old urllib2 in xcaplib: - httpclient.urllib2 = urllib2 - httpclient.HTTPRequest.__bases__ = (urllib2.Request,) - -xcaplib_enable_eventlet() -client = XCAPClient('https://xcap.sipthor.net/xcap-root', 'alice@example.com', '123') - -def perform_request(line): - app, context, node = (line + ' ').split(' ', 3) - context = {'u' : 'users', 'g': 'global'}.get(context, context) - try: - return str(client._get(app, node, globaltree=context=='global')) - except Exception, ex: - return str(ex) - -def handler(conn): - peer = conn.protocol.transport.getPeer() - print 'new connection from %s' % (peer, ) - try: - for line in conn: - print 'received from %s: %s' % (peer, line) - conn.protocol.transport.write(perform_request(line)) - print peer, 'connection done' - except Exception, ex: - print peer, ex - -reactor.listenTCP(8007, MyFactory(handler)) -get_hub().switch() diff --git a/examples/twisted_ex5_xcap_proxy.py b/examples/twisted_xcap_proxy.py similarity index 68% rename from examples/twisted_ex5_xcap_proxy.py rename to examples/twisted_xcap_proxy.py index fe0e0af..729dacc 100644 --- a/examples/twisted_ex5_xcap_proxy.py +++ b/examples/twisted_xcap_proxy.py @@ -1,13 +1,11 @@ -from twisted.internet import pollreactor; pollreactor.install() from twisted.internet.protocol import Factory from twisted.internet import reactor from twisted.protocols import basic -from xcaplib.client import XCAPClient +from xcaplib.green import XCAPClient -from eventlet.api import get_hub from eventlet.twisteds.util import callInGreenThread - +from eventlet.twisteds import join_reactor class LineOnlyReceiver(basic.LineOnlyReceiver): @@ -28,15 +26,6 @@ class LineOnlyReceiver(basic.LineOnlyReceiver): class MyFactory(Factory): protocol = LineOnlyReceiver -def xcaplib_enable_eventlet(): - from eventlet.green import urllib2 - from xcaplib import httpclient - # replacing all the references to the old urllib2 in xcaplib: - httpclient.urllib2 = urllib2 - httpclient.HTTPRequest.__bases__ = (urllib2.Request,) - -xcaplib_enable_eventlet() client = XCAPClient('https://xcap.sipthor.net/xcap-root', 'alice@example.com', '123') reactor.listenTCP(8007, MyFactory()) -get_hub().switch() - +reactor.run()