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
Michael
2d4f7c6b2d
Move encode.hpp to llarp/
2018-12-12 02:53:01 +00:00
Michael
d9ce493a9e
Move dns* to llarp/
2018-12-12 02:53:01 +00:00
Michael
fddc8734d2
Move dht* to llarp/
2018-12-12 02:53:01 +00:00
Michael
451bbedfaf
Move crypto.hpp to llarp/
2018-12-12 02:53:01 +00:00
Michael
c064893947
Move buffer.hpp to llarp/
2018-12-12 02:53:00 +00:00
Michael
f51384f92e
Move address_info.hpp to llarp/
2018-12-12 02:53:00 +00:00
Michael
aa3b55302b
Remove dead address_info code
2018-12-11 23:58:58 +00:00
Michael
7be452092c
Convert llarp_crypto to be a true C++ class
2018-12-11 00:53:55 +00:00
Michael
6358b25db0
Convert llarp_nodedb to be a true C++ class
2018-12-10 23:31:39 +00:00
Michael
f0fce5b68a
Convert llarp_router to be a true C++ class
2018-12-10 20:15:35 +00:00
Jeff Becker
fad734a5ce
strict types for pubkey, secretkey and routerid
2018-12-10 12:22:59 -05:00
Jeff Becker
eed62b2d7f
ensure exit router is known
2018-12-10 10:44:18 -05:00
Michael
30e9dca2e5
Convert llarp_logic to be a C++ class
2018-12-10 14:15:11 +00:00
Jeff
3eb78b6118
add mx record for .loki
2018-12-07 16:52:19 -05:00
Jeff Becker
1c446d0b62
make it compile on os x
2018-12-07 08:38:37 -05:00
Jeff Becker
1e339af0e8
disable locking
2018-12-06 13:05:44 -05:00
Jeff Becker
a303dbb4db
revert
2018-12-05 10:56:34 -05:00
Jeff Becker
f63045d5a4
Merge remote-tracking branch 'origin/master' into dev
2018-12-05 09:41:35 -05:00
Michael
7c1b224f67
Minor build fixes
2018-12-05 00:15:46 +00:00
Jeff Becker
c27b7c2858
separate client/server in dns proxy
2018-12-04 11:35:25 -05:00
Jeff Becker
40678f9019
add dnslib unit test coverage
2018-12-04 11:16:43 -05:00
Jeff Becker
1d1bde2e88
add dnslib
2018-12-03 17:22:59 -05:00
despair
d26141d433
Merge branch 'dev' into reeeee-divergence
...
ok hope this works -rick
# Conflicts:
# .gitignore
# .vscode/settings.json
# include/llarp/service/context.hpp
# llarp/dns.cpp
# llarp/dnsc.cpp
# llarp/ev.cpp
# llarp/ev.hpp
# llarp/ev_win32.hpp
# llarp/net.cpp
# llarp/router.cpp
# llarp/router.hpp
# llarp/service/context.cpp
2018-12-03 12:24:56 -06:00
Jeff Becker
baa94ec345
make windows build happy
2018-12-03 09:39:30 -05:00
Jeff Becker
622ed8d12e
fix crash on premature close of event loop (also make format)
2018-12-02 13:07:07 -05:00