[Twisted-Python] twisted.internet and IPv6

Stefan Behnel behnel_ml at gkec.informatik.tu-darmstadt.de
Mon Oct 18 08:51:37 EDT 2004


exarkun at divmod.com schrieb:
 > On Thu, 30 Sep 2004 10:12:18 +0200, Stefan Behnel <behnel_ml at gkec.informatik.tu-darmstadt.de> wrote:
 >>I'm curious: how much work would it be to enable IPv6 support in twisted.internet?
 >
 >   Not very much.  About a year ago, I wrote this:
 >     http://cvs.twistedmatrix.com/cvs/trunk/sandbox/exarkun/ipv6.py?view=markup&rev=10540&root=Twisted
 >   This is no longer how I'd like to see IPv6 supported in Twisted, but it gives an idea of how few changes are required.

That really doesn't seem to be a big change in the current code base. It's not very object oriented, though, so as you said, it would have to be rewritten to integrate it with Twisted.

However, I think the address handling would be a thing worth generalizing. I found this on the web:

http://c0re.23.nu/c0de/IPy/

I already had to adapt it a bit as some code parts are somewhat clumsy, but I find it a nice abstraction for IP addresses. If such a thing was part of Twisted, the interfaces for handling IPv[46] could become completely transparent.

You could even cut them into the existing interfaces:

-----------------------------------------
from IPy import IP
def connectTCP(host, port, ...)
   if isinstance(host, str):
     ... # use original IPv4 implementation - or convert host to IP(host)
   elif isinstance(host, IP):
     ... # connect either with IPv4 or IPv6, depending on host.version()
-----------------------------------------

Stefan




More information about the Twisted-Python mailing list