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