Commit Graph

8269 Commits

Author SHA1 Message Date
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
dr7ana
caa7b7ad24 libquic vbump 2024-01-31 07:54:12 -08:00
dr7ana
1364e4ce53 actually have rid in command registration 2024-01-31 07:54:12 -08:00
dr7ana
5ab40a7a7f libquic vbump 2024-01-31 07:54:12 -08:00
dr7ana
42da1b0e68 bootstrap tweaking 2024-01-31 07:54:12 -08:00
dr7ana
bf6e705cbd libquic vbump 2024-01-31 07:54:12 -08:00
dr7ana
9f0766f203 Big fix!
- pending conns container stops them from being counted towards active conns in the interim
- un-abstracted pendingmessages vs pendingdatamessages vs pendingcontrolmessages (gross)
- fixed bootstrap fetching and storage!
2024-01-31 07:54:12 -08:00