Changes between and of Initial VersionVersion 79Ticket #3014


Ignore:
Timestamp:
05/06/2011 09:44:13 AM (4 years ago)
Author:
exarkun
Comment:

Adjusting the ticket description to reflect recent consensus.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3014

    • Property Status changed from new to assigned
    • Property Author changed from dripton to therve
    • Property Cc therve cassidy exarkun jknight thijs nicolas.pouillard@… martin@… p.mayers@… andyhhp@… thomas@… added
    • Property Summary changed from TCP over IPv6 (patch) to Support IPv6 at least as well as IPv4 is supported
    • Property Priority changed from normal to high
    • Property Keywords ipv6 added; review removed
    • Property Branch changed from to branches/tcp-ipv6-3014
    • Property Author changed from therve to dripton, victorvieux
    • Property Owner changed from glyph to dripton
  • Ticket #3014 – Description

    initial v79  
    1 Here's my attempt to add TCP over IPv6 to Twisted. 
     1Twisted should provide functionality for IPv6 addresses equivalent to that provided for IPv4 addresses. 
    22 
    3 test_tcp6.py passes for me.  (Note that if IPv6 isn't enabled on your box, it will whine about int vs. string errors, caused by twisted.python.compat redefining socket.AF_INET6.  Try "ping6 ::1" if you're not sure.) 
     3See [wiki:IPv6 IPv6] and #5084, #5085, #5086, #5087, #4470, #4859, and #4362 for progress on this issue.  This ticket will be resolved when a fair amount of progress on those other more specific tickets has been made. 
    44 
    5 No UDP code yet.  Later. 
    6  
    7 Scoped getaddrinfo lookups are a weak point.  The problem is that link-local IPv6 addresses (the only kind most people probably have, except for loopback) are only valid when scoped to the right interface.  So 'ping6 fe80::217:31ff:fe53:fa10' fails while 'ping6 fe80::217:31ff:fe53:fa10%eth0' succeeds.  Unfortunately the latter syntax is not universal.  There are various ways to find the right scopeid to insert into the sockaddr tuple, but I'm not sure how portable they are, and they'd complicate the basic Twisted resolver logic, so I didn't bother yet. 
    8  
    9 Yes, there's massive code duplication between tcp.py and _tcp6.py, and between test_tcp.py and test_tcp6.py  Suggestions welcome.  (One obvious suggestion is to have every class in _tcp6 inherit from the one in tcp.  My first attempt at that was buggy, but I can try again.) 
     5(Disregard the attachments, comments, and branch for this ticket; they served to arrive at a plan for supporting IPv6 but many of them are now out of date.)