Commit Graph

4523 Commits

Author SHA1 Message Date
Jason Rhinelander
14c93e2b93 Unbound callbacks also need arguments reversed
PR #1725 reversed argument orders but UnboundResolver was still using
(from,to) ordering in its callbacks, which leaked through to make a
wrong order in our reply function (which simply forwards arguments).

This fixes that bug by making UnboundResolver callback argument order
consistent (i.e. using to, from) with the PacketHandler argument order.
2021-09-01 14:40:18 -03:00
Jason Rhinelander
3ce329d2bf Reapply "fix dns on android" + fix argument order
The reason the dns fix on android didn't work is that the DnsInterceptor
had a reversed to/from argument order for its
`SendServerMessageBufferTo` overload, and so android/mac needed the
to/from to be reversed so that the second reverse cancelled out the
first one.

Upon review, the DnsInterceptor order (to, from) is more intuitive than
the base order (from, to), so this reapplies the dns fix and swaps
everything *except* DnsInterceptor to match the (to, from) argument
order.
2021-09-01 12:09:27 -03:00
Jason Rhinelander
a70035b7ec
Revert "fix dns on android"
This reverts commit dace0224ec.

This reportedly didn't fix things on Android, and most definitely breaks
macOS (with this we get a bunch of errors about expecting inbound when
we have outbound).
2021-08-31 18:58:03 -04:00
Jeff
418eb4efaa
Merge pull request #1721 from majestrate/platform-bits-2021-08-26
initial routing table platform bits refactor
2021-08-31 12:10:32 -04:00
Jason Rhinelander
3deb55193f SockAddr string optimization
- Reduce buffer size to INET6_ADDRSTRLEN, and use a single buf rather
  than two identical ones in each branch.
- Don't pre-reserve because doing so is usually going to over-allocate,
  but also because it prevents SSO, especially for the IPv4 case which
  should fit in SSO for all IPv4 addresses.
