Commit Graph

445 Commits

Author SHA1 Message Date
Jeff Becker ffef3bc48f
wire up sigusr1 to reset libunbound dns resolver 2021-02-17 13:32:55 -05:00
Jeff Becker bd93a8f828
initial v6 exits 2021-02-16 10:59:57 -05:00
Jeff Becker d112a50096
minidump fix 2021-02-02 13:16:18 -05:00
Jeff Becker df4ea34a56
nodedb refactor
* bump zmq static dep
* lokimq -> oxenmq
* llarp_nodedb -> llarp::NodeDB
* remove all crufty api parts of NodeDB
* make NodeDB rc selection api not suck
* make path builder api not suck
* propagate all above changes so that unit tests work and it all compiles
2021-02-02 09:35:40 -05:00
Jeff 49b9ad7197
tun code refactor (#1495)
* partial tun code refactor

* take out the trash

* move vpn platform code into llarp/vpn/platform.cpp

* fix hive build

* fix win32

* fix memory leak on win32

* reduce cpu use

* make macos compile

* win32 patches:

* use wepoll for zmq
* use all cores on windows iocp read loop

* fix zmq patch for windows

* clean up cmake for win32

* add uninstall before reinstall option to win32 installer

* more ipv6 stuff

* make it compile

* fix up route poker

* remove an unneeded code block in macos wtf

* always use call to system

* fix route poker behavior on macos

* disable ipv6 on windows for now

* cpu perf improvement:

* colease calls to Router::PumpLL to 1 per event loop wakeup

* set up THEN add addresses

* emulate proactor event loop on win32

* remove excessively verbose error message

* fix issue #1499

* exclude uv_poll from win32 so that it can start up

* update logtag to include directory

* create minidump on windows if there was a crash

* make windows happy

* use dmp suffix on minidump files

* typo fix

* address feedback from jason
* use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
* quote $@ in apply-patches in case path has spaces in it

* address feedback from tom

* remove llarp/ev/pipe
* add comments for clairification
* make event loop queue size constant named
2021-01-11 18:13:22 -05:00
Jeff 6407733c8e
* make llarp.halt rpc call actually return a reply (#1488)
* add --kill flag to lokinet-vpn that calls llarp.halt
* make macos uninstaller kill lokinet via lokinet-vpn --kill
2020-11-20 12:37:30 -05:00
Jeff 0e1e0aaef3
allow for relative file paths in config (#1432)
* llarp::Config constructor can take an empty fs::path now and it will default to fs::current_path
* llarp::ensureConfig now throws on fs error
* updates to daemon/main.cpp to reflect changes to llarp::ensureConfig's new throwability
* dowse parts of the code with holy water for the 0.8.1 tag
2020-10-30 09:38:17 -04:00
Jeff f4e2f93c8e
use correct path for windows service (#1418) 2020-10-21 17:29:46 -04:00
Thomas Winget a91bb35dbf
Some Windows fixes (#1415)
* Should fix some windows service issues

* fix return condition inversion

* Add some Trace level logging

also make the logger actually respect the log level you set.

* event loop should not queue things to itself...

at present, logic thread queue continues until it is empty, so
queueing things onto itself is just wasteful.

* call_later(foreach thing) is better than foreach thing (call later)

also if you already queued those things but they have not happened yet,
there is no sense to queue them to happen again.

* do not queue read on write finish, only on read finish

* failure to start DNS server should be proper startup failure.

without the DNS server working lokinet is...kinda pointless, right?

* format

* don't queue stuff to logic thread if in logic thread
the thing that clears the queue...clears it.  So you're just delaying and adding overhead.

* windows unbound thread sleep instead of just busy-waiting

also clang-format decided I can't have a blank line for some reason...

* fix unbound async worker on windows
2020-10-21 09:06:43 -04:00
Jeff 12eb32a816
add conf.d directory for config overrides (#1410)
* add conf.d directory for config overrides

* refactor llarp::Config

* add explicit constructor with datadir as parameter
* have all config files be passed as std::optional
* make Config::LoadDefault private and use std::optional in Config::Load to remove ambiguity
* update rest of codebase to reflect above changes

* fix pybind

* rename bootstrap config skipBootstrap to seednode as it's more descriptive
* make seednode configurable
* make pybind layer compile
* make pybind layer run
2020-10-21 08:58:08 -04:00
Jason Rhinelander af6caf776a
Config file improvements (#1397)
* Config file API/comment improvements

API improvements:
=================

Make the config API use position-independent tag parameters (Required,
Default{123}, MultiValue) rather than a sequence of bools with
overloads.  For example, instead of:

    conf.defineOption<int>("a", "b", false, true, 123, [] { ... });

you now write:

    conf.defineOption<int>("a", "b", MultiValue, Default{123}, [] { ... });

The tags are:
- Required
- MultiValue
- Default{value}
plus new abilities (see below):
- Hidden
- RelayOnly
- ClientOnly
- Comment{"line1", "line2", "line3"}

Made option definition more powerful:
=====================================

- `Hidden` allows you to define an option that won't show up in the
  generated config file if it isn't set.

- `RelayOnly`/`ClientOnly` sets up an option that is only accepted and
  only shows up for relay or client configs.  (If neither is specified
  the option shows up in both modes).

- `Comment{...}` lets the option comments be specified as part of the
  defineOption.

Comment improvements
====================

- Rewrote comments for various options to expand on details.
- Inlined all the comments with the option definitions.
- Several options that were missing comments got comments added.
- Made various options for deprecated and or internal options hidden by
  default so that they don't show up in a default config file.
- show the section comment (but not option comments) *after* the
  [section] tag instead of before it as it makes more sense that way
  (particularly for the [bind] section which has a new long comment to
  describe how it works).

Disable profiling by default
============================

We had this weird state where we use and store profiling by default but
never *load* it when starting up.  This commit makes us just not use
profiling at all unless explicitly enabled.

Other misc changes:
===================

- change default worker threads to 0 (= num cpus) instead of 1, and fix
  it to allow 0.
- Actually apply worker-threads option
- fixed default data-dir value erroneously having quotes around it
- reordered ifname/ifaddr/mapaddr (was previously mapaddr/ifaddr/ifname)
  as mapaddr is a sort of specialization of ifaddr and so makes more
  sense to come after it (particularly because it now references ifaddr
  in its help message).
- removed peer-stats option (since we always require it for relays and
  never use it for clients)
- removed router profiles filename option (this doesn't need to be
  configurable)
- removed defunct `service-node-seed` option
- Change default logging output file to "" (which means stdout), and
  also made "-" work for stdout.

* Router hive compilation fixes

* Comments for SNApp SRV settings in ini file

* Add extra blank line after section comments

* Better deprecated option handling

Allow {client,relay}-only options in {relay,client} configs to be
specified as implicitly deprecated options: they warn, and don't set
anything.

Add an explicit `Deprecated` tag and move deprecated option handling
into definition.cpp.

* Move backwards compat options into section definitions

Keep the "addBackwardsCompatibleConfigOptions" only for options in
sections that no longer exist.

* Fix INI parsing issues & C++17-ify

- don't allow inline comments because it seems they aren't allowed in
ini formats in general, and is going to cause problems if there is a
comment character in a value (e.g. an exit auth string).  Additionally
it was breaking on a line such as:

    # some comment; see?

because it was treating only `; see?` as the comment and then producing
an error message about the rest of the line being invalid.

- make section parsing stricter: the `[` and `]` have to be at the
beginning at end of the line now (after stripping whitespace).

- Move whitespace stripping to the top since everything in here does it.

- chop off string_view suffix/prefix rather than maintaining position
values

- fix potential infinite loop/segfault when given a line such as `]foo[`

* Make config parsing failure fatal

Load() LogError's and returns false on failure, so we weren't aborting
on config file errors.

* Formatting: allow `{}` for empty functions/structs

Instead of using two lines when empty:

    {
    }

* Make default dns bind 127.0.0.1 on non-Linux

* Don't show empty section; fix tests

We can conceivably have sections that only make sense for clients or
relays, and so want to completely omit that section if we have no
options for the type of config being generated.

Also fixes missing empty lines between tests.

Co-authored-by: Thomas Winget <tewinget@gmail.com>
2020-10-07 18:22:58 -04:00
Jeff 03d6f191d1
add status command to lokinet-vpn (#1393) 2020-10-05 11:50:59 -04:00
Jason Rhinelander 63a876cc78
Allow -DWITH_SETCAP=OFF to disable setcap during make install (#1363)
The debs don't want it (and so this will save needing to patch it out),
nor do you need it if running via a systemd service file that sets the
capabilities.
2020-09-22 17:45:42 -04:00
Rick V 7136f77c2e
allow running lokinet as root on windows (#1347)
* - allow running lokinet as root on windows
  ($PROGRAMDATA/.lokinet/lokinet.ini)
- oops forgot to eat my own command line args

* cursed windows

* now that we eat our own startup options the entry in cxxopts is fully
ded

* aha our command line options get smashed up

* revert plus DRY fix
2020-09-17 15:20:50 -04:00
Jeff dfd8df5e7f
add uninstall target (#1340)
* add uninstall target

* * redo cmake uninstall
* remove lokinet-vpn python script
* don't install lokinet-vpn twice
2020-09-09 12:06:57 -04:00
jeff bbc749294e fix windows build typo 2020-08-27 16:48:27 +00:00
Jeff Becker 21bc3bd9a0
format 2020-08-24 20:35:31 -04:00
jeff f6f56029d3
working netlink route poker 2020-08-24 20:23:26 -04:00
jeff 099831719a
update macos command for default route poker. 2020-08-24 20:21:18 -04:00
jeff 528340e056
dont include sys/wait.h on windows 2020-08-24 20:21:18 -04:00
jeff d0374ce083
windows does not have fork/wait 2020-08-24 20:21:18 -04:00
jeff 6d91ac8e4e
rename r flag to router 2020-08-24 20:21:17 -04:00
jeff f5e4d8bd1b
execv needs program name as first argument 2020-08-24 20:19:52 -04:00
jeff 0ee1c4a60a
use full path for ip on linux and report exit code 2020-08-24 20:19:51 -04:00
jeff bc8e867dfb
use exec for lokinet-vpn 2020-08-24 20:19:51 -04:00
Rick V f283c565e7
make x.x.x.y+1 the default router on windows 2020-08-24 20:19:50 -04:00
Jeff Becker 400f5d3902
windows uses multiple commands for default route. 2020-08-24 20:19:50 -04:00
Jeff Becker d1abee84d1
windows route hack because lol windows 2020-08-24 20:19:50 -04:00
Jeff Becker b2e5a178a4
verbose logging of executed commands 2020-08-24 20:19:50 -04:00
Jeff Becker d9d63ba14b
add metric to windows 2020-08-24 20:19:50 -04:00
Jeff Becker 876b8db1a1
windows fixes 2020-08-24 20:19:50 -04:00
Jeff Becker dde6bbeeb8
fix for windows as it is cursed 2020-08-24 20:19:50 -04:00
Jeff Becker 88de4c6f91
windows fixes 2020-08-24 20:19:50 -04:00
Jeff Becker 65b9b55335
fixes for windows 2020-08-24 20:19:50 -04:00
Jeff Becker 7e562a5b37
add netmask for macos 2020-08-24 20:19:49 -04:00
Jeff Becker 49eb42d63f
formatting and typo fix 2020-08-24 20:19:49 -04:00
Jeff Becker 9e24a5bfca
add check for no default route on down
fix macos bits for down
install lokinet-vpn with cmake
2020-08-24 20:19:49 -04:00
Jeff Becker c49e11031a
fix variable name 2020-08-24 20:19:49 -04:00
Jeff Becker 778792f8fc
fix compile error on macos and exclude excluded interface 2020-08-24 20:19:49 -04:00
Jeff Becker c2e484d14b
fix apple build 2020-08-24 20:19:49 -04:00
Jeff Becker 847fdb4f6b
add initial macos bits for lokinet-vpn (apple made macos so that man may suffer) 2020-08-24 20:19:49 -04:00
Jeff Becker 34ffd8e869
dont put the "gateway" into the return value use the interface address instead because that is what we are looking for 2020-08-24 20:19:49 -04:00
Jeff Becker 45b6fcd7cb
forgot hunk 2020-08-24 20:19:49 -04:00
Jeff Becker 04392a5115
tweak windows bits so that they compile 2020-08-24 20:19:49 -04:00
Jeff Becker 36a2bc5d66
add forgotten array header 2020-08-24 20:19:48 -04:00
Jeff Becker 22e4aef4f9
initial windows platform specific bits for lokinet-vpn 2020-08-24 20:19:48 -04:00
Jeff Becker 37e16291cb
working on linux with root 2020-08-24 20:19:48 -04:00
Jeff Becker a8239af73a
initial lokinet-vpn tool rewrite 2020-08-24 20:19:48 -04:00
Rick V 98241c6c1a this is what c-f v10 thinks it should look like 2020-08-13 12:06:57 -05:00
Rick V 59b8b1ba6d add service description 2020-08-12 20:00:54 -05:00
Rick V 7de4c509d7 haha lokinet is cursed now 2020-08-12 19:49:26 -05:00
Rick V 7bd3731e98 first draft of daemon control code 2020-08-12 15:27:39 -05:00
Rick V d56706b626 more daemon fluff 2020-08-12 14:55:03 -05:00
Rick V 8c62a726c0 stupid trampoline to return control to lokinet
after SCM starts
2020-08-12 14:11:47 -05:00
Rick V ca9984cc69 win32 daemon install/remove goo 2020-08-12 13:03:52 -05:00
Stephen Shelton 0f074cff8c
Remove ambguity WRT loading and passing of Config 2020-07-06 13:38:02 -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
Jeff Becker 0f21eeccb0
* rework exit codepath to allow multiple exits
* rework net code for ip ranges to be cleaner
* clean up endpoint auth code
* refactor config to validate network configs before setting up endpoints
* remove buildone from path/pathbuilder.cpp so we don't spam connection attempts
2020-07-02 11:13:30 -04:00
Jeff Becker 3cdca30a74
more auth shit 2020-07-02 11:13:30 -04:00
Stephen Shelton 0aa43c6b07
Pass RuntimeOptions instead of 'bool isRelay' 2020-07-01 08:38:56 -06:00
Stephen Shelton 984015587d
"Rethrow" to promise using std::current_exception() 2020-07-01 08:38:33 -06:00
Stephen Shelton a448cbab4f
Pass on exceptions to exit_code future in main 2020-07-01 08:21:53 -06:00
Stephen Shelton eb2260179f
Pass opts by value since we're crossing threads 2020-07-01 08:04:29 -06:00
Stephen Shelton ec4109ae60
Handle signals without C API 2020-06-29 14:09:59 -06:00
Stephen Shelton b5d6a73ffd
Rip out most of C API 2020-06-29 13:55:59 -06:00
Stephen Shelton 1497b829bd
Ignore our self.signed file if we're a client 2020-06-04 11:05:23 -06: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 18b2ef3d1e
remove unneeded file 2020-05-29 12:33:16 -04:00
Jeff Becker 242ab3caba
rename lokinet-exit too to lokinet-vpn
install lokinet-vpn tool for use with debian packaging
2020-05-29 12:31:57 -04:00
Rick V 5529371637 RouterContact::[Read|Write] now take a fs::path const ref 2020-05-26 22:39:01 -05:00
Rick V f62214cf8c
first pass fix wstring path conversions 2020-05-26 20:48:07 -05:00
Jeff Becker 14b134c42d
when we get an explicit config path respect it and the base dir 2020-05-26 10:06:38 -04:00
Jeff Becker 6af498092b
exit traffic via loki addresses 2020-05-23 16:07:19 -04:00
Jason Rhinelander c5faa86926 cmake refactor
Refactors many things in cmake to improve and simplify:

- don't use variable indirection for target names; target names are
*already* a variable of sorts.  (e.g. ${UTIL_LIB} is now just
lokinet-util).  cmake/basic_definitions.cmake is now gone.

- fix LTO enabling to use the standard cmake (3.9+) LTO mechanism rather
than shoving a bunch of flag hacks through link_libraries and
add_compile_options.  This also now enables LTO when building a shared
library (because previously the -flto hacks were only turned on in the
static code for some reason).

- build liblokinet as *either* shared library or static library, but not
both.  Building both makes things more complicated because they had
different names (lokinet-shared or lokinet-static) and seems pointless:
you generally want one or the other.  Now there is just the liblokinet
target, which will be shared or static depending on the value of
BUILD_SHARED_LIBS.

- Simplify lokinet-cryptography AVX2 code: just build *one* library, and
add in the additional AVX2 files when possible, rather than building two
and needing to merge them.

- Compress STATIC_LINK and STATIC_LINK_RUNTIME into just STATIC_LINK.
It makes no sense to use one of these (_RUNTIME) on Windows and the
other on non-Windows when they appear to try to do the same thing.

- remove a bunch of annotations from `endif(FOO)` -> `endif()`.

- move all the tuntap compilation code (including OS-specific source
file selection) into vendor/CMakeLists.txt and build tuntap as an
intermediate OBJECT library rather than keeping a global variable in 5
different files.

- move release motto define to root cmake; it made no sense being
duplicated in both unix.cmake and win32.cmake

- fix add_log_tag to not stomp on any existing source compile flags with
its definition.  Also use proper compile definition property instead of
cramming it into compile flags.

- make optimization/linker flags less hacky.  There's no reason for us
to force particular optimization flags because the cmake build type
already does that (e.g. -DCMAKE_BUILD_TYPE=Release does -O3).  Not doing
that also silences a bunch of cmake warnings because it thinks "-O0 -g3"
etc.  are link libraries (which is reasonable: that's what the code was
telling cmake they are).

- sets the default build type to RelWithDebInfo which gives us `-O2 -g`
if you don't specify a build type.

- Move PIC up (so that the things loaded in unix.cmake, notably libuv,
have it set).

- Add a custom `curl` interface library that carries the correct link
target and include paths for curl (system or bundled).
2020-05-17 23:31:23 -03:00
Stephen Shelton de8e44ba21
Re-apply clang-format rules after rebasing 2020-04-07 14:41:11 -06:00
Stephen Shelton 6909e20588
Fix logging initialization and flush at program exit 2020-04-07 14:27:30 -06:00
Stephen Shelton e3cb4b2d60
Don't create conf dir in main()
ensureConfig() does this implicitly.
2020-04-07 14:25:18 -06:00
Stephen Shelton 1fc7c61d1f
Share common conf comments for client and relay 2020-04-07 14:24:50 -06:00
Stephen Shelton 176c1e3cbd
Remove --router option 2020-04-07 14:21:44 -06:00
Stephen Shelton 05257126fe
Make distinction between config dir and data dir 2020-04-07 14:18:14 -06:00
Stephen Shelton 9e7254f6fa
Rip out pass-through-to-curl functionality 2020-04-07 14:17:52 -06:00
Stephen Shelton 923e73f693
Plumb isRelay CLI arg through to config 2020-04-07 14:17:13 -06:00
Stephen Shelton 1653b73ee5
Clean up the logic around generating default confs 2020-04-07 14:11:57 -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 Becker 9428689939
fix up cpack for macos 2020-04-03 10:14:19 -04:00
Jeff Becker 2922668e6b
initial lokinet-bootstrap in powershell for windows 2020-04-02 11:08:07 -04:00
Jeff Becker 2190da8c81
cpack win32 2020-04-02 11:08:07 -04:00
Rick V db0920d921
use backport fork for release installer only
move all invariant assets to common repo

remove ded code, libuv patches can be swapped in at build time for debug/release builds
2020-03-05 12:47:46 -06:00
Stephen Shelton 182057e881
Remove 'clang-format off' and make format 2020-02-26 14:10:26 -07: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
Jeff Becker 0f13591802
does not work 2020-01-28 16:55:36 -05:00
Ryan Tharp cd8aba4d4e daemon don't override the existing CURL 2019-12-23 07:16:13 +00:00
Rick V fd6602bf05
fix versiontag 2019-12-16 11:32:42 -06:00
Rick V 9fa9209114
don't be aggressive
remove libcurl packaging rules. We still build it, but ship only the curl.exe
2019-12-16 11:28:47 -06:00
Rick V 6d49ffd60b
include all platform dependencies transitively 2019-12-16 11:28:46 -06:00
Rick V e15c57c114
get ready for v0.6
bump version

don't ship the shared object
2019-12-16 11:28:21 -06: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 Becker cec36b62b5 make logic and net thread one in the same 2019-12-10 11:49:32 -07:00
Jeff Becker 70771a2460
fix last commit 2019-12-07 14:58:52 -05:00
Jeff Becker f56e543d75
add deadlock checker and revert bencode change from long ago 2019-12-07 14:58:19 -05:00
Rick V cf3469e11a
crash on wine, we support linux, ucb_unix, svr4
natively ffs. i tested this patch on wine 4.4 on fuckin
Solaris 11 snv_151
2019-12-01 19:01:40 -06:00
Jason Rhinelander f54740fa85 Don't pointlessly set conffname back to itself 2019-11-20 18:00:10 -04:00
Jason Rhinelander e0340e86b2 clang-format fixes 2019-11-20 17:45:56 -04:00
Jason Rhinelander 2bdde18558 Remove shell globbing of path
resolvePath was leaking memory (the returned char * from realpath was
never freed), but upon closer inspection resolvePath doesn't seem right:
shell/glob/~ expansion is the job of the shell, not the argument (but
worse, if you pass it something like '~' (quoted) it would expand, which
is wrong.

Also de-duplicate some code.
2019-11-20 17:22:07 -04:00
Rick V 83c5e9ace4
manually merge #859 2019-10-30 18:02:34 -05:00
jeff 869ab0b652 Merge remote-tracking branch 'upstream/dev' into vpn-api-2019-10-03 2019-10-21 08:01:29 -04:00
Michael f6adacf936
Review fixes 2019-10-09 23:00:50 +01:00
Michael 3371da98cf
Use libcurl (optional dependency) to hit jsonrpc 2019-10-09 23:00:50 +01:00
jeff c26b67c379 finish wiring up jni shizz 2019-10-08 10:52:01 -04:00
jeff 7d7c6bf38c Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography 2019-10-07 06:08:47 -04:00
michael-loki 4b6dab5651
Fixup 2019-10-05 17:06:35 +01:00
Michael abc527ca35
Split cmake files for executables into src dirs 2019-10-05 16:08:12 +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
Stephen Shelton c9b862a12b Add a --version flag to lokinet CLI args 2019-10-02 12:08:45 -06:00
jeff 32ed821763 Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography 2019-10-01 10:51:28 -04:00
Michael ae3fc3a395
Add initial macOS app 2019-09-24 09:50:57 +01:00
Jeff Becker 12314e8d00
ensure no crash on quit 2019-09-04 08:41:07 -04:00
Michael 1aec0dfa2b
Move logging to subdirectory 2019-09-03 20:52:27 +01:00
Michael c98ae332b2
Add missing header 2019-08-13 00:26:25 +00:00
Michael 0a1620aff2
make format 2019-08-12 22:10:07 +00:00
Michael de21a2f687
Include json output 2019-08-12 22:09:44 +00:00
Michael 8c5bbcaeeb
Update rcutil and add to build 2019-08-12 21:47:30 +00:00
Rick V f6c97091fd
clang-format 2019-08-01 22:25:48 -05:00
Rick V 581e64a2ef
back out for now 2019-08-01 21:39:45 -05:00
Rick V 578bcba73d
ok use exception filter
typo

no infinite loops
2019-08-01 21:39:44 -05:00
Rick V 16096c6adb
add debug helper lib for core dump generation on all supported windows targets
had an epiphany earlier

i kept having problems with static linking because
i merged the GNU C runtime with the SEH library
instead of merging the latter with pthread
2019-08-01 21:39:42 -05:00
Jeff Becker c1bf69f96f
run main in it's own thread and set its process name. 2019-07-26 08:55:08 -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 00c237dc6d
Move config class to its own dir 2019-07-02 01:58:38 +01:00
Michael 8323725509
Initial No-Op Crypto implementation 2019-05-29 09:46:34 +01:00
Ryan Tharp 124e9dc4bf
Merge pull request #556 from neuroscr/issue547-2
handle relative config paths better
2019-04-23 17:40:54 -07:00
Ryan Tharp 89837d5528 handle relative config paths better 2019-04-23 17:40:44 -07:00
Ryan Tharp 4f70c729c0
Merge pull request #554 from neuroscr/issue547-2
fix generate router config
2019-04-23 17:04:05 -07:00
Ryan Tharp ecec0628f0 fix generate router config 2019-04-23 17:03:42 -07:00
Ryan Tharp db25a9107c format / fix syntax error 2019-04-23 16:17:10 -07:00
Ryan Tharp f9d20fe75b
Merge branch 'master' into cooler_help 2019-04-23 16:10:52 -07:00
Ryan Tharp b36b378583 issue 547 make format 2019-04-23 14:57:01 -07:00
Ryan Tharp 8cf6a77c1d address issue loki-project#547, remove client.ini, update ini defaults, and clean up help message 2019-04-23 14:50:49 -07:00
Michael 5589d9b471
Make help more useful 2019-04-23 21:52:13 +01:00
Rick V afdb6cf2f3
windows is the oddball yet again 2019-04-22 18:06:03 -05:00
Jeff Becker 73a71e43c3
vec -> arg 2019-04-21 18:15:47 -04:00
Jeff Becker 0a990fbdff
fix positional arguments in main 2019-04-21 17:48:28 -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 57d6668e55
Move metrics out of daemon into llarp::Context 2019-04-05 10:20:48 +01:00
Rick V 1fb3a0bf62
stderr is unbuffered by default? 2019-04-03 01:14:15 -05:00
Michael 91f401ff71
Integrate metrics into router 2019-03-25 20:36:23 +00:00
Michael c5a129ddff
Convert to use abseil synchronisation primitives 2019-03-03 21:20:38 +00:00