Opened 12 years ago
Last modified 8 years ago
#203 closed task
switch to using Endpoints — at Initial Version
Reported by: | Brian Warner | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 0.12.0 |
Component: | network | Version: | 0.6.4 |
Keywords: | Cc: | reg.trac.foolscap.4v9Xu@… |
Description
Starting in Twisted-10.1, "Endpoints" are the preferred way to set up servers and clients. They are intended to encapsulate a variety of ways of making streaming network connections (of which TCP is one possibility, but unix-sockets, SOCKS proxies, TOR .onion addresses, i2p connections, and cjdns connections are others).
The "type" extension field in Foolscap's "connection hints" are intended to reflect this variety, starting with accomodating both ipv4 and ipv6, but meant to cover other things in the future too (like .i2p addresses which aren't associated with port numbers).
It would probably be a good idea to change Foolscap's internal
socket-handling code to use Endpoints rather than
internet.TCPServer
and reactor.connectTCP
directly. It might also
be good to allow our connection hints to include any string that
endpoints.clientFromString
is capable of parsing.
This process started in #167 (where early Endpoints support broke foolscap and needed to be worked around), and continues in #155 (where Endpoints might make ipv6 support easier).