[Twisted-Python] Writing new transports / a tunnel Protocol

Michael Carter cartermichael at gmail.com
Sun Jul 27 03:28:37 MDT 2008


Hello,

I'm hoping to use existing protocol implementations in twisted, but over a
custom tunneling protocol that I'll call CTP for the remainder of this
thread. CTP is basically TCP with a couple of strange characteristics.
Besides a custom handshake, two actual tcp connections are used for the data
transport, each of which is considered uni-directional; one connection is
used for "upstream" and one for "downstream".

I know how to create a twisted factory / protocol implementation for CTP
such that you could write a CTP based protocol by inheriting from
CTPProtocol and overriding the "dataRead" function. But this means I have to
do more work to get each existing twisted protocol working with my CTP
implementation.

So my question is, what is the best way to take an implementation of this
protocol and integrate it tightly with twisted's internals? It seems like I
would need a new reactor implementation with a listenCTP function, for one.
Of course, I wouldn't want to just inherit from the SelectReactor, because I
want to be able to use Epoll (or others) as well.

Please excuse my ignorance of twisted's architecture. I already have a
prototype of this (see orbited 0.5.x) but I want my next release to
integrate tightly with twisted's infrastructure instead of re-inventing an
API on top.

-Michael Carter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20080727/a6b2cc71/attachment.html>


More information about the Twisted-Python mailing list