Commit Graph

627 Commits

Author SHA1 Message Date
Jeff Becker
64cd2990bc
remove old routing table maniuplation code 2021-08-27 11:07:54 -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
e96ec156ea
add / remove route blackhole so we dont leak if we crash 2021-07-12 08:26:53 -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
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
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
a24b82119b
fix #1655
* make it so that we don't set up unbound resolver when we have no resolvers provided by config
* clean up dns codepath and make it use llarp::SockAddr instead of llarp::IpAddress
2021-06-20 05:59:22 -04:00
Jeff Becker
5074dd5f2b
re-enable multithreading on clients but not on service nodes 2021-06-08 14:36:30 -04:00
Jeff Becker
d7a51e88f5
make router tick 250ms instead of 100ms to prevent excessive log spam
limit calls to decommissioned warning to every 30s to prevent excessive log spam
2021-06-08 14:36:30 -04:00
Jeff Becker
f3deabdb96
* get_failing does not need abstract router as paramter so we remove it
* add remove_node_from_failing to remove a node by pubkey from the failing set
* if a router is deregistered we remove it from the failing set so we don't retest it
* remove a router from the failing set if we get a test success
2021-06-08 10:47:27 -04:00
Jeff Becker
d88ed4eee0
make windows happy by making some constexprs non static and such as windows does not LTO 2021-06-08 05:46:05 -04:00
Thomas Winget
d68d39a450 make outbound session if we do not have
currently creating an outbound session will cancel if we have any session
at all with the relay.  instead, only cancel if we have an outbound session
to that relay.  this is useful for reachability testing.
2021-06-07 18:31:57 -04:00
Jeff Becker
37ab78b654
dont run router testing if we are decommissioned.
properly name function to be called LooksDecommissioned because that is different than deregistered
2021-06-07 16:35:06 -04:00
Jeff Becker
07d18b30c0
typofix 2021-06-07 16:18:52 -04:00
Jason Rhinelander
7c964800ba
Fix unintentional whitelist/greylist copying 2021-06-07 16:16:18 -04:00
Jeff Becker
ef924aea39
gossip RC when we are not deregistered so we can come back when we are decommissioned 2021-06-07 16:15:17 -04:00
Jeff Becker
95537804cd
separate white/grey list for active/decommissioned nodes.
allow sessions to decommissioned nodes but not paths.
2021-06-07 10:57:33 -04:00
Jason Rhinelander
28ba0b7533
Add logging about testing success/fail 2021-06-07 10:00:36 -04:00
Jeff Becker
d40484deea
handle case where we already have an outbound session, inform caller about it 2021-06-07 10:00:02 -04:00
Jeff Becker
c23e121139
capture by value to appease clang 11 2021-06-07 08:44:47 -04:00
Jeff Becker
e8af36ee91
there were some unhandled edge cases in outbound_session_maker, specifically when we are not permitted to connect to a remoute but we got its rc we silently drop the error. 2021-06-07 08:41:35 -04:00
Jeff Becker
9ad90d029d
* use weak_ptr on core rpc
* use reachability testing code lifted storage server's code
2021-06-07 08:41:35 -04:00
Jeff Becker
b830eeb535
initial lokinet router testing:
* report via rpc to oxen core connection stats on success and failure
* connect to random service node by pubkey every 5 seconds for testing
2021-06-04 16:52:41 -04:00
Jeff Becker
499bb38e6f
fix route poking via rpc:
* immediately poke routes when we are told to use an exit so that packets get pushed which makes an exit path happen
* fix up cmake oddity in nsis section
2021-05-13 07:30:53 -04:00
Jeff Becker
51b7566a46
if we look deregistered we will now:
* not gossip our rc
* not explore the network to prevent outbound session attempts
* not establish sessions to other service nodes
* close all open sessions we have to tell clients we don't want them
* catch exceptions flushing peerdb in disk thread
* don't connect out to non allowed routers
* simplify logic in RCLookupHandler::RemoteIsAllowed()
* add HaveReceivedWhitelist to I_RCLookupHandler base type
* add LooksDeregistered to Router type that tells us if we think we are deregistered
* don't allow building paths over us if we are deregistered
2021-05-12 07:17:40 -04:00
Jeff Becker
ec62228149
limit path builds across all builders 2021-05-05 08:21:39 -04:00
Jeff Becker
554a44c8bf
report block height reported by oxend in systemd status 2021-05-03 16:53:00 -04:00
Thomas Winget
cecbddc912 Fixes subtle memory leak, adds comments
Fixes a subtle memory leak that was a result of outbound messages which
were in the shared queue (not yet sorted into a per-path queue) when a
path was removed, resulting in a ghost path queue (and thus round-robin
order entry as well).

Adds much needed documentation to the outbound message handler class.
2021-04-29 20:10:55 -04:00
Jeff
ef28de8c9f
Merge pull request #1610 from majestrate/android-fixes-2021-04-26
Android fixes
2021-04-29 10:05:13 -04:00
Jason Rhinelander
7963cd0181 Fix headers & grammar for non-systemd 2021-04-28 21:23:00 -03:00
Jason Rhinelander
1d48cd6d35 format 2021-04-28 17:07:44 -03:00
Jason Rhinelander
b9363c8d21 Put systemd ifdef around the headers, too 2021-04-28 16:56:49 -03:00
Jason Rhinelander
4ef25ef679 Add systemd-resolved dynamic DNS updating
Wires up systemd support to configure DNS on startup and when
enabling/disabling exit mode.

On startup (and when turning off an exit) we tell systemd-resolved to
direct .loki and .snode lookups to lokinet (leaving other DNS traffic
alone).

On exit enabling, we reconfigure it to resolve "." (i.e. the root DNS
domain) so that all lookups come into it.
2021-04-28 16:48:10 -03:00
Jeff Becker
6d12a7a712
fixes for android jni 2021-04-26 06:08:02 -04:00
Jason Rhinelander
86dcdde8d3 Add missing <optional> header
Reported by TechnicalTumbleweed as needed to fix a build.
2021-04-22 16:55:37 -03:00
Jeff Becker
545021aa3d
temp commit 2021-04-19 07:02:46 -04:00
Jeff Becker
25e338d621
srv records
* add srv records in RCs if we have any
* add mechanism to add SRV records for plainquic exposed ports
* resign and republish rc or introset on srv record changes
2021-04-19 07:02:43 -04:00
Jeff Becker
a2285730b8
reduce log level 2021-04-19 07:00:27 -04:00
Jeff Becker
48ce77ed1f
XXX: single threaded mode 2021-04-19 06:59:07 -04:00
Jeff Becker
2188b443e9
more liblokinet api stuff
* add lokinet_wait_for_ready to wait until we have published introsets and such
* optionally expose ports in lnproxy
* dont save profiles by default
2021-04-19 06:59:07 -04:00
Jeff Becker
95cd275cdd
liblokinet additions:
* add lokinet_add_bootstrap_rc function for adding an rc from memory
* prevent stack overflow on error closing connection in quic
* add in memory nodedb
* refactor how convotags are set as active
* add initial stubs for endpoint statistics
* refactor time stuff to be a bit cleaner
* update lnproxy script with more arguments
2021-04-19 06:59:07 -04:00
Jeff Becker
59c9e997f2
build paths faster and limit path builds at edge router instead of via a time counter for all edges 2021-04-19 06:59:05 -04:00