[Twisted-Python] twisted.internet and IPv6

Stefan Behnel behnel_ml at gkec.informatik.tu-darmstadt.de
Thu Sep 30 04:12:18 EDT 2004


Hi!

I'm curious: how much work would it be to enable IPv6 support in twisted.internet?

When I do

---------------------------------------
cd twisted/internet
fgrep INET *.py
---------------------------------------

I get a number of references to IPv4 that make me believe that t.i.* is not quite IPv6 clean by itself:

---------------------------------------
default.py:        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
default.py:        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
javareactor.py:        return ('INET', InetAddress.getLocalHost().getHostAddress(), self.jport.port)
javareactor.py:        return ('INET', addr.getHostAddress(), self.skt.getPort())
javareactor.py:        return ("INET", self.host, self.port)
tcp.py:    addressFamily = socket.AF_INET
tcp.py:        return address.IPv4Address('TCP', *(self.socket.getsockname() + ('INET',)))
tcp.py:        return address.IPv4Address('TCP', *(self.addr + ('INET',)))
tcp.py:        return address.IPv4Address('TCP', *(self.socket.getsockname() + ('INET',)))
tcp.py:        return address.IPv4Address('TCP', *(self.client + ('INET',)))
tcp.py:    addressFamily = socket.AF_INET
tcp.py:        return address.IPv4Address('TCP', *(self.socket.getsockname() + ('INET',)))
tcp.py:        return address.IPv4Address('TCP', self.host, self.port, 'INET')
udp.py:    addressFamily = socket.AF_INET
udp.py:        return address.IPv4Address('UDP', *(self.socket.getsockname() + ('INET_UDP',)))
udp.py:        Returns a tuple of ('INET_UDP', hostname, port), indicating
udp.py:        return address.IPv4Address('UDP', self.remotehost, self.remoteport, 'INET_UDP')
---------------------------------------

What would be needed? Would a new reactor be a good solution? "reactor6" ? Or rather extending the current one?

I'd say a reactor6 would be cleaner, but on the other hand, a simple flag could do the trick from the API perspective.

Any comments on this?

Stefan





More information about the Twisted-Python mailing list