Commit Graph

291 Commits (dev)

Author SHA1 Message Date
Jeff Becker 7ba30eec25
squash commits 4 years ago
Jeff Becker d2d109e92c
llarp_time_t is now using std::chrono 4 years ago
Jason Rhinelander f84ce61d66 Removed empty cpp files
These aren't needed: CMake already knows how to follow #includes and
rebuild when headers change as long as the headers are included
*somewhere*.  The extra .cpp files here just require building a bunch of
.cpp files with just header content that we just end up throw away
during linking (since the same things will also be compiled in whatever
other compilation units include the same headers).
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 9efd796145
initial wack at 0.7.0 dht fixes 4 years ago
Jeff Becker 8b8d636ded
make format 5 years ago
Thomas Winget 55b44cfc13 fix derp nested function call and derp merge error 5 years ago
Thomas Winget 50118c3127 Change ILinkLayer::ScheduleTick to use new timer 5 years ago
Stephen Shelton 68a604070b
Merge pull request #945 from notlesh/key_manager_cleanup
Key manager cleanup (post 0.6-rc1)
5 years ago
Stephen Shelton 11410a2748 Avoid trivial getters/setters in KeyManager 5 years ago
Stephen Shelton 66a058a2af Make format 5 years ago
Jeff Becker 32da9e0817
reduce window 5 years ago
Jeff Becker 9be4092a2a
more close changes 5 years ago
Jeff Becker 3410f25fd0
close links lazy 5 years ago
Jeff Becker 87eab87b7f
only close outbound links 5 years ago
Jeff Becker 98d7116ffb
fix typo 5 years ago
Jeff Becker 39ab82ed8c
close sessions to non essential nodes 5 years ago
Jeff 27b1e36039
Merge pull request #936 from majestrate/dev
last changes before 0.6.0 version bump
5 years ago
Stephen Shelton 93b8832026
Merge branch 'dev' into private-keys-backup-support 5 years ago
Stephen Shelton 521ef9b5bb Handle link transport key in KeyManager 5 years ago
Jeff Becker 01b24c7090
limit connections 5 years ago
Jeff Becker f5ede2d875 ammend previous commit 5 years ago
Jeff Becker 3489753d5a remove jenky call to logic thread in link server 5 years ago
Jeff Becker 1a06da9c3d reduce calls in link pump 5 years ago
Jeff Becker 56dce90de9
add trace log level for tracking logic thread jobs 5 years ago
Stephen Shelton ef2670dfb4 Drop new inbound IWP sessions when the first packet can't be handled 5 years ago
Jeff Becker 0d89f1170b
make it compile 5 years ago
Jeff Becker c9f26c4911
call Router::PumpLL after every batch of packets from a link session 5 years ago
jeff c59487014a fix #865 by not using logic if it is null in udp_tick 5 years ago
jeff 3c1d5518d8 fix windows port and make it compile 5 years ago
jeff 14c9ef15ed try calling stuff in logic thread from event loop 5 years ago
jeff ac2a2aed1d gut libutp and finish making things compile and pass tests 5 years ago
Jeff Becker d04762ab49
unstaged changed 5 years ago
Jeff Becker e3bb59707e
more 5 years ago
Jeff Becker 3c0245f8b3
Merge remote-tracking branch 'github/master' into iwp-multi-ack 5 years ago
Jeff Becker 4bf6882c8a
more async cryptography 5 years ago
Jeff Becker 1adae338ce
Merge remote-tracking branch 'origin/master' 5 years ago
Michael edd0ec398f
Move thread stuff to subdirectory 5 years ago
Jeff Becker c01112e4b7
tracy lock contention testing and other fun things 5 years ago
Jeff d2824c6b13
Merge pull request #792 from majestrate/master
bump versions and call timeout hook
5 years ago
Jeff Becker 78d191bd75
prepare for 0.5.0 5 years ago
Jeff Becker 7e38a133d8
send keep alive on pump when needed 5 years ago
Jeff Becker 461f41a4c6
mark alive on nack 5 years ago
Jeff Becker acf5f78949
update iwp , add NACK 5 years ago
Jeff Becker 426ee41c46
initial iwp 5 years ago
Jeff Becker 3c3338e801
Merge remote-tracking branch 'origin/master' into memlink 5 years ago
Michael 094b697b01
Replace StatusObject with underlying JSON type 5 years ago
Michael 16cdfbd5f0
clang-tidy modernize pass 5 years ago
Jeff Becker c1f33bb1ac
initial mempipe implementation 5 years ago
Jeff Becker 822f529be8
add link layer delivery feedback 5 years ago
Thomas Winget baf8019fe5 Refactor Router code into more classes
This commit refactors functionality from the Router class into separate,
dedicated classes.
There are a few behavior changes that came as a result of discussion on
what the correct behavior should be.
In addition, many things Router was previously doing can now be provided
callback functions to alert the calling point when the asynchronous
action completes, successfully or otherwise.
5 years ago
Michael a2326efa37
Revert "Merge pull request #679 from tewinget/revert-config-refactor"
This reverts commit 2996a7f29c, reversing
changes made to 10df3bd4b3.
5 years ago
Jeff Becker fdfd8c6150
don't lock when visiting links 5 years ago
Jeff Becker ec1910b8ca
remove threadpool.hpp
make link layer not use null lock and null mutex
5 years ago
Thomas Winget d044d60101 Reverts #678 #677 and #669 with hashes:
10df3bd
766ece8
979f095

