Commit Graph

8275 Commits

Author SHA1 Message Date
dr7ana
e495637383 deprecated old types from config 2024-02-06 07:33:11 -08:00
dr7ana
b1f0f371d5 ToString is no longer camelcase because why would it be??? 2024-02-05 06:06:56 -08:00
dr7ana
25f13c905a deprecated byte_t (twas a dumb typedef anyways) 2024-02-05 05:49:34 -08:00
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
2024-02-05 05:19:05 -08:00
dr7ana
5004fbc364 libquic testing out verbose bparser stuff 2024-02-04 10:43:45 -08:00
dr7ana
cba6cd8398 asserts 2024-02-02 13:26:36 -08:00
dr7ana
b733415e68 formatting 2024-02-02 12:50:48 -08:00
dr7ana
2d3e68a759 log 2024-02-02 12:50:23 -08:00
dr7ana
b15f3e7a9d commented out decaf20 log changes 2024-02-02 08:09:03 -08:00
dr7ana
a79a5d2ea0 bump libquic after merging pr#100 2024-02-02 07:11:30 -08:00
dr7ana
62002c3666 Loop call fixes, libquic bump to latest fixes 2024-02-01 10:44:06 -08:00
dr7ana
27f09f0b50 log crit 2024-02-01 07:55:11 -08:00
dr7ana
0fe8c6f0a6 remove a few calls to bootstrap fallback 2024-02-01 07:02:12 -08:00
dr7ana
fbd193540b nodedb one-liner 2024-02-01 06:49:21 -08:00
dr7ana
5f8e1ada15 formatting 2024-02-01 04:48:55 -08:00
dr7ana
861d573e6a Clear application map connection entry earlier 2024-02-01 04:48:39 -08:00
dr7ana
722b03baaa libquic bump 2024-01-31 14:27:07 -08:00
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.
2024-01-31 07:54:12 -08:00
dr7ana
12381c876f libquic vbump 2024-01-31 07:54:12 -08:00
dr7ana
261fc6be83 REVERT: verbose close logging
- misc libquic fixes squashed into this
- thread-safe wrapping
2024-01-31 07:54:12 -08:00
dr7ana
6073377171 libquic vbump 2024-01-31 07:54:12 -08:00
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
2024-01-31 07:54:12 -08:00
dr7ana
fb19e148db squash: kick testnet 2024-01-31 07:54:12 -08:00
dr7ana
2c12f06fd1 libquic vbump 2024-01-31 07:54:12 -08:00
dr7ana
95fe45eb5d Deprecate pending_msg_que in favor of libquic internal stream buffers 2024-01-31 07:54:12 -08:00
dr7ana
674edab31f No fetch only throw 2024-01-31 07:54:12 -08:00
dr7ana
c0b6277496 HAPPY NEW YEAR 2024-01-31 07:54:12 -08:00
dr7ana
8e9dce1940 do not gossip client RCs! 2024-01-31 07:54:12 -08:00
dr7ana
9b37b5b63e client testing 2024-01-31 07:54:12 -08:00
dr7ana
9153ba331e okay now lets try clients 2024-01-31 07:54:12 -08:00
Jason Rhinelander
6bb65ccf6f Fix SETCAP disabling
If you start without -DWITH_SETCAP=OFF, but then later re-run cmake,
SETCAP is still set (and so still gets tried).  This fixes it.
2024-01-31 07:54:12 -08:00
dr7ana
38c1008b59 gossip new RC's on bfetch 2024-01-31 07:54:12 -08:00
dr7ana
61718464ae zero cost exception handling my ass
- rework bootstrap loading to move all logic into BootstrapList object
- ability to parse lists and dicts of bootstraps implemented
- netid parsing refers to the correct fallback
- cross your fingers boys here we go
2024-01-31 07:54:12 -08:00
dr7ana
1cbec988fc address parsing of deprecated opts 2024-01-31 07:54:12 -08:00
dr7ana
9cc053608a re-abstraction for client connections
- pending_conns removed in favor of direct creation of link::Connection objects in link::Endpoint::{service,client}_conn containers
- conn lookup maps removed, they were pointless
2024-01-31 07:54:12 -08:00
dr7ana
3e9d5a97a8 ALPN verification
- laying the groundwork for functional client->service node connections. this requires ALPNs verification as a secondary method of identification to the remote key
- refactored btreq stream creation to use improved stream creation logic in libquic
2024-01-31 07:54:12 -08:00
dr7ana
0e73605ffd libquic vbump (stream redux, reauth updates, alpns->ustring) 2024-01-31 07:54:12 -08:00
dr7ana
ae38dc7110 gossip storage, logs 2024-01-31 07:54:12 -08:00
Jason Rhinelander
687d6556d5 Add exact argument to get_n_random_rcs
If given and true then return nullopt if we don't find the requested
number; otherwise return them even if there aren't as many as we
requested.
2024-01-31 07:54:12 -08:00
dr7ana
961763d1bb lets see which gets rejected 2024-01-31 07:54:12 -08:00
Jason Rhinelander
86f2906ec3 Get rid of IterDir
It's a gross implementation, and even if it wasn't, using it takes more
code than not using it.
2024-01-31 07:54:12 -08:00
dr7ana
4ce0385b55 loop call 2024-01-31 07:54:12 -08:00
dr7ana
75e31279be btreq destructor
- try closing the connection via link::Endpoint like we probably should be doing..
- testing out dropping stream constructor, godspeed
2024-01-31 07:54:12 -08:00
dr7ana
22879b64ed rc parsing
- new btdc method used to ensure no junk at the end of our bt data
- DRYed out the RC code
- check inbound bootstraps against all registered routers, not just whitelist
- libquic vbump
2024-01-31 07:54:12 -08:00
dr7ana
4251172707 libquic/oxenc vbumps 2024-01-31 07:54:12 -08:00
dr7ana
7b8c8fde52 booyakasha 2024-01-31 07:54:12 -08:00
Jason Rhinelander
4d56c97612 Revert me: print out the failed bootstrap response 2024-01-31 07:54:12 -08:00
dr7ana
7f143bb52f full mesh proto implementation 2024-01-31 07:54:12 -08:00
dr7ana
89975a0b01 gossip fetch and response handling implemented 2024-01-31 07:54:12 -08:00
dr7ana
cc97fe1f5f Added connection keepalive
- implemented ngtcp2 ping to keep connections alive
- fixed weird lambda captures
- fetch logic
- lets see what happens
2024-01-31 07:54:12 -08:00