Commit Graph

417 Commits

Author SHA1 Message Date
Jeff Becker
e13e886df9
fix up event loop crap so that unit tests pass 2020-07-02 11:10:06 -04:00
Jeff Becker
f4971a88fd
use lokimq workers instead of llarp:🧵:ThreadPool 2020-07-02 11:07:34 -04:00
Jeff Becker
0006751d80
initial wack at lokimq 2020-07-02 11:07:31 -04:00
Rick V
2fe4c15792 why jeff why 2020-06-12 18:00:39 -05:00
Jeff Becker
6984cda3a6
add pybind and router hive to ci 2020-06-08 15:50:12 -04:00
Jeff Becker
3358a3371e
restore correct logstream 2020-06-08 09:31:09 -04:00
Jeff Becker
3d2990f90d
use llarp::LogSilencer to shut up loging in unit tests 2020-06-08 09:26:53 -04:00
Jeff Becker
a73335579a
silence logging in regression test 2020-06-08 09:07:49 -04:00
Jeff Becker
800668348a
add regression test for key backup bug 2020-06-08 08:42:10 -04:00
Jeff
45cda241f0
Merge pull request #1272 from majestrate/exit-nodes-2020-05-16
exit traffic via snapps
2020-06-01 14:42:43 -04:00
Jeff Becker
acecb23eb3
make libuv event loop logic queue size configurable.
remove logic constructor that is no-op.
add constant for default logic queue size
add constant for transit hop queue size
2020-06-01 09:17:44 -04:00
Rick V
1340cd0dce remove some string conversions entirely 2020-05-26 23:09:16 -05:00
Rick V
f62214cf8c
first pass fix wstring path conversions 2020-05-26 20:48:07 -05:00
Jeff Becker
403bc74493
unbreak unit tests 2020-05-24 07:06:27 -04:00
Jeff Becker
f0eca908a4
use static_assert instead 2020-05-23 17:18:00 -04:00
Jeff Becker
4ad8ae253d
align to either 64bit or max_align_t which ever is smaller, for 32 bit. 2020-05-23 17:06:04 -04:00
Jeff Becker
7a5c193e4f
remove unused member 2020-05-23 16:55:02 -04:00
Jeff Becker
4a378ae934
remove logic thread from logic as it is now a thin wrapper arround the event loop 2020-05-23 16:07:21 -04:00
Jeff Becker
eb0abbf1ff
add eraseif to decaying hashset 2020-05-23 16:07:21 -04:00
Jeff Becker
b8da447053
use const iterators explicitly 2020-05-23 16:07:21 -04:00
Jeff Becker
3a776b3ed1
bounds checks and such 2020-05-23 16:07:20 -04:00
Jeff Becker
00143e63f4
put replay filters on transit hops to reduce retransmissions. 2020-05-23 16:07:20 -04:00
Jeff Becker
6af498092b
exit traffic via loki addresses 2020-05-23 16:07:19 -04:00
Jason Rhinelander
d05e6716cb Remove llarp::str(string_view)
It was a workaround for pre-C++17 std::string which didn't support
passing a string_view to various functions/operators.  There's only one
place left that needs an explicit conversion, and that's where it is
used as a map key; so just be explicit there and remove llarp::str()
everywhere else.
2020-05-21 17:05:30 -03:00
Jason Rhinelander
3bb24580a4 make format 2020-05-20 19:48:13 -03:00
Jason Rhinelander
ebd2142114 Don't use std::optional::value() because f u macos
This replaces all use of std::optional's `opt.value()` with `*opt`
because macOS is great and the ghost of Steve Jobs says that actually
supporting std::optional's value() method is not for chumps before macOS
10.14.  So don't use it because Apple is great.

Pretty much all of our use of it actually is done better with operator*
anyway (since operator* doesn't do a check that the optional has a
value).

