Commit Graph

32 Commits

Author SHA1 Message Date
Jeff Becker
a45f92dca7
use random good path for outbound traffic so that it uses an even spread accross
all paths
2020-05-23 16:07:20 -04:00
Stephen Shelton
273270916e
The Great Wall of Blame
This commit reflects changes to clang-format rules. Unfortunately,
these rule changes create a massive change to the codebase, which
causes an apparent rewrite of git history.

Git blame's --ignore-rev flag can be used to ignore this commit when
attempting to `git blame` some code.
2020-04-07 12:38:56 -06:00
Jason Rhinelander
f1aa27e616 fix speeling mistack 2020-02-25 22:27:34 -04:00
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
2020-02-21 23:22:47 -04:00
Thomas Winget
fc56a018e5 path builder prints hops, rest print short name 2020-02-20 16:37:39 -05:00
Thomas Winget
23a9773e1e
remove our paths from outbound queues 2019-11-07 13:23:14 -05:00
Thomas Winget
ef1a5652ef
remove our paths from outbound queues 2019-11-07 13:23:06 -05:00
Jeff Becker
7ee026fa50
make path builds work again 2019-11-05 11:58:53 -05:00
Jeff Becker
327c545530
finish multithread cryptography first pass 2019-09-16 12:12:05 -04:00
jeff
14c9ef15ed try calling stuff in logic thread from event loop 2019-09-16 06:21:12 -04:00
Jeff Becker
4bf6882c8a
more async cryptography 2019-09-05 13:39:09 -04:00
Rick V
f6c97091fd
clang-format 2019-08-01 22:25:48 -05:00
Jeff Becker
aa0a795689
call path build fail stuff in logic thread 2019-07-31 08:51:24 -04:00
Jeff Becker
f48754c45d
make hop count and length configurable 2019-07-18 12:28:17 -04:00
Jeff Becker
1fd6b5ae74
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-07-12 09:53:52 -04:00
Michael
488695047f
Remove redundant else blocks 2019-07-09 22:54:46 +01:00
Jeff Becker
d6ec528a72
start work on seperating ips out of endpoint 2019-07-01 10:56:56 -04:00
Jeff Becker
64e9622270
start seperating tun and endpoint 2019-07-01 09:44:25 -04:00
Michael
d6751e3eeb
Move subset of messages to right directory 2019-06-19 21:35:26 +01:00
Jeff Becker
c77e0aff8a
only check for ready paths when counting in future 2019-05-25 12:27:54 -04:00
Jeff Becker
92ad98be8b
refactor hooks to be have more c++isms
make path build timeouts use log level warning
2019-05-05 09:51:48 -04:00
Jeff Becker
6711296b26
finish converting to shared_ptr 2019-04-23 12:13:22 -04:00
Jeff Becker
99c29cf05a
prepare for ios/android jazz
move to use std::shared_ptr instead of bare pointers so we can
multithread everything.
2019-04-23 10:28:59 -04:00
Jeff Becker
36369abcb4
"better" (more vigorus) path building 2019-04-22 15:15:07 -04:00
Jeff Becker
ce126166af
more logging info 2019-03-22 10:10:30 -04:00
Jeff Becker
5d3833ef1a
fix dumb as shit path building that causes premature termiantion because of duplicate hops 2019-03-11 09:58:31 -04:00
Jeff Becker
6489ea2152
make it work 2019-03-08 12:26:29 -05:00
Michael
c5a129ddff
Convert to use abseil synchronisation primitives 2019-03-03 21:20:38 +00:00
Michael
887fb4ac62
Replace insert(make_pair()) with emplace() 2019-02-18 10:35:23 +00:00
Michael
048fa83c39
Finish replacement of Router with AbstractRouter 2019-02-14 22:31:31 +00:00
Jeff Becker
be74589c41
remove logging 2019-02-05 13:44:14 -05:00
Michael
081d4dfa32
Reorganise source into more folders 2019-01-11 01:19:49 +00:00