Commit Graph

444 Commits (2ebd9bbd95c82caefccde15871f18c67765613e7)

Author SHA1 Message Date
Stephen Shelton 62014de91c
Handle PubIntro relayOrder logic on client-side 4 years ago
Stephen Shelton 61d19179f7
Remove dead code 4 years ago
Jeff 19a751c41b
Merge pull request #1127 from notlesh/spread-snapp-path-builds-evenly-2020-02-24
Spread snapp path builds evenly
4 years ago
Jeff 4f29405e9e
Merge pull request #1115 from majestrate/handle-multiple-responses-per-lookup-2020-02-20
handle multiple responses per hidden service lookup
4 years ago
Stephen Shelton abe4015986
Use constants for path build timing 4 years ago
Stephen Shelton 230037b9f3
Increase default path timeout from 10min to 20min 4 years ago
Stephen Shelton f0374eb2b7
Use existing 'lastBuild' var for spacing path builds 4 years ago
Stephen Shelton c2c010dbad
Make format 4 years ago
Stephen Shelton c1b5e453c7
Big I, little i, what begins with I? 4 years ago
Stephen Shelton 1db6c6ae3b
Make format 4 years ago
Stephen Shelton c2f719c996
Build endpoint paths at even[ish] intervals 4 years ago
Jeff Becker d2d109e92c
llarp_time_t is now using std::chrono 4 years ago
Jason Rhinelander 089056ca5b Remove all ABSL_ATTRIBUTE_UNUSED uses 4 years ago
Jason Rhinelander b4440094b0 De-abseil, part 2: mutex, locks, (most) time
- util::Mutex is now a std::shared_timed_mutex, which is capable of
  exclusive and shared locks.

- util::Lock is still present as a std::lock_guard<util::Mutex>.

- the locking annotations are preserved, but updated to the latest
  supported by clang rather than using abseil's older/deprecated ones.

- ACQUIRE_LOCK macro is gone since we don't pass mutexes by pointer into
  locks anymore (WTF abseil).

- ReleasableLock is gone.  Instead there are now some llarp::util helper
  methods to obtain unique and/or shared locks:
    - `auto lock = util::unique_lock(mutex);` gets an RAII-but-also
      unlockable object (std::unique_lock<T>, with T inferred from
      `mutex`).
    - `auto lock = util::shared_lock(mutex);` gets an RAII shared (i.e.
      "reader") lock of the mutex.
    - `auto lock = util::unique_locks(mutex1, mutex2, mutex3);` can be
      used to atomically lock multiple mutexes at once (returning a
      tuple of the locks).
  This are templated on the mutex which makes them a bit more flexible
  than using a concrete type: they can be used for any type of lockable
  mutex, not only util::Mutex.  (Some of the code here uses them for
  getting locks around a std::mutex).  Until C++17, using the RAII types
  is painfully verbose:

  ```C++
  // pre-C++17 - needing to figure out the mutex type here is annoying:
  std::unique_lock<util::Mutex> lock(mutex);
  // pre-C++17 and even more verbose (but at least the type isn't needed):
  std::unique_lock<decltype(mutex)> lock(mutex);
  // our compromise:
  auto lock = util::unique_lock(mutex);
  // C++17:
  std::unique_lock lock(mutex);
  ```

  All of these functions will also warn (under gcc or clang) if you
  discard the return value.  You can also do fancy things like
  `auto l = util::unique_lock(mutex, std::adopt_lock)` (which lets a
  lock take over an already-locked mutex).

- metrics code is gone, which also removes a big pile of code that was
  only used by metrics:
  - llarp::util::Scheduler
  - llarp:🧵:TimerQueue
  - llarp::util::Stopwatch
4 years ago
Jeff Becker 748be8eec8
handle multiple responses per hidden service lookup 4 years ago
Stephen Shelton 0429bafbb3
Merge pull request #1111 from notlesh/redundant-introset-propagation-2020-02-19
Redundant introset propagation
4 years ago
Jeff 6ac5f19b3a
Merge pull request #1110 from jagerman/no-abseil-optional
De-abseil, part 1: remove absl::optional
4 years ago
Stephen Shelton 4c499fb076
Make format 4 years ago
Stephen Shelton dff9aeb250
Propagate Introset publishing redundantly 4 years ago
Jeff Becker dc7828941f
add log statement 4 years ago
Jason Rhinelander ac1486d0be Replace absl::optional with optional-lite
Step 1 of removing abseil from lokinet.

For the most part this is a drop-in replacement, but there are also a
few changes here to the JSONRPC layer that were needed to work around
current gcc 10 dev snapshot:

- JSONRPC returns a json now instead of an optional<json>.  It doesn't
  make any sense to have a json rpc call that just closes the connection
  with returning anything.  Invoked functions can return a null (default
  constructed) result now if they don't have anything to return (such a
  null value won't be added as "result").
4 years ago
Jeff 20bc168d1c
Merge pull request #1093 from majestrate/toggle-publishing-introsets-2020-02-11
make publishing introsets optional
4 years ago
Jeff Becker e907d2ae19
handover fixes 4 years ago
Jeff Becker 02228ded08
spread out path builds 4 years ago
Jason Rhinelander c3637c81fd Remove another unused randomize parameter 4 years ago
Jason Rhinelander 24469daefb Remove unused parameter
We always randomize now.
4 years ago
Stephen Shelton 906803e387 Refactor DHT introset lookups to use redundant lookup strategy 4 years ago
Jeff Becker 4d4b33607f dont use optional 4 years ago
Jeff Becker 23bcfa4abb revert change 4 years ago
Jeff Becker df8c56343d refactor GetManyPathsWithUniqueEndpoints to go into service/endpoint_util.hpp 4 years ago
Jeff Becker fc5e6b4d77 log location 4 years ago
Jeff Becker 3cc2adae31 paralell publish and lookups 4 years ago
Jeff Becker e30c720446 redundant publish for service endpoint 4 years ago
Jeff Becker 2b6f27d60d
remove connect back logic for dead inbound sessions 4 years ago
Jeff Becker 70eb353c42
make publishing introsets optional using reachable=false to disable 4 years ago
Jeff Becker 99eb7726ff
initial dht key blinding 4 years ago
Jeff Becker 2c0dc12f39
refactor single char variables in DHT (mostly) 4 years ago
Jeff Becker a17b5f25b5
check for zero'd rc 4 years ago
Jeff Becker 2d82e931da
try doing lookup from close router, randomize when above lookup threshold 4 years ago
Jeff Becker 8a5365d9a6
diversify endpoints 5 years ago
Jeff Becker 5ae428a114
Revert "remove call to link manager"
This reverts commit 3dd36fa11a.
5 years ago
Jeff Becker a5121c346c
remove call to link manager 5 years ago
Jeff Becker d1a29884df
client side perf improvement 5 years ago
Jeff Becker 79c3c748e4
limit number of snode sessions client side 5 years ago
Stephen Shelton 2c6226f54a Backup SNApp keys when migrating to new ed25519 crypto 5 years ago
Jeff Becker 0828307906 fix address mapping bug 5 years ago
Jeff Becker 8849173112 try async decrypt then verify 5 years ago
Jeff Becker ba0fd223d9 reduce number of jobs we put onto the logic thread 5 years ago
Jeff Becker 56dce90de9
add trace log level for tracking logic thread jobs 5 years ago
Jeff Becker 2c5561fc3c
make format 5 years ago