document directory interaction a bit better

svn:r2994
This commit is contained in:
Roger Dingledine 2004-11-27 05:23:59 +00:00
parent e5e45fe980
commit 7c81603f3a
2 changed files with 21 additions and 7 deletions

View File

@ -166,7 +166,7 @@ $Id$
Bob's OP opens a stream to each directory server's directory port via Tor.
(He may re-use old circuits for this.)
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
descriptor, the directory server checks the signature, and discards the
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
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
servers, and only fails the lookup if none recognizes the public key hash.

View File

@ -802,6 +802,20 @@ entries.
lists nodes that are connected currently
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
- The current specification requires all ORs to have IPv4 addresses, but