[tor-dev] Remove "*" from pluggable transports spec?

David Fifield david at bamsoftware.com
Thu Mar 19 22:01:41 UTC 2015


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=4dcd7e94f17c072e771119ec90d7cbce4a4788a4
"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


More information about the tor-dev mailing list