Logic to implement rendezvous/introduction via unknown servers.
commitec83652357ba4772203e32f02dcc69910b964079
authorNick Mathewson <nickm@torproject.org>
Wed, 29 Jun 2005 21:46:55 +0000 (29 21:46 +0000)
committerNick Mathewson <nickm@torproject.org>
Wed, 29 Jun 2005 21:46:55 +0000 (29 21:46 +0000)
treee5a5113d256fac9d34bdecaeaf77134998d570bc
parent0505b31933ce386ad0ac11855d3f0a8d0ba17b75
Logic to implement rendezvous/introduction via unknown servers.

- Add a new extend_info_t datatype to hold information needed to
  extend a circuit (addr,port,keyid,onion_key).  Use it in cpath and
  build_state.  Make appropriate functions take or return it instead of
  routerinfo_t or keyid.

- #if 0 needless check in circuit_get_by_edge_conn; if nobody triggers this
  error in 0.1.0.10, nobody will trigger it.

- Implement new hidden service descriptor format, which contains "extend
  info" for introduction points, along with protocol version list.
  - Parse new format.
  - Generate new format
  - Cache old and new formats alongside each other.
  - Directories serve "old" format if asked in old way, "newest available"
    format if asked in new way.
  - Use new format to find introduction points if possible; otherwise fall
    back.  Keep nickname lists and extendinfo lists in sync.
  - Tests for new format.

- Implement new "v2" INTRODUCE cell format.
  - Accept new format
  - Use new format if we have a versioned service descriptor that says the
    server accepts the new format.

- Add documentation for functions and data types.

svn:r4506
13 files changed:
src/or/circuitbuild.c
src/or/circuitlist.c
src/or/circuituse.c
src/or/connection_edge.c
src/or/control.c
src/or/directory.c
src/or/onion.c
src/or/or.h
src/or/relay.c
src/or/rendclient.c
src/or/rendcommon.c
src/or/rendservice.c
src/or/test.c