diff --git a/docs/code_structure.org b/docs/code_structure.org index 1efc68dcd..51952c731 100644 --- a/docs/code_structure.org +++ b/docs/code_structure.org @@ -7,6 +7,7 @@ **** self signed router descriptor *** Crypto key types + ** network / threading / sync utilities *** threadpool *** logic (single thread threadpool) @@ -15,7 +16,6 @@ *** ini parser *** llarp::Configuration - ** cryptography *** llarp::Crypto interface **** libsodium / sntrup implementation @@ -45,12 +45,14 @@ **** distinctly identified by the union of interface and direction **** Holds many ILinkSessions bound on the distinctly idenitfied direction/interface + ** link layer messages *** link layer message parser **** parses buffers as bencoded dicts *** link layer message handler **** handles each type of link layer message + ** IHopHandler *** llarp::PathHopConfig **** txid, rxid, shared secret at hop @@ -62,24 +64,28 @@ **** has txid, rxid, shared secret, hash of shared secret - ** pathset *** path::Builder **** builds and maintains a set of paths for a common use + ** routing layer message router *** routing::IMessageHandler **** interface for routing layer message processing **** transit hops implement this if they are an endpoint **** path::Path implement this always + ** dht "layer" / rc gossiper +*** TODO rewrite/refactor + ** hidden service data structures *** IntroSet **** decrypted plaintext hidden service descriptor *** EncryptedIntroSet **** public encrpyted / signed version of IntroSet + ** service endpoint / outbound context connectivitybackend *** service::Endpoint **** backend for sending/recieving packets over the hidden service protocol layer @@ -89,14 +95,23 @@ *** service::OutboundContext **** implements SendContext extends path::Builder and path::PathSet **** for maintaining a pathset that aligns on an introset's intros +~ -** snode / exit session management -*** exit::Session - ** snode / exit connectivity backend +*** exit::BaseSession +**** extends path::Builder +**** obtains an exit/snode session from the router they are aligning to +*** exit::Endpoint +**** snode/exit side of an exit::Session ** snapp / exit / mobile / null frontend handlers +*** handlers::TunEndpoint +**** extends service::Endpoint +**** provides tun interface frontend for hidden service backend +*** handlers::ExitEndpoint +**** provides tun interface frontend for exit/snode backend -** outbound message dispatcher +** outbound message dispatcher +*** TODO tom please document these