See those commits for further details
5 years ago
Michael b51f7d8015
Convert to load config in config loader 5 years ago
Jeff 674f272a46
Merge pull request #630 from majestrate/master
recent stability stuff
5 years ago
Michael 491fee206b
Port code to use CryptoManager over passing Crypto pointers 5 years ago
Jeff Becker 27c101cc32
close timed out sessions 5 years ago
Jeff Becker 64c7ed42fc
make format 5 years ago
Jeff Becker 9c96aecf3f
move llarp::Logic to std::shared_ptr
add sequence numbers to HSD messages

begin work on network isolation code

add more docs
5 years ago
Jeff Becker 0f68e6b4dd
don't move, instead copy 5 years ago
Jeff Becker 5bcb205a9f
try allowing ip addresses in bind section 5 years ago
Jeff Becker 73f1d34239
make format and revert stupid alloc changes 5 years ago
Jeff Becker 5d388bc9f2
meh 5 years ago
Jeff Becker 0f6f03a77a
const 5 years ago
Jeff Becker b68f539de6
limit outbound connections 5 years ago
Jeff Becker 61d42811be
prevent crash 5 years ago
Jeff Becker 34533db620
add urgent build that builds over an existing path for an endpoint 5 years ago
Michael 4143472a17
Add cmake module to target a library as 'system', and fix a few warnings 5 years ago
Michael c39c931d03
Remove IStateful virtual inheritance 5 years ago
Jeff Becker e178a70929
use shared_ptr for event loop 5 years ago
Jeff 3715c28616
Merge pull request #483 from loki-project/staging
Staging
5 years ago
Jeff 97b9c679b0 don't use bootstrap nodes for first hops in paths 5 years ago
Michael 25f10d5b11
Fix more address sanitiser issues 5 years ago
Michael 561b997c93
Move IWP code to its own directory 5 years ago
Michael 426a9b0df5
Refactor iwp into multiple files 5 years ago
Michael 17b39b0ed4
Move UTP code to its own directory 5 years ago
Michael 5ef4e18827
Refactor utp into multiple files 5 years ago
Michael a7d15467b3
Refactor iwp linklayer 5 years ago
Michael a2a275dcf1
Remove dead linklayer code 5 years ago
Jeff Becker 071fce4529
premptive pumpwrite 5 years ago
Jeff Becker 714f5c6b5e
more 5 years ago
Jeff Becker 127cfbbfbc
lower a way too big value 5 years ago
Jeff Becker b254c19c5f
more metrics 5 years ago
Jeff Becker 0258eb9cb8
add some metrics 5 years ago
Jeff Becker 6a544d3f09
remove to prevent crash 5 years ago
Jeff Becker 800f5001c2
allow up to 5 sessions per endpoint 5 years ago
Jeff Becker d4cb6808ec
more 5 years ago
Jeff Becker 7065b00c22
kill dead routers from nodedb and lessen logs 5 years ago
Jeff Becker cc7454684b
kill dead links 5 years ago
Jeff Becker 183c451972
let utp manage link layer timeout 5 years ago
Jeff 4c611ea935 make macos happy 5 years ago
Jeff Becker de868e3623
fix order 5 years ago
Jeff Becker 4bfe97781c
relax ping to 10s of inactivity 5 years ago
Jeff Becker 5d3833ef1a
fix dumb as shit path building that causes premature termiantion because of duplicate hops 5 years ago
Jeff Becker 734a5b5fae
more 5 years ago
Jeff Becker 792d7d16c0
try fixing timeout issue 5 years ago
Jeff Becker 3547863f8e
fix excessive pings 5 years ago
Jeff Becker 2218749134
Merge remote-tracking branch 'origin/staging' into staging 5 years ago