Jeff Becker
7ba30eec25
squash commits
2020-03-11 16:55:12 -04:00
Jeff Becker
d2d109e92c
llarp_time_t is now using std::chrono
2020-02-24 15:25:03 -05:00
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).
2020-02-21 23:39:11 -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
Jeff Becker
9efd796145
initial wack at 0.7.0 dht fixes
2020-01-27 11:54:51 -05:00
Jeff Becker
8b8d636ded
make format
2019-12-22 09:16:28 -05:00
Thomas Winget
55b44cfc13
fix derp nested function call and derp merge error
2019-12-18 13:35:01 -05:00
Thomas Winget
50118c3127
Change ILinkLayer::ScheduleTick to use new timer
2019-12-18 13:11:25 -05:00
Stephen Shelton
68a604070b
Merge pull request #945 from notlesh/key_manager_cleanup
...
Key manager cleanup (post 0.6-rc1)
2019-12-06 12:54:40 -07:00
Stephen Shelton
11410a2748
Avoid trivial getters/setters in KeyManager
2019-12-06 10:31:19 -07:00
Stephen Shelton
66a058a2af
Make format
2019-12-06 10:13:09 -07:00
Jeff Becker
32da9e0817
reduce window
2019-12-05 14:58:24 -05:00
Jeff Becker
9be4092a2a
more close changes
2019-12-05 11:31:58 -05:00
Jeff Becker
3410f25fd0
close links lazy
2019-12-05 11:12:26 -05:00
Jeff Becker
87eab87b7f
only close outbound links
2019-12-05 11:05:10 -05:00
Jeff Becker
98d7116ffb
fix typo
2019-12-05 10:11:20 -05:00
Jeff Becker
39ab82ed8c
close sessions to non essential nodes
2019-12-05 09:54:44 -05:00
Jeff
27b1e36039
Merge pull request #936 from majestrate/dev
...
last changes before 0.6.0 version bump
2019-12-03 15:58:22 -05:00
Stephen Shelton
93b8832026
Merge branch 'dev' into private-keys-backup-support
2019-12-03 11:20:45 -07:00
Stephen Shelton
521ef9b5bb
Handle link transport key in KeyManager
2019-12-03 10:58:53 -07:00
Jeff Becker
01b24c7090
limit connections
2019-12-03 12:49:29 -05:00
Jeff Becker
f5ede2d875
ammend previous commit
2019-11-29 19:11:14 -04:00
Jeff Becker
3489753d5a
remove jenky call to logic thread in link server
2019-11-29 19:11:14 -04:00
Jeff Becker
1a06da9c3d
reduce calls in link pump
2019-11-29 19:11:14 -04:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs
2019-11-22 16:23:19 -05:00
Stephen Shelton
ef2670dfb4
Drop new inbound IWP sessions when the first packet can't be handled
2019-11-19 09:24:29 -07:00
Jeff Becker
0d89f1170b
make it compile
2019-11-04 13:53:53 -05:00
Jeff Becker
c9f26c4911
call Router::PumpLL after every batch of packets from a link session
2019-11-04 13:49:08 -05:00
jeff
c59487014a
fix #865 by not using logic if it is null in udp_tick
2019-10-16 10:10:11 -04:00
jeff
3c1d5518d8
fix windows port and make it compile
2019-10-02 09:06:14 -04:00
jeff
14c9ef15ed
try calling stuff in logic thread from event loop
2019-09-16 06:21:12 -04:00
jeff
ac2a2aed1d
gut libutp and finish making things compile and pass tests
2019-09-12 14:19:25 -04:00
Jeff Becker
d04762ab49
unstaged changed
2019-09-12 10:34:27 -04:00
Jeff Becker
e3bb59707e
more
2019-09-05 17:28:50 -04:00
Jeff Becker
3c0245f8b3
Merge remote-tracking branch 'github/master' into iwp-multi-ack
2019-09-05 13:40:04 -04:00
Jeff Becker
4bf6882c8a
more async cryptography
2019-09-05 13:39:09 -04:00
Jeff Becker
1adae338ce
Merge remote-tracking branch 'origin/master'
2019-09-04 07:58:02 -04:00
Michael
edd0ec398f
Move thread stuff to subdirectory
2019-09-03 20:52:28 +01:00
Jeff Becker
c01112e4b7
tracy lock contention testing and other fun things
2019-09-03 11:56:56 -04:00
Jeff
d2824c6b13
Merge pull request #792 from majestrate/master
...
bump versions and call timeout hook
2019-08-29 07:47:53 -04:00
Jeff Becker
78d191bd75
prepare for 0.5.0
2019-08-29 07:45:58 -04:00
Jeff Becker
7e38a133d8
send keep alive on pump when needed
2019-08-23 07:57:57 -04:00
Jeff Becker
461f41a4c6
mark alive on nack
2019-08-23 07:36:11 -04:00
Jeff Becker
acf5f78949
update iwp , add NACK
2019-08-23 07:32:52 -04:00
Jeff Becker
426ee41c46
initial iwp
2019-08-22 16:53:27 -04:00
Jeff Becker
3c3338e801
Merge remote-tracking branch 'origin/master' into memlink
2019-08-21 10:53:25 -04:00
Michael
094b697b01
Replace StatusObject with underlying JSON type
2019-08-19 10:33:26 +01:00
Michael
16cdfbd5f0
clang-tidy modernize pass
2019-08-12 16:52:58 +01:00
Jeff Becker
c1f33bb1ac
initial mempipe implementation
2019-08-07 12:33:29 -04:00
Jeff Becker
822f529be8
add link layer delivery feedback
2019-07-26 12:19:31 -04:00
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.
2019-07-25 14:11:02 -04:00
Michael
a2326efa37
Revert "Merge pull request #679 from tewinget/revert-config-refactor"
...
This reverts commit 2996a7f29c
, reversing
changes made to 10df3bd4b3
.
2019-07-06 14:46:25 +01:00
Jeff Becker
fdfd8c6150
don't lock when visiting links
2019-07-03 08:42:11 -04:00
Jeff Becker
ec1910b8ca
remove threadpool.hpp
...
make link layer not use null lock and null mutex
2019-07-02 15:01:14 -04:00
Thomas Winget
d044d60101
Reverts #678 #677 and #669 with hashes:
...
10df3bd
766ece8
979f095
See those commits for further details
2019-07-02 11:02:20 -04:00
Michael
b51f7d8015
Convert to load config in config loader
2019-07-02 01:58:39 +01:00
Jeff
674f272a46
Merge pull request #630 from majestrate/master
...
recent stability stuff
2019-05-29 08:20:25 -04:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers
2019-05-28 20:45:08 +01:00
Jeff Becker
27c101cc32
close timed out sessions
2019-05-25 10:54:30 -04:00
Jeff Becker
64c7ed42fc
make format
2019-05-22 12:20:50 -04:00
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
2019-05-22 12:20:03 -04:00
Jeff Becker
0f68e6b4dd
don't move, instead copy
2019-05-21 11:24:20 -04:00
Jeff Becker
5bcb205a9f
try allowing ip addresses in bind section
2019-05-20 08:32:11 -04:00
Jeff Becker
73f1d34239
make format and revert stupid alloc changes
2019-05-20 08:19:33 -04:00
Jeff Becker
5d388bc9f2
meh
2019-05-15 11:54:26 -04:00
Jeff Becker
0f6f03a77a
const
2019-05-14 13:35:01 -04:00
Jeff Becker
b68f539de6
limit outbound connections
2019-05-08 08:17:48 -04:00
Jeff Becker
61d42811be
prevent crash
2019-05-07 09:04:43 -04:00
Jeff Becker
34533db620
add urgent build that builds over an existing path for an endpoint
2019-05-07 08:31:34 -04:00
Michael
4143472a17
Add cmake module to target a library as 'system', and fix a few warnings
2019-04-25 00:27:31 +01:00
Michael
c39c931d03
Remove IStateful virtual inheritance
2019-04-19 16:10:26 +01:00
Jeff Becker
e178a70929
use shared_ptr for event loop
2019-04-08 08:01:52 -04:00
Jeff
3715c28616
Merge pull request #483 from loki-project/staging
...
Staging
2019-04-03 15:18:13 -04:00
Jeff
97b9c679b0
don't use bootstrap nodes for first hops in paths
2019-04-03 15:05:44 -04:00
Michael
25f10d5b11
Fix more address sanitiser issues
2019-04-02 10:03:53 +01:00
Michael
561b997c93
Move IWP code to its own directory
2019-03-29 16:00:12 +00:00
Michael
426a9b0df5
Refactor iwp into multiple files
2019-03-29 16:00:12 +00:00
Michael
17b39b0ed4
Move UTP code to its own directory
2019-03-29 16:00:12 +00:00
Michael
5ef4e18827
Refactor utp into multiple files
2019-03-29 16:00:12 +00:00
Michael
a7d15467b3
Refactor iwp linklayer
2019-03-29 16:00:12 +00:00
Michael
a2a275dcf1
Remove dead linklayer code
2019-03-29 16:00:11 +00:00
Jeff Becker
071fce4529
premptive pumpwrite
2019-03-27 13:24:17 -04:00
Jeff Becker
714f5c6b5e
more
2019-03-26 17:01:20 -04:00
Jeff Becker
127cfbbfbc
lower a way too big value
2019-03-26 16:20:46 -04:00
Jeff Becker
b254c19c5f
more metrics
2019-03-26 16:04:41 -04:00
Jeff Becker
0258eb9cb8
add some metrics
2019-03-26 15:30:10 -04:00
Jeff Becker
6a544d3f09
remove to prevent crash
2019-03-26 11:40:21 -04:00
Jeff Becker
800f5001c2
allow up to 5 sessions per endpoint
2019-03-26 09:51:57 -04:00
Jeff Becker
d4cb6808ec
more
2019-03-25 11:41:37 -04:00
Jeff Becker
7065b00c22
kill dead routers from nodedb and lessen logs
2019-03-25 09:07:19 -04:00
Jeff Becker
cc7454684b
kill dead links
2019-03-22 14:23:33 -04:00
Jeff Becker
183c451972
let utp manage link layer timeout
2019-03-22 07:44:28 -04:00
Jeff
4c611ea935
make macos happy
2019-03-19 09:22:15 -04:00
Jeff Becker
de868e3623
fix order
2019-03-18 08:30:07 -04:00
Jeff Becker
4bfe97781c
relax ping to 10s of inactivity
2019-03-18 08:25:32 -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
734a5b5fae
more
2019-03-11 09:01:43 -04:00
Jeff Becker
792d7d16c0
try fixing timeout issue
2019-03-08 09:59:13 -05:00
Jeff Becker
3547863f8e
fix excessive pings
2019-03-07 18:32:15 -05:00
Jeff Becker
2218749134
Merge remote-tracking branch 'origin/staging' into staging
2019-03-07 17:58:29 -05:00