Control Protocol Spec Error, Grammars Use Outdated Production ServiceID
Problem
The grammar for circuit-status (https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/spec/control-spec.txt#l473) is not correct. Note that the grammar of Path (https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/spec/control-spec.txt#l1003) specifies a list of ServerIDs (https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/spec/control-spec.txt#l100), which are either a Nickname (https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/spec/control-spec.txt#l102) or Fingerprint (https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/spec/control-spec.txt#l104). However, as you can see below, I got a list of LongNames (https://gitweb.torproject.org/tor.git/blob/HEAD:/doc/spec/control-spec.txt#l124) instead.
How to Reproduce
Start Tor with open control port
mil:~ tim$ tor --ControlPort 9051
Nov 15 !08:27:11.110 [notice] Tor v0.2.2.17-alpha (git-dadd9608d2720368)
Query for circuit-status
mil:~ tim$ nc 127.0.0.1 9051 AUTHENTICATE "" 250 OK getinfo circuit-status 250+circuit-status= 5 BUILT $7EA6EAD6FD83083C538F44038BBFA077587DD755=dizum,$4765D3E659EED7368CE3E3320E6F19287BDBAACE=AIVD,$30CE3219D2B62474F94C299BB2D508DC856EBC1D=TorRox PURPOSE=GENERAL 4 BUILT $DF4DBB7C093E640F2C8DA91007A5BFB166DA2D04=Nihilopticon,$4765D3E659EED7368CE3E3320E6F19287BDBAACE=AIVD,$92ADC1C92B0CDFCAD18538EA59C28D02CA1899AD=feydakins PURPOSE=GENERAL 3 BUILT $BA0BE940337C8FD2AD0B97D74BB6EF3B4E992BED=WeAreAHedge,$52D8562CA21D40C0F8396F0952DBDA26C67339BB=PDQVPN1,$4D1B7FF1E49E249042451F91EF996DC34EDFCDEE~bazinga PURPOSE=GENERAL . 250 OK
How To Fix
To fix this specific problem the grammer of circuit-status or Path needs to be updated. I haven't explored the specification in depth to see what effect this will have in other areas.
Trac:
Username: Poet