[tor-commits] [flashproxy/master] Add specification for pluggable transport client registration.

infinity0 at torproject.org infinity0 at torproject.org
Mon Oct 28 14:47:40 UTC 2013


commit be7b10f57ecbde95ef5a0a87d8264417f4bdbf2d
Author: George Kadianakis <desnacked at riseup.net>
Date:   Tue Aug 13 16:46:18 2013 +0300

    Add specification for pluggable transport client registration.
    
    Spec changes
    
    tarnsport design.txt
---
 doc/design.txt |   36 +++++++++++++++++++++++++++++-------
 1 file changed, 29 insertions(+), 7 deletions(-)

diff --git a/doc/design.txt b/doc/design.txt
index bc0f377..f38ba55 100644
--- a/doc/design.txt
+++ b/doc/design.txt
@@ -116,14 +116,24 @@ Design of flash proxies
   flash proxy and the local Tor client.
 
   On startup, the client transport plugin sends a registration message
-  to the facilitator, informing the facilitator that it is waiting for a
-  connection. The facilitator will later hand this registration to a
-  flash proxy. The registration message is an HTTP POST request of the
-  form:
+  to the facilitator, informing the facilitator that it is waiting for
+  a connection. If the client transport plugin obfuscates its
+  connections using pluggable transports, then it also appends the
+  listening address of its transports to the registration message.
+
+  The facilitator will later hand this registration to a flash
+  proxy. The registration message is an HTTP POST request of the form:
 
     POST / HTTP/1.0
 
-    client=[<address>]:<port>
+    client-<transport>=[<address>]:<port>[&client-<transport>=[<address>]:<port>...]
+
+  Where 'transport' is the name of the pluggable transport that is
+  listening on <address>:<port>. The default flashproxy transport is
+  named 'websocket'.
+
+  For example a registration message would look like this:
+    client-websocket=1.2.3.4:9000&client-obfs3|websocket=1.2.3.4:10000
 
   The facilitator sends a 200 reply if the registration was successful
   and an error status otherwise. If the transport plugin omits the
@@ -149,12 +159,24 @@ Design of flash proxies
   The proxy asks the facilitator for a registration with an HTTP GET
   request:
 
-    GET / HTTP/1.0
+    GET /r=<version>&client=<client addr>&transport=<transport name> HTTP/1.0
 
+  The 'r' parameter is the protocol revision number (should be '1' for now).
+  The 'client' parameter carries the IP address of a flashproxy
+  client. The client parameter can can repeat to report multiple
+  connected clients.
+  The 'transport' parameter is optional and signals the transports that
+  this flashproxy supports.
+
+  For example:
+   GET /r=1&client=7.1.43.21&client=1.2.3.4&transport=webrtc&transport=websocket HTTP/1.0
 
   The response code is 200 and the body looks like this:
 
-    client=[<address>:<port>]&relay=<address>:<port>
+    client-<transport>=[<address>:<port>]&relay-<transport>=<address>:<port>
+
+  For example:
+   client-obfs3|websocket=1.2.3.4:2000&relay-obfs3|websocket=10.10.10:9902
 
   If the value for the client parameter is empty, it means that there are no
   client registrations for this proxy.





More information about the tor-commits mailing list