Commit Graph

8348 Commits (3103194ec4fadae337ae5c724d0739440836435c)
 

Author SHA1 Message Date
dr7ana 0eaf85437a Design review meeting
- Session initiation code laid out from path build to successful session object creation
- NullEndpoint renamed to more apt descriptor
6 months ago
dr7ana bbbc4336cf Transposed address types
- It became increasingly tedious to partition the address types between {Client,Relay}Address, as a client can operate an exit or hidden service while a relay could also be operating a hidden service. The client's hidden service would terminate in a `.loki` while the relay's would terminate in a `.snode`, complicating the ONS logic implemented in ClientAddress
- Address types were partitioned into {Network,Relay}Address; NetworkAddress conceptually encapsulates all remote hidden services (agnostic of client vs relay) and exit nodes being operated on the network: RelayAddress specifically designates an addressible relay to be used in scopes excluding hidden services and exit nodes
6 months ago
dr7ana aae23c17ff Restructuring, session initiation
- combined {exit,service}::Endpoint into handlers::LocalEndpoint
- combined {exit,service}::Handler into handlers::RemoteHandler
- BaseSession subsumed {Client,Relay}Session -> OutboundSession
- Session initialization code underway
6 months ago
dr7ana 6a20b3df4f libquic c++20/ev-loop/ip bump 6 months ago
dr7ana abb16b192f Putting new objects to use
- cleaned up config parsing using the better Address/IP types and quic::Address where appropriate
- created new templated address_map using concepts constraining local types to quic::Address and IPRange, and remote types to {Client,Relay}Address
- now the correct local addresses and ranges can be passed to the correct handlers and endpoints for remote and local exit/service operation
- basically fully configured ::RemoteHandler
- deleted deprecated object files previously removed from compilation
6 months ago
dr7ana 0301bc8164 re-separated address classes
- there is one key difference between the address classes: ClientAddress can be constructed with an ONS name, and can therefore exist in one of 2 dual states (pubkey vs ONS)
6 months ago
dr7ana b037c04285 compile fixes (except for consteval fmt::format oddities 6 months ago
dr7ana d0203b3dec config parsing cleaned up for owned ranges and addresses 6 months ago
dr7ana d8f97028b5 templated remoteaddress object
- eliminated {client,relay}address
- better loops in new key types
6 months ago
dr7ana a8c6673da3 ip packet checksums for ipv4/6, udp/tcp 6 months ago
dr7ana bb5f1b310c libquic bump 6 months ago
dr7ana d0af37aafc fully deprecated old logging 6 months ago
dr7ana bf2f367f83 bye bye bencode baby bye byeeee 6 months ago
dr7ana 44e7c1b640 libquic bump 7 months ago
dr7ana 8cc152a3c0 C++ version, clang-format
- C++ bumped 17 -> 20
- clang-format (plus all clangs) -> 17
8 months ago
dr7ana b7b93981fe compiling, not linking 8 months ago
dr7ana 28194aa76d libquic bump 8 months ago
dr7ana e6d4814d3e deprecation nation
- old types almost entirely deprecated (ip_packet, sockaddr, etc)
- need to touch base with the team to discuss packet routing and the like
8 months ago
dr7ana 0d7b973ffa link_manager generates static_secret for quic ep 8 months ago
dr7ana 800c62b2ee event loop swap
- brought up libev loop implementation from libquic
- this will streamline deprecating the old IP_packet, UDPHandle, and other types
8 months ago
dr7ana f541d0bc7e bump libquic to expose ev loop 8 months ago
dr7ana 53552ad579 deprecated net/ip_address and path/path_context 8 months ago
dr7ana 76f720ef6d bump libquic for updated exposed ranges 8 months ago
dr7ana e495637383 deprecated old types from config 8 months ago
dr7ana b1f0f371d5 ToString is no longer camelcase because why would it be??? 8 months ago
dr7ana 25f13c905a deprecated byte_t (twas a dumb typedef anyways) 8 months ago
dr7ana ac6255c736 Squashed commits for merge errors afer fixing client-refactor:
- Deprecate pathset, smashed into PathBuilder (renamed to PathHandler)
- Re-abstraction of sessions and PathHandlers
  - Renamed PathBuilder -> PathHandler to more accurately reflect purpose
  - {Service,Exit}Handler will remain as PathHandlers, though currently no path-sharing amongst sessions being managed is to be implemented. Handlers will maintain their own paths for both lookups and initiating sessions, while sessions will manage their paths independantly.
  - Session object handling necessitates the differentiation between outbound and inbound sessions. Initiators of sessions are entirely responsible for dictating the chosen path on which the session communicates, and must therefore continually build and manage paths for the negotiated session.
  - Outbound sessions are now {Service,Exit}Sessions
  - Inbound sessions are implemented with InboundSession, which is agnostic to the type of service being operated locally (service vs exit, client vs relay, etc). When the Session initiator signals a switch to a different path, it will be assigned to the InboundSession object by {Service,Exit}Endpoint, which manages local services and exits
8 months ago
dr7ana 5004fbc364 libquic testing out verbose bparser stuff 8 months ago
dr7ana cba6cd8398 asserts 8 months ago
dr7ana b733415e68 formatting 8 months ago
dr7ana 2d3e68a759 log 8 months ago
dr7ana b15f3e7a9d commented out decaf20 log changes 8 months ago
dr7ana a79a5d2ea0 bump libquic after merging pr#100 8 months ago
dr7ana 62002c3666 Loop call fixes, libquic bump to latest fixes 8 months ago
dr7ana 27f09f0b50 log crit 8 months ago
dr7ana 0fe8c6f0a6 remove a few calls to bootstrap fallback 8 months ago
dr7ana fbd193540b nodedb one-liner 8 months ago
dr7ana 5f8e1ada15 formatting 8 months ago
dr7ana 861d573e6a Clear application map connection entry earlier 8 months ago
dr7ana 722b03baaa libquic bump 8 months ago
dr7ana 7970ad2d07 Simul-defer connections
- When two relays are repeatedly attempting connections to one another simultaneously, the connection initiated by the RouterID that appears first (in lexicographical order) is deferred to. The connection initiated by the other endpoint is marked to close quietly (w/o executing callbacks), and is rejected in the TLS verification hook
- Bypassing callback execution is critical, as it will clean-up the link::Connection object for the connection that is being deferred to; this results in BOTH connections being destroyed.
8 months ago
dr7ana 12381c876f libquic vbump 8 months ago
dr7ana 261fc6be83 REVERT: verbose close logging
- misc libquic fixes squashed into this
- thread-safe wrapping
8 months ago
dr7ana 6073377171 libquic vbump 8 months ago
dr7ana 9cc3efcfa7 a soothing renomenclatura
- removed superfluous typedefs obfuscating what is actually happening
- Builder -> PathBuilder; next is moving PathSet into PathBuilder
- enum -> enum class where appropriate
- ran linter
8 months ago
dr7ana fb19e148db squash: kick testnet 8 months ago
dr7ana 2c12f06fd1 libquic vbump 8 months ago
dr7ana 95fe45eb5d Deprecate pending_msg_que in favor of libquic internal stream buffers 8 months ago
dr7ana 674edab31f No fetch only throw 8 months ago
dr7ana c0b6277496 HAPPY NEW YEAR 8 months ago