Commit Graph

4087 Commits (0c869600df6fcb4b53a05c79f312aaa046ba35b6)

Author SHA1 Message Date
Jeff Becker dc68ff6de9
prevent bad side effects, dont use iterator after use and use operator[] 4 years ago
Jeff Becker b2b68c413c
actually set disabled when disabiling route poker 4 years ago
Jeff Becker 6a29cc7380
call closed hook when we explicitly close a link session 4 years ago
Jeff Becker 6a2d35d907
always use most recent convotag 4 years ago
Jeff Becker b484d9bebb
update route poker logic to include "up" 4 years ago
Jeff Becker e46204b068
dont wire up router thaw to sigusr1 4 years ago
Jeff Becker 07b599430e
thaw router when connectivity changes 4 years ago
Jeff Becker 676ca7f511
close stale sessions on thaw because they are probably already gone. this removes them and forces the sessions to be renegotiated. 4 years ago
Jeff Becker ffef3bc48f
wire up sigusr1 to reset libunbound dns resolver 4 years ago
Jeff Becker 8239efa71b
clarify new member's purpose and name. add comment. 4 years ago
Jeff Becker 1526941f3a
make it compile again 4 years ago
Jeff Becker 0600f42814
fix up names of functions to be less hidious. 4 years ago
Jeff Becker 1ee545d6d2
fix up macos route command for ipv6 4 years ago
Jeff Becker 35137913b9
windows and macos route pokers for ipv6 4 years ago
Jeff Becker 1c7079dbab
fix up route poking with lokinet to work with ipv6 4 years ago
Jeff Becker 063e982ef6
fix exit range default value 4 years ago
Jeff Becker bd93a8f828
initial v6 exits 4 years ago
Jeff Becker 1f1db29816
GetIf -> GetRandom 4 years ago
Jeff Becker f24cdb305b
clean up calls to NodeDB::GetIf to be cleaner and more concise 4 years ago
Jeff Becker c8aba0af31
make llarp::NodeDB::GetIf always randmize location 4 years ago
Jeff Becker d55705362a
use good routers 4 years ago
Jeff Becker b6dbbb4bef
consolidate pathbuilder logic
* deduplicate code for path hops selection
4 years ago
Jeff Becker 242e56507c
proper lokimq -> oxenmq refactor 4 years ago
Jeff Becker 1e58715e0b
fix pybind layer 4 years ago
Jeff Becker 922f4fb724
fix iteration bug 4 years ago
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
4 years ago
Jeff 5f0f4e0c70
prevent crash by removing duplicate logic (#1515)
when a path expires or fails or something causes its lifecycle to end we have cleanup
logic that handles clean up for it. this removes a code path that was crashing that
is duplicated elsewhere and is thus probably safe to bin. yolo.
4 years ago
Jeff Becker 82b3ec19e8
unbreak the build
* remove llarp/ev/pipe.cpp from cmake
* fix typo in llarp/ev/ev_libuv.cpp
4 years ago
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
4 years ago
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
4 years ago
Jason Rhinelander 384b968cf0
Merge pull request #1437 from majestrate/key-manager-fixes-2020-10-30
key manager should throw on failure to load keys
4 years ago
Jeff db7abe8f09
do /1 route poker split on linux (#1480)
* do /1 route poker split on linux

i hate netlink so god damn much

* use an enum class for the gateway mode
4 years ago
Jeff dad66c50cb
poke route hole for loopback on windows because that OS is made by brain damaged non programmers. (#1473)
this fixes the gui bug where it hangs on adding an exit becuase loopback gets routed over the exit.
before it was causing the lmq connection to hang becuase of that route change.
4 years ago
Jeff a0ed303d7b
try to handle router deregistrations on the network better (#1461)
* don't send messages to de-registered relays but allow traffic to clients

* actively close sessions to de-registered relays
4 years ago
Jeff a7518057cb Revert "deny traffic to non whitelisted routers. (#1444)"
This reverts commit ff02e62a79.
4 years ago
Jeff c743022cfb
try fixing deadlock (#1454)
* fix deadlock in #1453

* remove use of shared_lock in profiling
* clean up Save and Load to acquire lock
* bencode and bdecode are now non locking

* remove all places using std::shared_lock

* bail if write fails
4 years ago
Jeff e66522b9dd
fix path reference leak (#1451) 4 years ago
Jeff 34c7f0da0d
profiles.dat is always relative so if you spawn lokinet in / then it will error about permissions. (#1449)
* use absolute path for profiles.dat.

* remove old bencoding bits to use const fs::path instead of const char *
4 years ago
Jeff 8be7c46531
try fixing memory leak in path builder (#1442) 4 years ago
Jeff ff02e62a79
deny traffic to non whitelisted routers. (#1444)
* deny message delivery from non registered nodes when whitelist is enabled and applicable

* use DoCallback and return true so that the event gets fired right
4 years ago
Jeff 87c76a6769
add exit.localhost.loki cname record (#1440)
* add exit.localhost.loki cname record

* return cname in localhost.loki A/AAAA lookup reply

* correctly handle case where we have no exit

* typofix

* simplify logic
4 years ago
Jeff 3ec727d844
I have no words. (#1438)
So apparently dnsConfig in Router was never set.
Router::networkConfig was set, but only used in the function
which set it and otherwise only passed to another function once.
dnsConfig was only used in one place.

both member variables have been removed in favor of just
referencing Router::m_Config.

Co-authored-by: Thomas Winget <tewinget@gmail.com>
4 years ago
Jeff Becker 5233b26552
format 4 years ago
Jeff Becker bf1a692005
key manager should throw on failures 4 years ago
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
4 years ago
Jeff c81b6049f1
fix crashes on shutdown (#1433) 4 years ago
Jason Rhinelander e47b70a82f
CMake fixes: libuv static build, base_libs, shared lib install dir (#1431)
* Update how we build libuv

- Update submoduled libuv to latest stable (1.40.0)
- Don't look for a system libuv if we're under BUILD_STATIC_DEPS
- Add a libuv interface library rather than using globals
- Make the windows build fall back to the submodule if not explicitly
  given a LIBUV_ROOT

* Replace ${LIBS} global with `base_libs` interface

This simplifies linking and include handling a bit.

* Remove unneeded header

* Add missing csignal header

(This was previously being pulled in incredibly indirectly via some
stuff that eventually includes some other stuff that eventually included
uv.h)

* Use GNUInstallDirs to get lib dir instead of hard-coding lib

Fixes #1429
4 years ago
Jeff dcb48db5fe
enable profiling on clients by default (#1421)
* enable client relay profiling by default

* macos dns fixes

* improve peer profiling algorithm to track timeouts vs failures

* remove debug ioctl call in tuntap code

* use ub_wait instead of ub_process as that was what was there before

* const correctness

* DRY out checking for SIIT

* typofix

* correct name
4 years ago
Jeff 4c7d52ac20
more aggressive path building. (#1423)
* more aggressive path building.

* do more than one in parallel path builds at a time

* correct last commit's logic

* rename numPaths -> numDesiredPaths to clarify intent

* revert string change as it will break a lot

* don't prematurly short circuit on snode builds

Co-authored-by: Thomas Winget <tewinget@gmail.com>
4 years ago
Jeff 7a1207dc47
dont bind inbound links as client (#1419)
* dont bind inbound links as client

* fix broken test

* logic call MUST defer call
4 years ago