Skip to content
  • Nick Mathewson's avatar
    Logic to implement rendezvous/introduction via unknown servers. · ec836523
    Nick Mathewson authored
    - 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
    ec836523