Commit Graph

918 Commits (dev)

Author SHA1 Message Date
Jeff Becker da6ba86892
add destructor to fix CI builds on macos 4 years ago
Jeff Becker e9aa200e8c
make formatting happy 4 years ago
Stephen Shelton 0f074cff8c
Remove ambguity WRT loading and passing of Config 4 years ago
Stephen Shelton 88c3e9ce00
Remove worker thread parameter from Router constructors 4 years ago
Stephen Shelton ec20d94c6b
Fix Context::Configure() 4 years ago
Stephen Shelton ed47ba998f
Minor fixes around Context 4 years ago
Stephen Shelton 552dcce5fd
Use inheritance to handle Hive injection 4 years ago
Stephen Shelton b0d8568452
Remove llarp C API usage from RouterHive 4 years ago
Stephen Shelton 84c83a2400
Add specialized subclass of Router for Hive 4 years ago
Jeff Becker f4971a88fd
use lokimq workers instead of llarp:🧵:ThreadPool 4 years ago
Stephen Shelton 0aa43c6b07
Pass RuntimeOptions instead of 'bool isRelay' 4 years ago
Stephen Shelton d85e48c9d0
Use llarp::Context::CallSafe() for vpn AsyncClose() 4 years ago
Stephen Shelton ba92d12203
Remove TODO comment 4 years ago
Stephen Shelton b5d6a73ffd
Rip out most of C API 4 years ago
Jeff Becker 800668348a
add regression test for key backup bug 4 years ago
Stephen Shelton 1497b829bd
Ignore our self.signed file if we're a client 4 years ago
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.
4 years ago
Stephen Shelton de8e44ba21
Re-apply clang-format rules after rebasing 4 years ago
Stephen Shelton f250b7adcb
Remove pidfile support 4 years ago
Stephen Shelton 05257126fe
Make distinction between config dir and data dir 4 years ago
Stephen Shelton 923e73f693
Plumb isRelay CLI arg through to config 4 years ago
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.
4 years ago
Jeff d3091cf9fc
Merge pull request #1167 from tewinget/tooling
RouterHive initial PR
4 years ago
Jeff Becker 9a1050bbe7
remove unused headers 4 years ago
Thomas Winget 84a1d7dbcc clang format....... 4 years ago
Rick V b4d6f89452
try extracting dns bind addr from INI on windows 4 years ago
Jeff Becker 877443d95c more introspection code 4 years ago
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
4 years ago
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
4 years ago
Rick V b9c02d999f
why was this there
we do not support MSVC
4 years ago
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.
4 years ago
Jeff Becker f56e543d75
add deadlock checker and revert bencode change from long ago 5 years ago
Jeff Becker 9b99752276
i hate windows 5 years ago
Jeff 3a6c16aa36
Merge pull request #871 from majestrate/ed25519-signing
Ed25519 signing
5 years ago
jeff ff8c167362 make it compile on windows 5 years ago
jeff 9dd73dad46 close -> closeasync 5 years ago
jeff 58a25602f5 more fixes, implemenmt missing functions 5 years ago
jeff c26b67c379 finish wiring up jni shizz 5 years ago
jeff 52757fef0e Merge remote-tracking branch 'micheal/background_mode' into vpn-api-2019-10-03 5 years ago
Michael 15cb49c9bd
Introduce --background to only start JSON RPC
fixes #853
5 years ago
jeff 4371901e70 flesh out vpn c api
clean up cruft
5 years ago
Michael fadedb4a7b
Distinct ios build 5 years ago
Michael edd0ec398f
Move thread stuff to subdirectory 5 years ago
Michael 84601fa474
Make format 5 years ago
Rick V d4688ed3b3
get our TAP ifindex to pass to ipv6(1) on old platforms 5 years ago
Jeff Becker 43cb62af16
fix android compile, have makefile pull in libuv for cmake on android 5 years ago
Michael e52492911d
Refactor endpoint state management to a new class 5 years ago
Jeff Becker ec6a1cfddc
make it compile 5 years ago
Jeff Becker b9bcc2b775
make threadpool consice 5 years ago
Michael a2326efa37
Revert "Merge pull request #679 from tewinget/revert-config-refactor"
This reverts commit 2996a7f29c, reversing
changes made to 10df3bd4b3.
5 years ago
Thomas Winget d044d60101 Reverts #678 #677 and #669 with hashes:
10df3bd
766ece8
979f095