Also replaced *most* of the `has_value()` calls with direct bool
context, except for one in the config section which looked really
confusing at a glance without a has_value().
2020-05-20 19:18:28 -03:00
Jason Rhinelander
be9ddf2ae1 Bring back ghc::filesystem for broke AF macos
macOS doesn't provide `<filesystem>` support when targetting anything
earlier than 10.15.
2020-05-20 19:18:27 -03:00
Jason Rhinelander
a45bec7c4f Removed RPI definition
This was a long-obsolete fix for things that don't matter anymore.
2020-05-17 21:28:25 -03:00
Jason Rhinelander
dccc663f31 Miss Match demands her name be removed from the code
(i.e. fix speeling mistack: missmatch -> mismatch)
2020-05-13 22:35:15 -03:00
Jason Rhinelander
e470a6d73e C++17 niceties
- class template argument deduction lets us write `std::unique_lock
  foo{mutex}` instead of `std::unique_lock<mutex_type> foo{mutex}` which
  makes the `unique_lock` and `shared_lock` functions unnecessary.

- Replace GNU-specific warn_unused_result attribute with C++17-standard
  [[nodiscard]]

- Remove pre-C++17 workaround code for fold expressions, void_t
2020-05-12 16:42:35 -03:00
Jason Rhinelander
5cf2126bb9 make format 2020-05-01 19:25:32 -03:00
Jason Rhinelander
1697bf90fe C++17
Compiles with C++17, replaces ghc::filesystem with std::filesystem,
nonstd::optional with std::optional, and llarp::string_view with
std::string_view.
2020-05-01 17:43:27 -03:00
Stephen Shelton
ca24f25665
Make fewer assumptions about config state
This handles values missing when config is created through RouterHive.
2020-04-07 17:52:14 -06:00
Stephen Shelton
de8e44ba21
Re-apply clang-format rules after rebasing 2020-04-07 14:41:11 -06:00
Stephen Shelton
be014175e9
Consolidate logging initialization logic 2020-04-07 14:27:31 -06:00
Stephen Shelton
6909e20588
Fix logging initialization and flush at program exit 2020-04-07 14:27:30 -06:00
Stephen Shelton
2479049876
Remove dead code 2020-04-07 14:26:32 -06:00
Stephen Shelton
e9708a5d1c
Add split(string_view, char) util function 2020-04-07 14:09:14 -06:00
Stephen Shelton
858e252820
Add stringify() to util/str 2020-04-07 13:56:04 -06: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
Jeff
d3091cf9fc
Merge pull request #1167 from tewinget/tooling
RouterHive initial PR
2020-04-07 13:13:02 -04:00
Thomas Winget
84a1d7dbcc clang format....... 2020-03-06 20:20:11 -05:00
Rick V
26d1001e53
fix logging 2020-03-05 12:47:50 -06:00
Rick V
b449e03f43
So as of GCC 9.2, std::random_device on Windows is RtlGenRandom()
....which is precisely the thing i patch out in libsodium to use CryptoAPI
documented interfaces instead (which fall through to RtlGenRandom() on
such devices _anyway_)
we can just use libsodium directly, i happened to patch it out in libstdc++
as a side effect (since my local toolchain can target any version of windows)
2020-03-05 12:47:49 -06:00
Thomas Winget
68c1ae52b3 add ShortHex function to AlignedBuffer 2020-03-03 19:57:09 -05:00
Thomas Winget
c9a278c0de some more changes to pybind/hive code, read below
hive.py is currently largely for testing the pybind stuff, so changes to it will likely
be frequent and arbitrary for now.

Added pybind for llarp::path::PathHopConfig, but not every member -- just rc and upstream routerID

Hive now uses std::queue with mutex instead of our lockless queue.

Removed some functions from Hive that will not be necessary as things are being handled from python.
2020-03-03 19:57:09 -05:00
Jeff Becker
32dbe6b1ad more shiz 2020-03-03 19:57:09 -05:00
Thomas Winget
1e04decb66 can ping on lokinet running in python context! 2020-03-03 19:57:09 -05:00
Thomas Winget
9b3bf833e0 revert nop logging -- un-revert later 2020-03-03 19:57:09 -05:00
Thomas Winget
a5c2b369b7 nop logging on hive build for now
a bunch of routers logging to stdout at the same time is a complete
charlie foxtrot.  until we take the time to make logger not a singleton
(and probably make each router able to log to its own file rather than stdout)
just make it not log.

Note: this is very temporary, as the logs will be annoying for testing the
pybind stuff and shouldn't be necessary for debugging it
2020-03-03 19:57:09 -05:00