Commit Graph

383 Commits

Author SHA1 Message Date
Jeff Becker
da79b14703 make it compile 2020-03-03 19:57:09 -05:00
Thomas Winget
8dc5dabe49 working toward compilation, still has include issue 2020-03-03 19:57:09 -05:00
Thomas Winget
8d03e6dd3c more router hive stuff, read below the fold
Router now has a hive pointer if LOKINET_HIVE is set.
llarp::Context has a method InjectHive to give Router the pointer.
Router has a method NotifyRouterEvent which does:
  - when LOKINET_HIVE is set, passes the event to RouterHive
  - else when LOKINET_DEBUG is set, prints the event at a low log level
  - else NOP
2020-03-03 19:57:09 -05:00
jeff
49e69d7087 remove uneeded code 2020-02-29 15:48:51 -05:00
Jason Rhinelander
df7a173649 Shorten version and prefix with v
So we get `v0.7.0` instead of `lokinet-0.7.0-abcdef12`; the latter is
useful for devs, but not so much for random operators (and you can
always go get the full version from the binary).
2020-02-26 16:16:57 -04:00
Jason Rhinelander
d5eed90a3c Fix systemd compilation & enable systemd on travis 2020-02-25 22:35:06 -04:00
Jeff Becker
66181d8a8f
systemd status 2020-02-25 17:32:57 -05:00
Jeff Becker
bf0416cab8
remove Time_t, add operator overload for printing llarp_time_t and add to_json function for serializing llarp_time_t to json 2020-02-25 12:05:13 -05: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
Thomas Winget
74d421ac2d PathBuildNumber -> NextPathBuildNumber because increment side-effect 2020-02-20 16:57:48 -05:00
Thomas Winget
fc56a018e5 path builder prints hops, rest print short name 2020-02-20 16:37:39 -05:00
Jason Rhinelander
6a8d4aca38 Fix signed/unsigned comparison warning and make more std::chrono-y 2020-02-13 10:55:14 -04:00
Jeff Becker
28561cd654
use Time_t 2020-02-12 12:10:48 -05:00
Jeff Becker
434ce56553
* get rid of dht explore for service nodes
* add Time_t using std::chrono for future uses
* make decaying hashset constructor with llarp_time_t explicit
* add decaying hashset implicit constructor using Time_t
* add timeouts for gossiper replay
* allow regossip of our RC
2020-02-12 12:10:48 -05:00
Jeff Becker
154be464ea
rc gossiping 2020-02-12 12:10:48 -05:00
Jeff Becker
7ad47f2dba
* get rid of dht explore for service nodes
* add Time_t using std::chrono for future uses
* make decaying hashset constructor with llarp_time_t explicit
* add decaying hashset implicit constructor using Time_t
* add timeouts for gossiper replay
* allow regossip of our RC
2020-02-12 12:10:48 -05:00
Jeff Becker
ea3851d15f
rc gossiping 2020-02-12 12:10:48 -05:00
Jeff Becker
9efd796145
initial wack at 0.7.0 dht fixes 2020-01-27 11:54:51 -05:00
jeff
816070be62 dont inherit std::array 2020-01-25 12:21:28 -05:00
jeff
f728e6016b router version 2020-01-25 11:28:07 -05:00
jeff
79fd08e559
fix typo 2020-01-18 15:56:29 -05:00
jeff
4a761be52d
use std::chrono 2020-01-18 15:56:29 -05:00
Jeff Becker
fe148f7823
merge conflict fix 2020-01-18 15:55:50 -05:00
Stephen Shelton
5c518d6586
Include outbound message queue stats in dumpState API response 2020-01-17 10:14:24 -07:00
Jason Rhinelander
ba89df40c8
Merge pull request #1041 from notlesh/dht-fixes-cleanup
Dht fixes cleanup
2020-01-16 01:04:51 -04:00
Jason Rhinelander
eadfeefafc
Merge pull request #1038 from majestrate/dht-disable-iterative-lookup-2020-01-14
disable iterative behavior in DHT
2020-01-16 00:22:12 -04:00
Stephen Shelton
8206557ac7
Don't respect whitelist when we haven't received it yet 2020-01-15 21:12:38 -07:00
Jeff Becker
6fd714d193
contrib/testnet: fix up testnet config generator to make super centralized topology
llarp/context.cpp, llarp/nodedb.{h,c}pp: load netdb AFTER whitelist
llarp/router/router.cpp: explore always
llarp/router/{i,}rc_lookup_handler.{h,c}pp explore with whitelist, update routers with lookup before stale
2020-01-14 15:12:47 -05:00
Jeff Becker
b56a3528db
periodic nodedb flush 2020-01-14 12:01:41 -05:00
Jeff Becker
c3b14b32b4
relays do profiling and not hand out "shit" routers in explore 2020-01-07 12:59:53 -05:00
Jeff Becker
52b13b9f1e
typo fix 2020-01-03 07:08:38 -05:00
Jeff Becker
55e27d36e5
* only profile as client
* only explore churn as relay
2020-01-03 07:04:56 -05:00
Jeff Becker
79badd6714
* clients expore dht faster
* use random path when doing dht lookups for .loki
2020-01-02 16:37:17 -05:00
Jeff Becker
a8e6069a93
enable profiling by default 2020-01-02 16:14:15 -05:00
Thomas Winget
71bb0dd520 implement timers using libuv
So far only a bit of the code using timers has been modified to use
the new libuv-based timers.  Also only the non-Windows case has been
implemented.  Seems to be working though, so it's a good time to commit.
2019-12-18 13:11:13 -05:00
Jason Rhinelander
638fb25b47 Put version info into a compiled file
This rewrites the version info using lokid's approach of compiling it
into a .cpp file that gets generated as part of the build (*not* during
the configure stage).

