aboutsummaryrefslogtreecommitdiff
path: root/proposals/196-transport-control-ports.txt
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2013-08-15 12:20:39 -0400
committerNick Mathewson <nickm@torproject.org>2013-08-15 12:20:39 -0400
commit8e2cfca81a0e67ee90c8df55e97da02fe71494f7 (patch)
tree2f63a025e57216b8c5fe46c10b6a7aea4ed1867e /proposals/196-transport-control-ports.txt
parent5380544e8e30408c30c057a3f4b8157815b0a059 (diff)
parent3fe179789a9c0e86fe69240cf183fd7a196f3a5f (diff)
downloadtorspec-8e2cfca81a0e67ee90c8df55e97da02fe71494f7.tar.gz
torspec-8e2cfca81a0e67ee90c8df55e97da02fe71494f7.zip
Merge branch 'bug7751_take2_squashed'
Diffstat (limited to 'proposals/196-transport-control-ports.txt')
-rw-r--r--proposals/196-transport-control-ports.txt36
1 files changed, 33 insertions, 3 deletions
diff --git a/proposals/196-transport-control-ports.txt b/proposals/196-transport-control-ports.txt
index c7f1c3a..4bb8a40 100644
--- a/proposals/196-transport-control-ports.txt
+++ b/proposals/196-transport-control-ports.txt
@@ -55,6 +55,8 @@ Target: 0.2.4.x
3.1. The new extended ORPort protocol
+3.1.1. Protocol
+
The extended server port protocol is as follows:
COMMAND [2 bytes, big-endian]
@@ -67,8 +69,11 @@ Target: 0.2.4.x
bytes sent by the transport will be those tunneled over it.
(body ignored)
- [0x0001] USERADDR: an address:port string that represents the user's
- address.
+ [0x0001] USERADDR: an address:port string that represents the
+ client's address.
+
+ [0x0002] TRANSPORT: a string of the name of the pluggable
+ transport currently in effect on the connection.
Replies sent from tor to the proxy are:
@@ -82,7 +87,32 @@ Target: 0.2.4.x
the TransportControlPort. See the 'Association and identifier
creation' section below.
- Parties should ignore command codes that they do not understand.
+ Parties MUST ignore command codes that they do not understand.
+
+ If the server receives a recognized command that does not parse, it
+ MUST close the connection to the client.
+
+3.1.2. Command descriptions
+
+3.1.2.1. USERADDR
+
+ An ASCII string holding the TCP/IP address of the client of the
+ pluggable transport proxy. A Tor bridge SHOULD use that address to
+ collect statistics about its clients.
+
+ The string MUST not be NUL-terminated.
+
+3.1.2.2. TRANSPORT
+
+ An ASCII string holding the name of the pluggable transport used by
+ the client of the pluggable transport proxy. A Tor bridge that
+ supports multiple transports SHOULD use that information to collect
+ statistics about the popularity of individual pluggable transports.
+
+ The string MUST not be NUL-terminated.
+
+ Pluggable transport names are C-identifiers and Tor MUST check them
+ for correctness.
3.2. The new TransportControlPort protocol