Jason Rhinelander
6fdfb4cef6
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.
2023-12-15 19:51:18 -04:00
dr7ana
47be3cefe1
lets see which gets rejected
2023-12-15 15:42:22 -08:00
Jason Rhinelander
7417c59286
Get rid of IterDir
...
It's a gross implementation, and even if it wasn't, using it takes more
code than not using it.
2023-12-15 19:12:31 -04:00
dr7ana
f41bcd00c6
loop call
2023-12-15 14:58:20 -08:00
dr7ana
2a090b6e42
btreq destructor
...
- try closing the connection via link::Endpoint like we probably should be doing..
- testing out dropping stream constructor, godspeed
2023-12-15 14:53:04 -08:00
dr7ana
87ae0686d0
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
2023-12-15 14:11:29 -08:00
dr7ana
b63733381f
libquic/oxenc vbumps
2023-12-15 12:52:58 -08:00
dr7ana
49794295b1
booyakasha
2023-12-15 10:52:36 -08:00
Jason Rhinelander
5c13a0e7b4
Revert me: print out the failed bootstrap response
2023-12-15 14:30:44 -04:00
dr7ana
c71e767511
full mesh proto implementation
2023-12-15 10:27:50 -08:00
dr7ana
42aa92ab95
gossip fetch and response handling implemented
2023-12-15 08:43:58 -08:00
dr7ana
ef1897c25a
Added connection keepalive
...
- implemented ngtcp2 ping to keep connections alive
- fixed weird lambda captures
- fetch logic
- lets see what happens
2023-12-15 07:51:20 -08:00
dr7ana
575494c3da
actually have rid in command registration
2023-12-13 13:27:00 -08:00
dr7ana
2c3763b61c
libquic vbump
2023-12-13 11:50:56 -08:00
dr7ana
08c2c26c29
bootstrap tweaking
2023-12-13 11:13:22 -08:00
dr7ana
d6e5aca572
libquic vbump
2023-12-13 10:36:09 -08:00
dr7ana
fd21eb3a00
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!
2023-12-13 09:42:09 -08:00
dr7ana
d016951d2f
Fixed pending message queue weirdness
2023-12-13 05:49:59 -08:00
dr7ana
ea614ed141
better!
2023-12-12 11:57:15 -08:00
dr7ana
49dbdf1062
doofus
2023-12-12 10:45:14 -08:00
Jason Rhinelander
2f1917040c
Fix std::set move semantics
...
This is, apparently, the only way to move an element out of a std::set.
2023-12-12 14:31:26 -04:00
dr7ana
63c9bd6e63
update seeds before returning no
2023-12-12 10:24:31 -08:00
dr7ana
eb971265c7
wrap dat
2023-12-12 10:19:56 -08:00
Jason Rhinelander
4c7f9d080f
Replace GetBestNetIF with quic::Address version
...
It is now called get_best_public_address, and takes (bool, port)
argument to return an optional quic::Address to make life easier: the
caller now can just give the default port to set, and we keep the C
sockaddr* more constrained.
2023-12-12 14:05:50 -04:00
dr7ana
6cb2f57abd
whatever
2023-12-12 09:44:59 -08:00
dr7ana
b69f754599
come on already work already
2023-12-12 08:11:34 -08:00
dr7ana
7544436f6a
who cares
2023-12-11 13:48:11 -08:00
Jason Rhinelander
cece742cf3
Bump libquic for message move/copy fixes
2023-12-11 17:20:49 -04:00
Jason Rhinelander
a6da88cbbe
DRY duplicated code in RCRemote
2023-12-11 16:35:19 -04:00
dr7ana
88b9d9f976
print but better
2023-12-11 12:20:02 -08:00
dr7ana
f812d5471b
send localrc, receive as remoterc
2023-12-11 12:14:03 -08:00
dr7ana
3c521c4923
log
2023-12-11 11:48:14 -08:00
Jason Rhinelander
3509693c49
Revert me: fix double-hex in debug output
2023-12-11 15:42:36 -04:00
Jason Rhinelander
febcd44ea1
Fix pubkey parsing to be read as bytes
...
from_string was trying to parse it as base32z.snode
Also leave FIXMEs behind for the badly named methods (both in RouterID
itself and in ancestor classes).
2023-12-11 15:42:27 -04:00
Jason Rhinelander
636de93b1a
Revert me: debug print the msg/sig/signer
2023-12-11 11:29:36 -08:00
dr7ana
daa3a6fd94
shoot
2023-12-11 11:29:33 -08:00
Jason Rhinelander
5e2c18ff19
RemoteRC: explicit
single-argument constructors
2023-12-11 15:14:09 -04:00
dr7ana
f5d959c65a
D
2023-12-11 11:09:59 -08:00
Jason Rhinelander
1a7f47f5cd
Fix version encoding
...
We are reinterpret_cast'ing the version to a string to send it as raw
bytes, but it was sending \x00\x00\x09 instead of \x00\x09\x0a because
the version constant was actually a uint16_t array.
This just makes the version constant a uint8_t array instead so that it
works (and I am not at all worried about any version component getting
larger than 255).
2023-12-11 15:03:52 -04:00
Jason Rhinelander
4c1f6112a7
REVERT ME: debug incoming dict data
2023-12-11 14:46:29 -04:00
dr7ana
f725c07f2d
dont bomb with bootstrap reqs
2023-12-11 10:36:46 -08:00
dr7ana
e0c1069790
kiiiiiick
2023-12-11 10:10:04 -08:00
dr7ana
efe5fd3b5b
try queueing
2023-12-11 09:17:29 -08:00
dr7ana
0bf3a3323a
kick
2023-12-11 09:04:53 -08:00
dr7ana
238cc3d0da
kick
2023-12-11 08:16:13 -08:00
dr7ana
5f430a392b
kick
2023-12-11 07:46:11 -08:00
dr7ana
63644d3d84
Bootstrap seed
...
- nodes now send their RC to the bootstrap seed on making a request
- allows the bootstrap seed to distribute RCs
2023-12-11 07:32:52 -08:00
dr7ana
f2feea74ee
Crit logging
...
- TODO: discuss authentication for nodes connecting to bootstrap seed
- crit log num connected/RC's, conn open/closed, etc
2023-12-11 03:45:23 -08:00
Jason Rhinelander
412ce44139
Update libquic
2023-12-11 03:13:39 -08:00
Jason Rhinelander
daeff3ee7e
Remove duplicate connection closing method
...
`deregister_peer` does the exact same thing as `close_connection` so
just remove it.
Also removes an unnecessary loop dispatch call (because we *have* to be
in the logic thread already to be able to touch the variables we are
touching before the dispatch).
2023-12-11 03:13:39 -08:00