See those commits for further details
5 years ago
Michael b51f7d8015
Convert to load config in config loader 5 years ago
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
5 years ago
Jeff Becker 6c84bf5739
make format 5 years ago
Michael 8323725509
Initial No-Op Crypto implementation 5 years ago
Michael 6038d75597
Fix crypto build derp 5 years ago
Michael a62655d501
Move tests to use top-level LlarpTest 5 years ago
Michael 491fee206b
Port code to use CryptoManager over passing Crypto pointers 5 years ago
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
5 years ago
Jeff Becker 3c3dd65760
use default values 5 years ago
Jeff Becker 9b379a1659
add explicit constructor 5 years ago
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
5 years ago
Michael afa058c4ee Fix build on windows 5 years ago
Michael 9bc501bbf7 Integrate metric tank into build 5 years ago
Jeff Becker 3da6551e82
make android compile 5 years ago
Jeff Becker 184971a446
Merge remote-tracking branch 'origin/master' 5 years ago
Jeff Becker e178a70929
use shared_ptr for event loop 5 years ago
Michael 5df8e16c44
Add metrics section to config 5 years ago
Michael 57d6668e55
Move metrics out of daemon into llarp::Context 5 years ago
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
5 years ago
Rick V 0de253065e
remove ded code
add code for proper DNSc search
5 years ago
Michael 89ae60cfab
llarp::Context uses AbstractRouter now 5 years ago
Michael 67b5d48095
Replace usage of new/delete with unique_ptr/stack allocation 5 years ago
Michael 6055829df4
Remove tl::optional and use absl::optional always 5 years ago
Jeff Becker d89e58199a
add initial identity key seed stuff
add more kubernetes stuff

make shared library installed if built
5 years ago
Jeff Becker 177dca91e2
add pidfile option 5 years ago
Jeff Becker 41e8691702
make format 5 years ago
Michael 79157414f3
Split crypto.hpp into 3 different files 5 years ago
Michael 04e0fe3ad7
Move crypto code to a subdirectory 5 years ago
Michael 081d4dfa32
Reorganise source into more folders 5 years ago
Michael fa2b466ffe
Reorganise tests to mirror source layout 5 years ago
Michael e5eda0fb8f
Move lokinet unspecific components to a util/ library 5 years ago
Jeff Becker 5b87fb509e
start on kubernetes shim and fix up shared library target and ffi python code 5 years ago
Jeff b088c7eba5 Merge branch 'gh-master' 5 years ago
Jeff Becker 21d1998a38
add graceful stop for path builders and friends 5 years ago
Jeff 4b2a1ea9f3 make format and attempt to fix #158 5 years ago
Jeff Becker c3ac2811f6
make llarp.h pure C compatable 6 years ago
Jeff Becker 312ccdf478
hide c++ stuff in C api 6 years ago
Jeff Becker be234e4b6e
* make format
* snode to snode direct traffic

* wire up dns on service node tun
6 years ago
Michael 85dde7b6b0
Move remaining include/llarp headers to llarp/ 6 years ago
Michael f667d4e81c
Move str.hpp to llarp/ 6 years ago
Michael e887b4e9c7
Move service* to llarp/ 6 years ago
Michael 5aa7f49470
Move routing* to llarp/ 6 years ago
Michael b92ea0521b
Move router_contact.hpp to llarp/ 6 years ago
Michael 8877f60462
Move mem.hpp to llarp/ 6 years ago
Michael a5c3ba0fdd
Move logger.hpp to llarp/ 6 years ago
Michael 30601720e9
Move linux* to llarp/ 6 years ago
Michael c0a76714fa
Move link* to llarp/ 6 years ago
Michael 7a52638add
Move handlers* to llarp/ 6 years ago
Michael 0a08e53bde
Move exit* to llarp/ 6 years ago