Browse Source

document directory interaction a bit better

svn:r2994
Roger Dingledine 20 years ago
parent
commit
7c81603f3a
2 changed files with 21 additions and 7 deletions
  1. 7 7
      doc/rend-spec.txt
  2. 14 0
      doc/tor-spec.txt

+ 7 - 7
doc/rend-spec.txt

@@ -166,7 +166,7 @@ $Id$
    Bob's OP opens a stream to each directory server's directory port via Tor.
    Bob's OP opens a stream to each directory server's directory port via Tor.
    (He may re-use old circuits for this.)
    (He may re-use old circuits for this.)
    Over this stream, Bob's OP makes an HTTP 'POST' request, to the URL
    Over this stream, Bob's OP makes an HTTP 'POST' request, to the URL
-   '/rendezvous/publish' (relative to the directory server's root),
+   '/tor/rendezvous/publish' (relative to the directory server's root),
    containing as its body Bob's service descriptor.  Upon receiving a
    containing as its body Bob's service descriptor.  Upon receiving a
    descriptor, the directory server checks the signature, and discards the
    descriptor, the directory server checks the signature, and discards the
    descriptor if the signature does not match the enclosed public key.  Next,
    descriptor if the signature does not match the enclosed public key.  Next,
@@ -199,12 +199,12 @@ $Id$
 
 
 1.6. Alice's OP retrieves a service descriptor
 1.6. Alice's OP retrieves a service descriptor
 
 
-   Alice opens a stream to a directory server via Tor, and makes an HTTP GET
-   request for the document '/rendezvous/<y>', where '<y> is replaced with the
-   encoding of Bob's public key as described above. (She may re-use old
-   circuits for this.) The directory replies with a 404 HTTP response if
-   it does not recognize <y>, and otherwise returns Bob's most recently
-   uploaded service descriptor.
+   Alice opens a stream to a directory server via Tor, and makes an
+   HTTP GET request for the document '/tor/rendezvous/<y>', where
+   '<y> is replaced with the encoding of Bob's public key as described
+   above. (She may re-use old circuits for this.) The directory replies
+   with a 404 HTTP response if it does not recognize <y>, and otherwise
+   returns Bob's most recently uploaded service descriptor.
 
 
    If Alice's OP receives a 404 response, it tries the other directory
    If Alice's OP receives a 404 response, it tries the other directory
    servers, and only fails the lookup if none recognizes the public key hash.
    servers, and only fails the lookup if none recognizes the public key hash.

+ 14 - 0
doc/tor-spec.txt

@@ -802,6 +802,20 @@ entries.
 lists nodes that are connected currently
 lists nodes that are connected currently
 speaks http on a socket, spits out directory on request
 speaks http on a socket, spits out directory on request
 
 
+Directory servers listen on a certain port (the DirPort), and speak a
+limited version of HTTP 1.0. Clients send either GET or POST commands.
+The basic interactions are:
+  "%s %s HTTP/1.0\r\nContent-Length: %lu\r\nHost: %s\r\n\r\n",
+    command, url, content-length, host.
+  Get "/tor/" to fetch a full directory.
+  Get "/tor/dir.z" to fetch a compressed full directory.
+  Get "/tor/running-routers" to fetch a network-status descriptor.
+  Post "/tor/" to post a server descriptor, with the body of the
+    request containing the descriptor.
+
+  "host" is used to specify the address:port of the dirserver, so
+  the request can survive going through http proxies.
+
 A.1. Differences between spec and implementation
 A.1. Differences between spec and implementation
 
 
 - The current specification requires all ORs to have IPv4 addresses, but
 - The current specification requires all ORs to have IPv4 addresses, but