I was going to write an email advocating for the removal of the wildcard '*' transport specification in pt-spec.txt. But then I saw that the current version of the spec doesn't mention the wildcard anymore; it was replace with a TODO in https://gitweb.torproject.org/torspec.git/commit/pt-spec.txt?id=4dcd7e94f17c... "TODO: Document '*' transport"
So how about we remove the TODO and just act like it never existed?
Normally tor tells the transport plugin what transports to activate by giving it a string like "obfs3,obfs4"; but you're supposed to also be able to pass "*", which means "activate all transports you are capable of." Apparently this feature, though pyptlib and goptlib support it, has never been implemented in tor itself: Implement the wildcard "*" protocol in {Client,Server}TransportPlugin lines https://trac.torproject.org/projects/tor/ticket/3725
A wildcard specification doesn't really make sense, anyway. For one example, flashproxy-client knows two transport names, "flashproxy" and "websocket", which are synonyms. But if tor asks for "*", flashproxy-client shouldn't open up two listeners. Another case is fog (a dynamic transport combiner), which constructs a chain of transports from a transport name like "obfs3_websocket". The transports can be combined in infinite ways; it doesn't make sense to say, "activate all of them." https://lists.torproject.org/pipermail/tor-dev/2013-December/005966.html
Let's just drop this part of the spec, and delete some underspecified and unused code?
David Fifield