Stephen Shelton
1db6c6ae3b
Make format
2020-02-25 13:39:27 -07:00
Stephen Shelton
c2f719c996
Build endpoint paths at even[ish] intervals
2020-02-25 13:39:25 -07:00
Jeff Becker
d2d109e92c
llarp_time_t is now using std::chrono
2020-02-24 15:25:03 -05:00
Jason Rhinelander
089056ca5b
Remove all ABSL_ATTRIBUTE_UNUSED uses
2020-02-24 14:27:44 -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
748be8eec8
handle multiple responses per hidden service lookup
2020-02-20 14:33:54 -05:00
Stephen Shelton
0429bafbb3
Merge pull request #1111 from notlesh/redundant-introset-propagation-2020-02-19
...
Redundant introset propagation
2020-02-20 10:50:06 -08:00
Jeff
6ac5f19b3a
Merge pull request #1110 from jagerman/no-abseil-optional
...
De-abseil, part 1: remove absl::optional
2020-02-20 12:38:16 -05:00
Stephen Shelton
4c499fb076
Make format
2020-02-20 08:36:29 -07:00
Stephen Shelton
dff9aeb250
Propagate Introset publishing redundantly
2020-02-19 17:07:46 -07:00
Jeff Becker
dc7828941f
add log statement
2020-02-19 17:06:13 -07:00
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").
2020-02-19 18:21:25 -04:00
Jeff
20bc168d1c
Merge pull request #1093 from majestrate/toggle-publishing-introsets-2020-02-11
...
make publishing introsets optional
2020-02-19 11:50:41 -05:00
Jeff Becker
e907d2ae19
handover fixes
2020-02-18 12:15:14 -05:00
Jeff Becker
02228ded08
spread out path builds
2020-02-17 15:24:18 -05:00
Jason Rhinelander
c3637c81fd
Remove another unused randomize parameter
2020-02-14 17:45:22 -04:00
Jason Rhinelander
24469daefb
Remove unused parameter
...
We always randomize now.
2020-02-14 17:45:18 -04:00
Stephen Shelton
906803e387
Refactor DHT introset lookups to use redundant lookup strategy
2020-02-14 17:43:13 -04:00
Jeff Becker
4d4b33607f
dont use optional
2020-02-14 17:43:13 -04:00
Jeff Becker
23bcfa4abb
revert change
2020-02-14 17:43:13 -04:00
Jeff Becker
df8c56343d
refactor GetManyPathsWithUniqueEndpoints to go into service/endpoint_util.hpp
2020-02-14 17:43:13 -04:00
Jeff Becker
fc5e6b4d77
log location
2020-02-14 17:43:13 -04:00
Jeff Becker
3cc2adae31
paralell publish and lookups
2020-02-14 17:43:13 -04:00
Jeff Becker
e30c720446
redundant publish for service endpoint
2020-02-14 17:43:11 -04:00
Jeff Becker
2b6f27d60d
remove connect back logic for dead inbound sessions
2020-02-14 13:12:45 -05:00
Jeff Becker
70eb353c42
make publishing introsets optional using reachable=false to disable
2020-02-11 16:48:36 -05:00
Jeff Becker
99eb7726ff
initial dht key blinding
2020-01-27 16:30:41 -05:00
Jeff Becker
2c0dc12f39
refactor single char variables in DHT (mostly)
2020-01-23 12:10:58 -05:00
Jeff Becker
a17b5f25b5
check for zero'd rc
2020-01-15 10:43:21 -05:00
Jeff Becker
2d82e931da
try doing lookup from close router, randomize when above lookup threshold
2020-01-09 06:26:41 -05:00
Jeff Becker
8a5365d9a6
diversify endpoints
2020-01-07 13:00:15 -05:00
Jeff Becker
5ae428a114
Revert "remove call to link manager"
...
This reverts commit 3dd36fa11a
.
2019-12-30 11:13:17 -05:00
Jeff Becker
a5121c346c
remove call to link manager
2019-12-30 11:13:17 -05:00
Jeff Becker
d1a29884df
client side perf improvement
2019-12-30 11:13:17 -05:00
Jeff Becker
79c3c748e4
limit number of snode sessions client side
2019-12-30 05:19:03 -05:00
Stephen Shelton
2c6226f54a
Backup SNApp keys when migrating to new ed25519 crypto
2019-12-06 11:21:14 -07:00
Jeff Becker
0828307906
fix address mapping bug
2019-11-29 19:11:14 -04:00
Jeff Becker
8849173112
try async decrypt then verify
2019-11-29 19:11:14 -04:00
Jeff Becker
ba0fd223d9
reduce number of jobs we put onto the logic thread
2019-11-29 18:45:06 -04:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs
2019-11-22 16:23:19 -05:00
Jeff Becker
2c5561fc3c
make format
2019-11-05 12:01:34 -05:00
Jeff Becker
7ee026fa50
make path builds work again
2019-11-05 11:58:53 -05:00
jeff
32ed821763
Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography
2019-10-01 10:51:28 -04:00
jeff
7c691cf334
handover should be fixed now
2019-09-19 16:28:12 -04:00
jeff
6c2ebbb925
try fixing handover and add snapp traffic to multithreaded crypto workers
2019-09-19 10:41:31 -04: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
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
Michael
4d8fe2a8a8
Move meta programming 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 Becker
eabbb83149
use estimated build time instead of expiration time for delta when determining when to space out builds
2019-08-27 16:07:09 -04:00
Jeff Becker
e0424a91a7
bump path build handover window, check cooldown on build.
2019-08-27 16:00:00 -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
Michael
f9e9227e19
Fix gcc trunk warnings
2019-08-02 10:29:08 +01:00
Jeff Becker
db2206664a
fix crashes in testnet
2019-07-29 11:10:20 -04:00
Jeff Becker
f48754c45d
make hop count and length configurable
2019-07-18 12:28:17 -04:00
Michael
e52492911d
Refactor endpoint state management to a new class
2019-07-15 10:15:51 +01: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
b9bcc2b775
make threadpool consice
2019-07-09 09:47:24 -04:00
Jeff Becker
fd911d0c52
make format
2019-07-08 10:22:47 -04:00
Jeff Becker
6467d21ba0
* fix testnet codepath
...
* add packet info for osx
2019-07-05 10:13:58 -04:00
Jeff Becker
81cab62bb9
* fix testnet codepath
...
* add packet info for osx
2019-07-05 08:07:06 -04:00
Jeff Becker
5874c38b38
swap path on inbound convo if expires soon
2019-07-01 17:35:49 -04:00
Jeff Becker
f211ff182a
pick ready paths for reply
2019-07-01 16:45:00 -04: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
Jeff Becker
0146a967d0
fix convotag inbound state setting
2019-06-28 11:49:29 -04:00
Jeff Becker
6bca652182
choose first timestamp
2019-06-28 10:48:00 -04:00
Jeff Becker
0b90acff75
handle reply intro
2019-06-28 10:12:20 -04:00
Jeff Becker
b0612e2ee1
Merge remote-tracking branch 'origin/master' into ipv6-tun
2019-06-21 11:23:53 -04:00
Michael
b6b400baef
Tidy up pathbuilder code
2019-06-20 17:35:40 +01:00
Jeff Becker
5c61df08b5
Merge remote-tracking branch 'origin/master' into ipv6-tun
2019-06-20 10:35:51 -04:00
Michael
08609f9e5a
Rename message files
2019-06-19 23:30:07 +01:00
Michael
8a058fcb34
Move other messages
2019-06-19 21:35:57 +01:00
Michael
d6751e3eeb
Move subset of messages to right directory
2019-06-19 21:35:26 +01:00
Jeff Becker
cd05fa6150
Merge remote-tracking branch 'origin/master' into ipv6-tun
2019-06-18 08:46:35 -04:00
Rick V
c6c31efec9
make format
2019-06-17 23:29:54 -05:00
Jeff Becker
30f6a8ccd2
make format
2019-06-17 09:05:37 -04:00
Jeff Becker
9c24fc15a8
try not spamming network with builds
2019-06-17 08:43:16 -04:00
Jeff Becker
5853e5e3f4
pass in path
2019-06-14 09:13:06 -04:00
Jeff Becker
a323003824
differentiate between inbound and outbound convos
2019-06-14 08:49:45 -04:00
Jeff Becker
2403ab8f86
ipv6
2019-06-11 12:44:05 -04:00
Jeff Becker
9ec41b8831
update RC expiration logic, lookup more often and remove stale entries
2019-06-10 08:47:21 -04:00
Jeff Becker
73c1538518
fix
2019-06-06 07:16:03 -04:00
Jeff Becker
f7ccbf0c78
eh
2019-06-06 07:10:18 -04:00
Jeff Becker
f8e2edae28
fix
2019-06-06 07:06:34 -04:00
Jeff Becker
223f2702d3
Merge branch 'fix-big-ooooofff'
2019-06-06 06:53:54 -04:00
Jeff Becker
a33dbce680
try switching logic
2019-06-06 06:52:27 -04:00
Jeff Becker
f8026b8a2d
use latest tag not oldest tag in inbound convos
2019-06-04 09:53:50 -04:00
Jeff Becker
39b1f104a8
revert
2019-06-04 09:43:49 -04:00
Jeff Becker
471a4bf6dd
use reply intro for inbound sessions
2019-06-04 09:34:24 -04:00
Michael
75430a234c
Convert to use memFn
2019-06-02 22:19:10 +01:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers
2019-05-28 20:45:08 +01:00
Michael
d49e57aa8d
Fix thread safety issue in service::Endpoint::ProcessDataMessage
2019-05-22 21:28:17 +01:00
Jeff Becker
e85cc1bc8a
fix
2019-05-22 13:47:33 -04:00