Commit Graph

593 Commits

Author SHA1 Message Date
Jeff Becker
0900ab88d1
publish introsets on nearest routers
fetch introset from random routers
2021-06-21 16:01:38 -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
4b11858bb0
make clang compile, remove unused variable 2021-06-21 15:16:27 -04:00
Jeff Becker
963250c0ef
format 2021-06-21 15:16:27 -04:00
Jeff Becker
71d17dc2c9
format and logging
ignore outbound session auth messages
2021-06-21 15:16:26 -04:00
Jeff Becker
b70ecade2b
correct the logic for inbound convos
send back traffic on the correct path
2021-06-21 15:16:25 -04:00
Jeff Becker
5909ad0386
add MarkAddressOutbound to plainquic 2021-06-08 14:36:33 -04:00
Jeff Becker
cce15b13c8
dont establish paths to inbound sessions to try and address state race condition 2021-06-08 14:36:33 -04:00
Jeff Becker
aefab797d7
unconditional putsenderfor 2021-06-08 14:36:33 -04:00
Jeff Becker
e4ed53224c
use weak_ptr on a path to reference its parent pathset instead of a bare pointer so crashes dont happen 2021-06-08 14:36:32 -04:00
Jeff Becker
a7b20b79c5
add relay order to error message 2021-06-08 14:36:31 -04:00
Jeff Becker
34e31ba04f
only inform failure or success of introset lookups when all lookups have returned 2021-06-08 14:36:31 -04:00
Jeff Becker
00257567c2
dont call null handler
if we have no path to the remote router that's fine still use it just in case we have no other convotags
2021-06-08 14:36:31 -04:00
Jeff Becker
85cd1b6863
use inbound sessions we don't have paths to in GetBestConvoTagFor just so we can give the caller SOMETHING. 2021-06-08 14:36:31 -04:00
Jeff Becker
b03d17bc8e
dont change send timeout for exits from tun handler as that screws with consistency in testing.
improve log messages, provide more info
2021-06-08 14:36:30 -04:00
Jeff Becker
42d75b934d
remove service nodes we can't look up from the nodedb as client 2021-06-08 14:36:30 -04:00
Jeff Becker
8dd1358cc6
* tweak introset handover timeouts
* introset path haodver tweaks
* improve warn/error messages to convey more information
* dont block on queue insertion
* reset convotag on decrypt/verify fail
* add multiple ready hooks on outbound context
* lookup introsets from close routers on dht
* continue to tick dead sessions so they expire their paths
* introset spacing
* reduce lns lookup diversity requirement for speed
* add a function to send reset convotag message
* only have 1 outbound context at a time
2021-06-08 14:36:30 -04:00
Jeff Becker
9a1a022d62
add relayOrder awareness to introset lookups.
* only propgate fail when relay order is non zero as zero relay order often fails
2021-06-08 14:36:30 -04:00
Jeff Becker
f1efcc29ea
mark inbound traffic as convotag active 2021-05-15 15:27:28 -04:00
Jeff Becker
c5350ab2c4
DefaultPathAlignmentTimeout -> PathAlignmentTimeout 2021-05-11 05:12:27 -04:00
Jeff Becker
c834414b47
when we have to reestablish an outbound session use a much much higher timeout for restablishment
so it doesn't time out and get into a state that's totally screwed.

add virtual function service::Endpont::DefaultPathAlignmentTimeout() to get the timeout for path alignment
and use it for resetablishing outbound sessions
2021-05-11 05:12:27 -04:00
Jeff Becker
3c22e01d7c
in the event that a session is removed and then gets more traffic we would re-add the session with everything blank if there was more traffic in the same tick.
this remedies this behavior by only increment usage timestamps on sessions if they exist.
2021-05-09 08:00:31 -04:00
Jeff Becker
d3d929efa7
fixups in service endpoint
* increase publish introset timeout so that it does not time out on the network
* remove pedantic log warn
* make sure the path we are using for replying on inbound sessions is alive
* include convotag in log message so we know wtf is going on
* appease tom's autism, improve log message text
2021-05-06 16:34:24 -04:00
Jeff Becker
e916c9610c
format 2021-05-03 19:42:13 -04:00
Jeff Becker
0826a557d6
use correct intro 2021-05-03 15:18:21 -04:00
Jeff Becker
0005bee196
allow more than one outbound context per endpoint for fallback in case one outbound context takes a shit 2021-05-03 15:18:21 -04:00
Jeff Becker
83e70d95e0
dont invalidate cache on lns timeout, only on explicit negative 2021-05-03 15:18:21 -04:00
Jeff Becker
f9fe6f7e3b
consmetic fixes
* print names in lookup jobs instead of yyyyyy
* update syntax in construction of objects
2021-05-01 08:59:56 -04:00
Jeff Becker
f2e8b5547d
compat for lokinet 0.8.x
* don't send messages back that aren't expected
2021-05-01 08:58:50 -04:00
Jeff Becker
b721b8d65b
finish wiring up config for #1595 2021-04-19 07:03:56 -04:00
Jeff Becker
fedc56e3f1
initial commit for #1595 2021-04-19 07:02:46 -04:00
Jeff Becker
545021aa3d
temp commit 2021-04-19 07:02:46 -04:00
Jeff Becker
4889b8cddf
fix up client to snode codepath 2021-04-19 07:02:45 -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
94ecf02a62
add option to run lokinet traffic only with no exit and drop all non lokinet traffic
triggered by: exit-node=null
2021-04-19 07:00:27 -04:00
Jeff Becker
e005b34169
fix up some retarded bullshit
* llarp::service::NameIsValid was not checking that the tld was .loki, add this check.
* make link layer initial connection timeout 5s not the session activity timeout which happens to be 60 god damn seconds.
2021-04-19 07:00:26 -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
853cc52efb
wire up liblokinet 2021-04-19 06:59:06 -04:00
Jason Rhinelander
35ead9dc6b
Remove superfluous block (FIXME: squash this with earlier "FIXME") 2021-04-19 06:59:06 -04:00
Jason Rhinelander
a2045cd966
Fix debug message 2021-04-19 06:59:06 -04:00
Jeff Becker
309a899c9f
mark loopback convotags as forever
make null handler mark discard data as activity for convotag
2021-04-19 06:59:06 -04:00
Jeff Becker
f310778f81
dont regenerate convotag on loopback when we have one already 2021-04-19 06:59:06 -04:00
Jeff Becker
abf8d2fb17
fix loopback convotag 2021-04-19 06:59:06 -04:00
Jeff Becker
5b05d22bad
refactors
* add path sequence numbers on routing messages
* reduce log level in debug mode
* wire up loopback style sending to ourself
2021-04-19 06:59:06 -04:00
Jeff Becker
f86a2daf83
fixes
* Add service::Endpoint::HasOutboundConvo
* dont mark outbound convos as inbound
* order quic packets
2021-04-19 06:59:06 -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
Jason Rhinelander
738f16366b
Try outbound convos if no inbound convos work (FIXME)
FIXME - eliminate this block of code that used to be an `else` before
PR'ing.
2021-04-19 06:59:04 -04:00
Jason Rhinelander
183abd58aa
Add more checks and logging
Most of the logging here is Trace level so needs a Debug build to not
get compiled away.
2021-04-19 06:59:04 -04:00
Jeff Becker
708e408c30
various fixups and cleanups
* wire up last of the quic stuff
* clean up udp packet generation code
* pass EndpointBase not quic tunnel for quic stuff
* add {n,h}uint16_t::FromString
* add nuint_t::FromString
* make AlignedBuffer::IsZero non constant time call for speed
2021-04-19 06:58:37 -04:00