Among other things, this means that changing the version no longer
invalidates ccache or cmake dependencies, and because it depends on
`.git/index` git commits will cause the version to be regenerated,
making the commit tag more reliable (currently if you rebuild without
running cmake your git commit tag doesn't update).
2019-12-11 22:40:07 -04:00
Jeff
22e9223e74
Merge pull request #955 from jagerman/remove-unused-arg
Remove unused argument
2019-12-10 07:51:48 -05:00
Jason Rhinelander
6f92ac9c2b Remove unused argument
Fixed a compiler warning about an unused argument, plus the argument
legitimately appears unused/obsolete now.
2019-12-09 11:17:02 -04:00
Jeff Becker
950006c036
reduce log levels at runtime 2019-12-09 08:08:30 -05:00
Jeff Becker
f56e543d75
add deadlock checker and revert bencode change from long ago 2019-12-07 14:58:19 -05:00
Jeff Becker
2eabe98d9b
add systemd watchdog if enabled on compile time 2019-12-07 14:21:26 -05:00
Jeff Becker
eb87189514
try fixing router lockup 2019-12-07 07:08:00 -05:00
Jeff
1396b7b857
Merge branch 'dev' into bootstrap-list-2019-12-06 2019-12-06 15:34:38 -05:00
Jeff Becker
0afb3b320b
add bootstrap list functionality and utility 2019-12-06 12:32:46 -05: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
Stephen Shelton
23fc2ad042 Init key manager before InitOutboundLinks are configured 2019-12-03 16:55:16 -07: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
af2259db5f Move lokid key API request to KeyManager 2019-12-03 12:32:19 -07:00
Stephen Shelton
49e248bfc1 Fix bad merge 2019-12-03 12:24:57 -07: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
b08897a214
Merge pull request #935 from jagerman/logic-thread-fixes
Logic thread fixes
2019-12-03 12:47:42 -05:00
Jeff Becker
3c85691f81 limit calls to pumpll such that it gets called fast enough but not too much under load 2019-11-29 19:11:14 -04:00
Stephen Shelton
a0699ad229 Undo adding of crypto version to RouterContact, other fixes 2019-11-27 11:30:19 -07:00
Jeff Becker
098915bb8e
add check for identity key validity 2019-11-26 20:40:55 -05:00
Jeff Becker
5868a25fcc
clear response between tries 2019-11-26 17:13:41 -05:00
Jeff Becker
d685057754
update readme and disable curl on windows 2019-11-26 17:11:13 -05:00
Jeff Becker
d12c75ce1e
move sleep 2019-11-26 17:04:52 -05:00
Jeff Becker
61b75828f0
sleep 2019-11-26 17:03:45 -05:00
Jeff Becker
3878ebd534
use curl to fetch from lokid rpc the identity key 2019-11-26 16:58:20 -05:00
Stephen Shelton
e8e2e21fa2 Reorganize priv key file loading a bit and hook KeyManager into Router 2019-11-26 12:42:41 -07:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs 2019-11-22 16:23:19 -05:00
Stephen Shelton
fd02e3e149 Stub out KeyManager class 2019-11-21 20:57:41 -07:00
Thomas Winget
9d3e7d349c Add per-path queues, prioritize control messages over traffic 2019-11-06 10:26:51 -05:00
Jeff Becker
7ee026fa50
make path builds work again 2019-11-05 11:58:53 -05: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 Becker
90f523881a
try interchanging pump order 2019-11-04 13:25:05 -05:00
jeff
869ab0b652 Merge remote-tracking branch 'upstream/dev' into vpn-api-2019-10-03 2019-10-21 08:01:29 -04:00
Stephen Shelton
b1da46e521 Add numNodesKnown to llarp.admin.dumpstate RPC endpoint 2019-10-11 09:59:32 -06:00
jeff
58a25602f5 more fixes, implemenmt missing functions 2019-10-09 09:08:38 -04:00
jeff
7d7c6bf38c Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography 2019-10-07 06:08:47 -04:00
Michael
f326c93b5b
Apply Jeff's comments 2019-10-04 20:43:30 +01:00
jeff
52757fef0e Merge remote-tracking branch 'micheal/background_mode' into vpn-api-2019-10-03 2019-10-04 14:10:58 -04:00
Michael
15cb49c9bd
Introduce --background to only start JSON RPC
fixes #853
2019-10-04 10:32:52 +01:00
jeff
1853b28590 remove libutp and all such code related to utp 2019-09-19 11:36:05 -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
ac2a2aed1d gut libutp and finish making things compile and pass tests 2019-09-12 14:19:25 -04:00
Jeff Becker
da6a3bf9bb
Merge remote-tracking branch 'origin/master' into iwp-multi-ack 2019-09-11 09:56:51 -04:00
Jeff Becker
d54dc7a988
prune dht peers every router tick 2019-09-10 10:16:32 -04:00
Jeff Becker
fd787cc56d
try more ranges 2019-09-09 08:10:26 -04:00
Jeff Becker
61ade40a51
reduce logging and make format 2019-09-09 07:36:21 -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
Rick V
8daaab5f6a
fix 2019-09-04 20:52:53 -05:00
Rick V
ef6f62cc04
some people set the netid explicitly, and set it to default anyway 2019-09-04 20:35:46 -05:00
Jeff Becker
1adae338ce
Merge remote-tracking branch 'origin/master' 2019-09-04 07:58:02 -04:00
Michael
0950571313
Move metrics 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
Michael
1aec0dfa2b
Move logging to subdirectory 2019-09-03 20:52:27 +01:00
Jeff Becker
c01112e4b7
tracy lock contention testing and other fun things 2019-09-03 11:56:56 -04:00
Jeff Becker
444d832b7c
correct constructors on llarp_buffer_t and check rc on regen 2019-08-28 07:38:32 -04:00
Jeff Becker
b5402dc6c3
Merge remote-tracking branch 'origin/master' into iwp-redux 2019-08-27 08:15:41 -04:00
Michael
70937ab503
Fix docker-compose isolated network 2019-08-27 01:57:37 +01:00