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. 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 Alice opens a stream to a directory server via Tor, and makes an
request for the document '/rendezvous/<y>', where '<y> is replaced with the HTTP GET request for the document '/tor/rendezvous/<y>', where
encoding of Bob's public key as described above. (She may re-use old '<y> is replaced with the encoding of Bob's public key as described
circuits for this.) The directory replies with a 404 HTTP response if above. (She may re-use old circuits for this.) The directory replies
it does not recognize <y>, and otherwise returns Bob's most recently with a 404 HTTP response if it does not recognize <y>, and otherwise
uploaded service descriptor. 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.

View file

@ -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