2021-08-30 16:55:17 -03:00
Jeff Becker
6251c13d46
add NOP implementation of VPN route manager for android 2021-08-27 19:49:01 -04:00
Jeff Becker
07a58ffa6c
use vpn::NetworkInterface for add/del route via interface instead of string 2021-08-27 11:55:57 -04:00
Jeff Becker
c9b9ed91c2
make add/del blackhole default to empty implementation 2021-08-27 11:42:24 -04:00
Jeff Becker
e25ae7192f
introduce add/del route via interface to route manager 2021-08-27 11:40:40 -04:00
Jeff Becker
64cd2990bc
remove old routing table maniuplation code 2021-08-27 11:07:54 -04:00
Jeff Becker
9791fd62a0
initial win32 port of route manager 2021-08-27 11:02:21 -04:00
Jeff Becker
0871862452
initial routing table refactor
* move routing table manipulation to vpn platform
* add initial linux implementation of vpn platform route manipulation
2021-08-27 10:42:04 -04:00
Jeff Becker
37dde7da05
format 2021-08-16 08:37:58 -04:00
Jason Rhinelander
f39084bffa
Merge pull request #1714 from jagerman/remove-broken-split
Remove unneeded split(str, char) method
2021-08-11 19:08:14 -03:00
Jason Rhinelander
1b878e348b
Merge pull request #1715 from jagerman/default-upstream-dns-port
Fix default upstream DNS not working
2021-08-11 19:08:00 -03:00
Jason Rhinelander
73f0432b28 Fix default upstream DNS not working
The default upstream DNS was being set to 1.1.1.1:0, which doesn't work.
This fixes it to also set the port so that default upstream resolution
(i.e. with an empty config) works again.
2021-08-11 18:24:11 -03:00
Jason Rhinelander
9950adf472 Remove unneeded split(str, char) method
This function had a bug in stable (fixed in dev) when `last` returns
npos, but the function also appears to basically be duplicating what the
next split version can do, so this just removes it and uses the single
more generic split(strview, strview) method.
2021-08-11 00:26:52 -03:00
Jason Rhinelander
ae1243e9d9 Remove unused defaults.hpp
The definitions in here aren't actually used anywhere anymore, so just
drop it.
2021-08-10 17:13:27 -03:00
Jeff Becker
e96ec156ea
add / remove route blackhole so we dont leak if we crash 2021-07-12 08:26:53 -04:00
Jeff Becker
dace0224ec
fix dns on android 2021-07-09 09:51:51 -04:00
Jeff Becker
4f1bd14d3c
fix issue with excessively pedantic stl on archlinux 2021-07-06 08:54:39 -04:00
Jeff Becker
14cc115489
dont use constexpr 2021-07-05 12:38:18 -04:00
Jeff Becker
069d9487b7
* throw exception on invalid SessionResult when transforming to SendStatus
* add case for printing unknown SessionResult
2021-07-05 09:18:28 -04:00
Jeff Becker
18cb59a1b5
* make tranform function for SessionResult to SendStatus
* add case for SessionResult::EstablishFail
* clean up outbound message handler to use transform function instead of many private member functions
2021-07-05 09:09:21 -04:00
Jeff Becker
30848165e7
add path filter in lokinetmon 2021-07-05 09:09:21 -04:00
Jeff Becker
e7ac0f3902
expunge outbound contexts that have not gotten inbound traffic for a long while 2021-07-05 09:09:20 -04:00
Jeff Becker
75451d7124
* add establish fail enum
* dont call outbound session hooks for inbound sessions
2021-07-05 09:09:20 -04:00
Jeff Becker
e3281cd026
add string representation to SessionResult 2021-07-05 09:09:20 -04:00
Jeff Becker
1d1d97b0ef
disable peer status entirely 2021-07-05 09:09:20 -04:00
Jeff Becker
2578983a09
dont give peer stats in rpc 2021-07-05 09:09:20 -04:00
Jeff Becker
20bc338eba
inbound sessions from CLIENTS should only have an elevated lifetime 2021-07-05 09:09:20 -04:00
Jeff Becker
caddeef2e8
more information in logs 2021-07-05 09:09:20 -04:00
Jeff Becker
977ea3d689
* add log warn
* throw if inbound link makes outbound session
2021-07-05 09:09:20 -04:00
Jeff Becker
99379c5def
establish outbound sessions when we have no outbound session.
when we have an inbound session we still want to make an outbound session.
2021-07-05 09:09:20 -04:00
Jeff Becker
cf0349c259
if we have an inbound session don't fail with NoLink 2021-07-05 09:09:19 -04:00
Jeff Becker
f4fa83703f
refactor to use RouterID instead of rc.pubkey 2021-06-30 06:45:11 -04:00
Thomas Winget
8515fe09d4 fix minor oversight/inefficiency with already established connections 2021-06-29 18:44:42 -04:00
Jeff Becker
abd6e4c558
use weak_ptr instead of bare pointer to prevent use after free 2021-06-25 05:08:31 -04:00
Jeff Becker
aa48a1de1b
lower log level 2021-06-23 07:30:30 -04:00
Jeff Becker
3ad59105ef
when an outbound context is "marked bad" we want to ignore any new paths.
before this commit when a new path was made when an outbound context marked bad lokinet would segfault.
2021-06-23 07:21:01 -04:00
Jeff Becker
9d0dffe086
only permit 1 pending session per udp endpoint 2021-06-22 09:26:03 -04:00
Jeff Becker
67f8a7116f
if we get a discard message from the pivot discard the outbound context if the remote intro is also expired 2021-06-21 16:02:03 -04:00
Jeff Becker
0900ab88d1
publish introsets on nearest routers
fetch introset from random routers
2021-06-21 16:01:38 -04:00
Jeff Becker
872a8d8045
use exisitng convotag first instead of trying to send to directly 2021-06-21 15:16:28 -04:00
Jeff Becker
ee5723ecdc
add upperbound to number of endpoints used in lns lookups 2021-06-21 15:16:28 -04:00
Jeff Becker
3393b5a5a7
make it so lookups dont time out 2021-06-21 15:16:27 -04:00
Jeff Becker
b5efb8c604
rename local variable to be clear about meaning, add comment 2021-06-21 15:16:27 -04:00
Jeff Becker
1a0e6a7ac1
remove redundant check as ReadyToSend also checks IntroSent() 2021-06-21 15:16:27 -04:00
Jeff Becker
d45f0f8951
value initialize introduction so that expiresAt defaults to zero 2021-06-21 15:16:27 -04:00
Jeff Becker
9f353238af
ReadyToSend also should include checking we have a path to the remote 2021-06-21 15:16:27 -04:00