Commit Graph

173 Commits (a4bd7806b3ee51b64315287da60b235a83decbf0)

Author SHA1 Message Date
dr7ana 3451a30d0e 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
6 months ago
Thomas Winget 5bf520d0f1 minor style/naming changes 6 months ago
Thomas Winget 27aea62994 Remove find/lookup router
We're removing the notion of find/lookup a singular RC, so this gets rid
of all functions which did that and replaces their usages with something
sensible.
6 months ago
Thomas Winget d7e2e52ee4 messages::status -> messages 6 months ago
Thomas Winget bd4f239aa3 preconstructed dicts for error/timeout/ok
also move messages' statuses into their own namespace
7 months ago
Thomas Winget 32395caec1 build fixes, clang-format, minor touch-ups 7 months ago
Thomas Winget abb2f63ec6 path control message response status changes
change path control message inner message response to take just a
string, which will be a bt-encoded response with an early key for
status.  If there is a timeout we pass a bt dict that only has that as
the status, else the response we de-onioned should have either an OK
status or some other error.

change messages to use new status key

correctly call Path::EnterState on path build response
7 months ago
Thomas Winget b0fb194e2c path control messages and onioning fleshed out
- control messages can be sent along a path
- the path owner onion-encrypts the "inner" message for each hop in the
  path
- relays on the path will onion the payload in both directions, such
  that the terminal relay will get the plaintext "inner" message and the
  client will get the plaintext "response" to that.
- control messages have (mostly, see below) been changed to be invokable
  either over a path or directly to a relay, as appropriate.

TODO:
  - exit messages need looked at, so they have not yet been changed for
    this
  - path transfer messages (traffic from client to client over 2 paths
    with a shared "pivot") are not yet implemented
7 months ago
dr7ana fa4471f566 {Remote,Local}RC's
- RemoteRC supplants most of the functionality throughout the code of RouterContact
- Next step will be to sort out CI issues, then see if we can get rid of either LocalRC (and therefore RouterContact entirely)
7 months ago
dr7ana 2abe2d9363 Review fixes
- cleaned up include-what-you-use errors (mostly quoted includes)
- misc fixes
8 months ago
dr7ana 46ad8d4058 Clang format include sorting + CMake
- includes are now sorted in consistent, logical order; first step in an attempt to fix the tomfoolery (no relation to Tom) brought in by include-what-you-use
- shuffled around some cmake linking to simplify dependency graph
- superfluous files removed
8 months ago
Jason Rhinelander f4f5ab0109 "Refactor" aka delete Crypto/CryptoManager
- Get rid of CryptoManager.
- Get rid of Crypto.
- Move all the Crypto instance methods to llarp::crypto functions.
  (None of them needed to be methods at all, so this is simple).
- Move sodium/ntru initialization into static initialization.
- Add llarp::csrng, which is an available llarp::CSRNG instance which is
  a bit easier than needing to construct a `CSRNG rng{};` in various
  places.
- Various related small simplifications/cleanups.
8 months ago
dr7ana e710cfea47 Review commit 8 months ago
dr7ana 0e451db77f Compilation fixes
- almost all errors have been commented out for refactor or already refactored
- committing this prior to sorting out the cmake structure
- upcoming include-what-you-use application
8 months ago
dr7ana 3ae8fce77d Outbound context absorbed sendcontex
- message transmission routed through refactored handling
- still work to be done, but now to make it compile at least
8 months ago
dr7ana 41312abab0 introset and message transmission underway
- message handling through classes that inherit from PathSet
- cleanups around link_manager
- etc etc
8 months ago
dr7ana c8dae875b5 Path routing partially implementing
- Reworking how paths to services and snodes
- pushing for Tom to rebase for path handling
8 months ago
dr7ana 206bd0b85e wawaweewa 8 months ago
dr7ana d9ead7d0f6 crypto and message encoding
- libsodium calls streamlined and moved away from stupid typedefs
- buffer handling taken away from buffer_t and towards ustrings and strings
- lots of stuff deleted
- team is working well
- re-implementing message handling in proper link_manager methods
8 months ago
dr7ana aaf688cf81 Deleted a lot
- RIP llarp/iwp/* and most of llarp/link
9 months ago
dr7ana 11e54f6552 More message refactoring
- routing messages and surrounding code
- shim code in place for iteration and optimization after deciding what to do with buffer, string handling, and subsequent function calls
9 months ago
Jeff Becker 4508c59cd3
redo includes to be consistent 1 year ago
Jason Rhinelander 15443568db
Apply some lipstick to llarp_buffer_t
This class is cursed, but also broken under gcc-12.  Apply some lipstick
to get it moving again (but we really need to refactor this because it
is a mess).
2 years ago
Jeff 9765eeee7e handle edge case better
when our path is fine but the recipiant's path on the pivot router isn't we should pivot to another router
2 years ago
Jeff af041cfee4 try not to spam builds 2 years ago
Jeff 1846c3e3d8
prevent bizare half open state. (#1754)
* attempt path timeout bullshittery fix

* make sure ServiceInfo always has its address set up

* do not copy intros in constuctor, ammend logging and
add assert
3 years ago
Jeff Becker e7ac0f3902
expunge outbound contexts that have not gotten inbound traffic for a long while 3 years ago
Jeff Becker abd6e4c558
use weak_ptr instead of bare pointer to prevent use after free 3 years ago
Jeff Becker 3ad59105ef
when an outbound context is "marked bad" we want to ignore any new paths.
before this commit when a new path was made when an outbound context marked bad lokinet would segfault.
3 years ago
Jeff Becker 67f8a7116f
if we get a discard message from the pivot discard the outbound context if the remote intro is also expired 3 years ago
Jeff Becker 3393b5a5a7
make it so lookups dont time out 3 years ago
Jeff Becker b5efb8c604
rename local variable to be clear about meaning, add comment 3 years ago
Jeff Becker 1a0e6a7ac1
remove redundant check as ReadyToSend also checks IntroSent() 3 years ago
Jeff Becker d45f0f8951
value initialize introduction so that expiresAt defaults to zero 3 years ago
Jeff Becker 9f353238af
ReadyToSend also should include checking we have a path to the remote 3 years ago
Jeff Becker 963250c0ef
format 3 years ago
Jeff Becker 00d4942d85
more 3 years ago
Thomas Winget 7f9a60066b
make sure we have a path to the next introduction we want to use 3 years ago
Jeff Becker d9cae4a6c6
in outbound context, ShouldBuildMore intro.ExpiresSoon delta is too big and has no overlap, change it so that 3 years ago
Jeff Becker e48feb8b9a
kill outbound context when we remove our convotag 3 years ago
Jeff Becker ce7643a3aa
remove case that spams build on an outbound context 3 years ago
Jeff Becker c97fe4aa96
convert magic number to where it came from 3 years ago
Jeff Becker e2bdf8792b
typofix 3 years ago
Jeff Becker c2722be81c
this fixes the shit wtf 3 years ago
Jeff Becker 0096bd4e35
account for path latency in introset lookups on outbound contexts 3 years ago
Jeff Becker e4ed53224c
use weak_ptr on a path to reference its parent pathset instead of a bare pointer so crashes dont happen 3 years ago
Jeff Becker c6660dd6c1
add path aligntment timeout to send and connect timeouts on outbound context to reduce the chance of timing race conditon 3 years ago
Jeff Becker 0f1e806155
don't kill outbound context after build or lookup fails 3 years ago
Jeff Becker 220b8837da
delay setting sentIntro by the advertised latency of the remote intro instead of static value 3 years ago
Jeff Becker c5a86a49a3
defer ready to send state until after we send a handshake 3 years ago