Jeff Becker
da6ba86892
add destructor to fix CI builds on macos
2020-08-24 20:19:51 -04:00
Jeff Becker
e9aa200e8c
make formatting happy
2020-08-24 20:19:48 -04:00
Stephen Shelton
0f074cff8c
Remove ambguity WRT loading and passing of Config
2020-07-06 13:38:02 -06:00
Stephen Shelton
88c3e9ce00
Remove worker thread parameter from Router constructors
2020-07-02 10:35:44 -06:00
Stephen Shelton
ec20d94c6b
Fix Context::Configure()
2020-07-02 10:26:53 -06:00
Stephen Shelton
ed47ba998f
Minor fixes around Context
2020-07-02 10:26:52 -06:00
Stephen Shelton
552dcce5fd
Use inheritance to handle Hive injection
2020-07-02 10:25:10 -06:00
Stephen Shelton
b0d8568452
Remove llarp C API usage from RouterHive
2020-07-02 10:24:19 -06:00
Stephen Shelton
84c83a2400
Add specialized subclass of Router for Hive
2020-07-02 10:22:57 -06:00
Jeff Becker
f4971a88fd
use lokimq workers instead of llarp: 🧵 :ThreadPool
2020-07-02 11:07:34 -04:00
Stephen Shelton
0aa43c6b07
Pass RuntimeOptions instead of 'bool isRelay'
2020-07-01 08:38:56 -06:00
Stephen Shelton
d85e48c9d0
Use llarp::Context::CallSafe() for vpn AsyncClose()
2020-06-29 14:39:31 -06:00
Stephen Shelton
ba92d12203
Remove TODO comment
2020-06-29 14:11:49 -06:00
Stephen Shelton
b5d6a73ffd
Rip out most of C API
2020-06-29 13:55:59 -06:00
Jeff Becker
800668348a
add regression test for key backup bug
2020-06-08 08:42:10 -04:00
Stephen Shelton
1497b829bd
Ignore our self.signed file if we're a client
2020-06-04 11:05:23 -06: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
de8e44ba21
Re-apply clang-format rules after rebasing
2020-04-07 14:41:11 -06:00
Stephen Shelton
f250b7adcb
Remove pidfile support
2020-04-07 14:24:48 -06:00
Stephen Shelton
05257126fe
Make distinction between config dir and data dir
2020-04-07 14:18:14 -06:00
Stephen Shelton
923e73f693
Plumb isRelay CLI arg through to config
2020-04-07 14:17:13 -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
Jeff Becker
9a1050bbe7
remove unused headers
2020-04-01 08:00:24 -04:00
Thomas Winget
84a1d7dbcc
clang format.......
2020-03-06 20:20:11 -05:00
Rick V
b4d6f89452
try extracting dns bind addr from INI on windows
2020-03-05 12:47:45 -06:00
Jeff Becker
877443d95c
more introspection code
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
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
Rick V
b9c02d999f
why was this there
...
we do not support MSVC
2019-12-22 07:49:36 -06:00
Jason Rhinelander
2e17542028
Don't include net/if.h to help xenial
...
Loading both net/if.h and linux/if.h on xenial breaks compilation
because xenial's kernel/glibc headers are broken AF.
We don't actually need anything from net/if.h here, so don't include it.
2019-12-14 11:58:10 -04:00
Jeff Becker
f56e543d75
add deadlock checker and revert bencode change from long ago
2019-12-07 14:58:19 -05:00
Jeff Becker
9b99752276
i hate windows
2019-11-05 08:19:27 -05:00
Jeff
3a6c16aa36
Merge pull request #871 from majestrate/ed25519-signing
...
Ed25519 signing
2019-10-28 10:42:40 -04:00
jeff
ff8c167362
make it compile on windows
2019-10-22 11:58:34 -04:00
jeff
9dd73dad46
close -> closeasync
2019-10-09 09:09:42 -04:00
jeff
58a25602f5
more fixes, implemenmt missing functions
2019-10-09 09:08:38 -04:00
jeff
c26b67c379
finish wiring up jni shizz
2019-10-08 10:52:01 -04: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
4371901e70
flesh out vpn c api
...
clean up cruft
2019-10-03 09:54:21 -04:00
Michael
fadedb4a7b
Distinct ios build
2019-09-30 09:59:34 +01:00
Michael
edd0ec398f
Move thread stuff to subdirectory
2019-09-03 20:52:28 +01:00
Michael
84601fa474
Make format
2019-08-08 00:26:40 +01:00
Rick V
d4688ed3b3
get our TAP ifindex to pass to ipv6(1) on old platforms
2019-08-02 03:23:50 -05:00
Jeff Becker
43cb62af16
fix android compile, have makefile pull in libuv for cmake on android
2019-07-24 11:25:40 -04:00
Michael
e52492911d
Refactor endpoint state management to a new class
2019-07-15 10:15:51 +01:00
Jeff Becker
ec6a1cfddc
make it compile
2019-07-09 09:58:16 -04:00
Jeff Becker
b9bcc2b775
make threadpool consice
2019-07-09 09:47:24 -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
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
Rick V
a346f0d279
now i remember why i had to open /dev/tun twice on solaris
...
that _should_ fully close the TUN interface on Solaris
2019-06-18 18:56:31 -05:00
Jeff Becker
6c84bf5739
make format
2019-05-29 08:28:23 -04:00
Michael
8323725509
Initial No-Op Crypto implementation
2019-05-29 09:46:34 +01:00
Michael
6038d75597
Fix crypto build derp
2019-05-29 00:03:24 +01:00
Michael
a62655d501
Move tests to use top-level LlarpTest
2019-05-28 20:45:09 +01:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers
2019-05-28 20:45:08 +01: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
3c3dd65760
use default values
2019-05-08 11:47:37 -04:00
Jeff Becker
9b379a1659
add explicit constructor
2019-05-08 11:42:38 -04:00
michael-loki
0195152e05
Allow builds on MSVC ( #518 )
...
* Import cxxopts to replace getopts usage
* Add visual studio build things
* Fixup abseil build parts
* Replace __attribute__((unused)) with ABSL_ATTRIBUTE_UNUSED
* Fixup minor windows build issues
* Replace getopts usage
* Temporarily fixup .rc files
* More minor windows fixes
* Get a working build
* Revert .rc files
* Revert changes to nodedb
2019-04-19 13:24:33 -05:00
Michael
afa058c4ee
Fix build on windows
2019-04-14 18:12:11 +01:00
Michael
9bc501bbf7
Integrate metric tank into build
2019-04-14 17:18:32 +01:00
Jeff Becker
3da6551e82
make android compile
2019-04-08 11:54:19 -04:00
Jeff Becker
184971a446
Merge remote-tracking branch 'origin/master'
2019-04-08 08:03:02 -04:00
Jeff Becker
e178a70929
use shared_ptr for event loop
2019-04-08 08:01:52 -04:00
Michael
5df8e16c44
Add metrics section to config
2019-04-07 18:55:21 +01:00
Michael
57d6668e55
Move metrics out of daemon into llarp::Context
2019-04-05 10:20:48 +01:00
Rick V
1eddba0dd3
that _should_ be just enough to implement TUN on Solaris 2.x
...
sadly this is ineligble for upstream because we don't bother
to use TAP in the slightest
2019-03-25 12:03:55 -05:00
Rick V
0de253065e
remove ded code
...
add code for proper DNSc search
2019-02-26 15:35:04 -06:00
Michael
89ae60cfab
llarp::Context uses AbstractRouter now
2019-02-22 16:21:05 +00:00
Michael
67b5d48095
Replace usage of new/delete with unique_ptr/stack allocation
2019-02-11 16:24:05 +00:00
Michael
6055829df4
Remove tl::optional and use absl::optional always
2019-02-03 02:13:31 +00:00
Jeff Becker
d89e58199a
add initial identity key seed stuff
...
add more kubernetes stuff
make shared library installed if built
2019-01-21 10:45:18 -05:00
Jeff Becker
177dca91e2
add pidfile option
2019-01-18 08:24:33 -05:00
Jeff Becker
41e8691702
make format
2019-01-17 09:02:50 -05:00
Michael
79157414f3
Split crypto.hpp into 3 different files
2019-01-13 16:32:51 +00:00
Michael
04e0fe3ad7
Move crypto code to a subdirectory
2019-01-13 15:06:16 +00:00
Michael
081d4dfa32
Reorganise source into more folders
2019-01-11 01:19:49 +00:00
Michael
fa2b466ffe
Reorganise tests to mirror source layout
2019-01-11 00:12:52 +00:00
Michael
e5eda0fb8f
Move lokinet unspecific components to a util/ library
2019-01-10 20:07:24 +00:00
Jeff Becker
5b87fb509e
start on kubernetes shim and fix up shared library target and ffi python code
2019-01-09 11:07:55 -05:00
Jeff
b088c7eba5
Merge branch 'gh-master'
2018-12-24 16:15:22 -05:00
Jeff Becker
21d1998a38
add graceful stop for path builders and friends
2018-12-24 11:10:56 -05:00
Jeff
4b2a1ea9f3
make format and attempt to fix #158
2018-12-23 08:29:11 -05:00
Jeff Becker
c3ac2811f6
make llarp.h pure C compatable
2018-12-13 16:46:55 -05:00
Jeff Becker
312ccdf478
hide c++ stuff in C api
2018-12-13 16:37:30 -05:00
Jeff Becker
be234e4b6e
* make format
...
* snode to snode direct traffic
* wire up dns on service node tun
2018-12-13 11:14:44 -05:00
Michael
85dde7b6b0
Move remaining include/llarp headers to llarp/
2018-12-12 02:53:02 +00:00
Michael
f667d4e81c
Move str.hpp to llarp/
2018-12-12 02:53:01 +00:00
Michael
e887b4e9c7
Move service* to llarp/
2018-12-12 02:53:01 +00:00
Michael
5aa7f49470
Move routing* to llarp/
2018-12-12 02:53:01 +00:00
Michael
b92ea0521b
Move router_contact.hpp to llarp/
2018-12-12 02:53:01 +00:00
Michael
8877f60462
Move mem.hpp to llarp/
2018-12-12 02:53:01 +00:00
Michael
a5c3ba0fdd
Move logger.hpp to llarp/
2018-12-12 02:53:01 +00:00
Michael
30601720e9
Move linux* to llarp/
2018-12-12 02:53:01 +00:00
Michael
c0a76714fa
Move link* to llarp/
2018-12-12 02:53:01 +00:00
Michael
7a52638add
Move handlers* to llarp/
2018-12-12 02:53:01 +00:00
Michael
0a08e53bde
Move exit* to llarp/
2018-12-12 02:53:01 +00:00