Commit Graph

436 Commits

Author SHA1 Message Date
Jason Rhinelander
c0eb0c4db4 Avoid unnecessary copy 2020-03-01 13:56:04 -04:00
Jeff Becker
d50a0149f9
use std::chrono 2020-02-25 17:46:16 -05:00
Jeff Becker
9c30ff7a26
handle snode and clean up codepath for hooked dns 2020-02-25 17:43:08 -05:00
Jeff Becker
1d5c712adb
monkey patch upstream dns to rewrite .loki cname answers 2020-02-25 17:43:08 -05:00
Jeff
a8a6c175fc
Merge pull request #1128 from majestrate/use-std-chrono-2020-02-24
make llarp_time_t use std::chrono::milliseconds
2020-02-25 15:36:00 -05:00
Jeff Becker
bf0416cab8
remove Time_t, add operator overload for printing llarp_time_t and add to_json function for serializing llarp_time_t to json 2020-02-25 12:05:13 -05:00
Jason Rhinelander
3bd400f6fe Fix string_view C++17 compatibility
string_view was implicitly convertible to std::string, but
std::string_view is only explicitly convertible.  This makes the
`operator std::string` explicit to be more compatible, and re-adds a
bunch of explicit string casts to the code where needed.

(This also fixes the build if changing the standard to c++17)
2020-02-25 11:52:43 -04:00
Jeff Becker
d2d109e92c
llarp_time_t is now using std::chrono 2020-02-24 15:25:03 -05:00
Jason Rhinelander
46242ba69b TrimWhiteSpace -> TrimWhitespace
Fix my dumb initial capitalization choice.
2020-02-24 14:27:44 -04:00
Jason Rhinelander
54186c4a89 Replace absl string_view with string_view from lokimq
When we add loki-mq has a dependency we can just alias it, but for now
it's easier to copy the header than add the whole submodule library.
2020-02-24 14:27:44 -04:00
Jason Rhinelander
98c34d995b De-abseil: Add our own llarp::TrimWhiteSpace
Adds a TrimWhiteSpace instead of using abseil's.

Adds Catch2 tests for it, and also converts the existing str tests to
catch (which look much, much nicer than the gtest ones).
2020-02-24 14:27:44 -04:00
Jeff Becker
6c67cc1f01
make default endpoint non reachable by default 2020-02-12 09:54:59 -05:00
Jeff Becker
70eb353c42
make publishing introsets optional using reachable=false to disable 2020-02-11 16:48:36 -05:00
Jeff Becker
ee752c00e6
make format 2020-02-01 10:28:10 -05:00
Jeff Becker
c014d21f84
use std::shared_ptr not a bare pointer to prevent memleak 2020-02-01 09:31:53 -05:00
Jeff Becker
79c3c748e4
limit number of snode sessions client side 2019-12-30 05:19:03 -05:00
Jeff Becker
92bbda600b
remove callsto Router::PumpLL and stuff gets faster (or stuff) 2019-12-09 16:59:13 -05:00
Jeff Becker
0c5c1aab1b
remove unneeded log statement 2019-12-04 08:06:16 -05:00
Jeff Becker
a2fc35a7aa lower limit to 25ms 2019-11-29 19:11:14 -04:00
Jeff Becker
5924a2cec0 limit calls 2019-11-29 19:11:14 -04:00
Jeff Becker
0828307906 fix address mapping bug 2019-11-29 19:11:14 -04:00
Jeff Becker
5188873288 batch and flush 2019-11-29 19:11:14 -04:00
Jason Rhinelander
d13a3d2b62 Don't flush here; we already have a tick flushing 2019-11-29 19:11:14 -04:00
Jeff Becker
ba0fd223d9 reduce number of jobs we put onto the logic thread 2019-11-29 18:45:06 -04:00
Jeff Becker
6f95fbfece
work in progress 2019-11-22 16:23:20 -05:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs 2019-11-22 16:23:19 -05:00
jeff
52757fef0e Merge remote-tracking branch 'micheal/background_mode' into vpn-api-2019-10-03 2019-10-04 14:10:58 -04:00
Jeff Becker
327c545530
finish multithread cryptography first pass 2019-09-16 12:12:05 -04:00
jeff
14c9ef15ed try calling stuff in logic thread from event loop 2019-09-16 06:21:12 -04:00
Jeff Becker
61ade40a51
reduce logging and make format 2019-09-09 07:36:21 -04:00
Jeff Becker
e3bb59707e
more 2019-09-05 17:28:50 -04:00
Jeff Becker
1adae338ce
Merge remote-tracking branch 'origin/master' 2019-09-04 07:58:02 -04:00
Michael
edd0ec398f
Move thread stuff to subdirectory 2019-09-03 20:52:28 +01:00
Michael
4d8fe2a8a8
Move meta programming to subdirectory 2019-09-03 20:52:28 +01:00
Jeff Becker
c01112e4b7
tracy lock contention testing and other fun things 2019-09-03 11:56:56 -04:00
Michael
094b697b01
Replace StatusObject with underlying JSON type 2019-08-19 10:33:26 +01:00
Michael
16cdfbd5f0
clang-tidy modernize pass 2019-08-12 16:52:58 +01:00
Michael
f9e9227e19
Fix gcc trunk warnings 2019-08-02 10:29:08 +01:00
Jeff Becker
8329aa0ee6
always rewrite address 2019-08-01 14:18:36 -04:00
Jeff Becker
2261885206
mark addresses as active when we use them 2019-08-01 08:20:51 -04:00
Jeff Becker
f48754c45d
make hop count and length configurable 2019-07-18 12:28:17 -04:00
Michael
e52492911d
Refactor endpoint state management to a new class 2019-07-15 10:15:51 +01:00
Jeff Becker
6882e627ba
make format 2019-07-12 10:07:12 -04:00
Jeff Becker
3ed8dec78b
use const reference and don't log invalid packets 2019-07-09 15:17:27 -04:00
Jeff Becker
0eb6431eb1
initialize tun with 0 and set defaults in correct places 2019-07-08 11:26:06 -04:00
Jeff Becker
a781589b52
try fix for localhost.loki 2019-07-05 10:41:26 -04:00
Jeff Becker
d6ec528a72
start work on seperating ips out of endpoint 2019-07-01 10:56:56 -04:00
Jeff Becker
64e9622270
start seperating tun and endpoint 2019-07-01 09:44:25 -04:00
Jeff Becker
c60099002b
reverse dns for ipv6 2019-06-12 09:48:14 -04:00
Jeff Becker
ec3ddfa425
typofixes 2019-06-11 18:29:45 -04:00
Jeff
8407c20b91
Merge branch 'ipv6-tun' into ipv6-tun 2019-06-11 17:46:47 -04:00
cathugger
72b1ea613c
make format 2019-06-12 00:28:55 +03:00
cathugger
a9dac85c28
fix stuff 2019-06-12 00:27:06 +03:00
Jeff Becker
a780789b2c
handle ipv6 exit traffic 2019-06-11 15:48:21 -04:00
Jeff Becker
0cf09d6435
make exits support v6 probably 2019-06-11 15:42:11 -04:00
Jeff Becker
de51ef23bf
more 2019-06-11 14:23:53 -04:00
Jeff Becker
2403ab8f86
ipv6 2019-06-11 12:44:05 -04:00
Jeff Becker
a33dbce680
try switching logic 2019-06-06 06:52:27 -04:00
Michael
75430a234c
Convert to use memFn 2019-06-02 22:19:10 +01:00
Jeff Becker
2ac89c0afb
DRY 2019-05-23 08:22:48 -04:00
Jeff Becker
b679dd7341
fixit 2019-05-22 13:38:02 -04:00
Jeff Becker
64c7ed42fc
make format 2019-05-22 12:20:50 -04:00
Jeff Becker
9c96aecf3f
move llarp::Logic to std::shared_ptr
add sequence numbers to HSD messages

begin work on network isolation code

add more docs
2019-05-22 12:20:03 -04:00
Jeff
06f8bb2f42 add blacklist-snode option 2019-05-10 12:19:33 -04:00
Jeff Becker
a53da68700
start work on sighup 2019-05-07 13:46:38 -04:00
Jeff Becker
728c6005a3
propagate strict-connect to tun handler for hooks 2019-05-06 08:42:21 -04:00
Jeff Becker
986e831579
make bundle-rc option configurable on snode tld 2019-05-02 14:11:44 -04:00
Jeff Becker
e060082441
hook every dns for .loki and .snode when applicable
make {n,h}uint{32,16}_t templated type.
2019-05-01 09:40:10 -04:00
Jeff Becker
bb47d612b3
more 2019-04-30 12:07:17 -04:00
Jeff Becker
5e0acc1197
separate upstream/downstream flush 2019-04-30 09:56:39 -04:00
Jeff
27fac68716 fix 2019-04-28 14:22:38 -04:00
Jeff
01906c5d94 Merge remote-tracking branch 'origin/master' 2019-04-28 13:33:27 -04:00
Jeff Becker
fea64eaf12
handle subdomains 2019-04-26 08:14:29 -04:00
Jeff Becker
d20ba9ceab
handle subdomains 2019-04-26 08:11:34 -04:00
Jeff Becker
6711296b26
finish converting to shared_ptr 2019-04-23 12:13:22 -04:00
Jeff Becker
8484e29c9b
turn more stuff into std::shared_ptr
remove dead codepaths
2019-04-23 10:47:23 -04:00
Jeff Becker
c0d7b53328
make it work 2019-04-22 10:00:59 -04:00
Jeff Becker
3a8cb0bfb5
add shell based hooks for service::Endpoint, also make format 2019-04-22 08:25:25 -04:00
Michael
6bf54e0925
Remove AsyncKeyExchange, HiddenServiceAddressLookup and OutboundContext to their own components 2019-04-21 19:39:50 +01:00
Jeff Becker
351feadaec
make it work 2019-04-11 09:19:58 -04:00
Jeff Becker
e178a70929
use shared_ptr for event loop 2019-04-08 08:01:52 -04:00
Jeff Becker
2f2b841c67
disable mx record dropping
add servfail
2019-04-05 12:39:43 -04:00
Jeff Becker
c931ac069f
add AAAA records that return SIIT addresses 2019-03-27 09:36:11 -04:00
Jeff Becker
567efb9a92
Revert "move is_random_snode/is_localhost_loki into dns, llarp_HandleHookedDNSMessage() attempt at unification refactor between exit/tun handlers"
This reverts commit e388dc47eb.
2019-03-20 11:48:23 -04:00
Ryan Tharp
e388dc47eb move is_random_snode/is_localhost_loki into dns, llarp_HandleHookedDNSMessage() attempt at unification refactor between exit/tun handlers 2019-03-20 03:28:58 +00:00
Ryan Tharp
d02eec2bcf add note 2019-03-20 03:18:38 +00:00
Jeff Becker
eceb55623c
more 2019-03-07 10:17:29 -05:00
Jeff Becker
159415c363
delay dns resolution for snode until we have a session with it 2019-03-01 14:10:42 -05:00
Michael
048fa83c39
Finish replacement of Router with AbstractRouter 2019-02-14 22:31:31 +00:00
Jeff Becker
46222df421
refactor 2019-02-11 12:14:43 -05:00
Jeff Becker
e1522faeaa
add introspection rpc endpoint 2019-02-08 14:43:25 -05:00
Jeff Becker
f84256d554
* lower lookup timeout for introsets
* correct previous commit for dns stuff
* allow for multiple parallel introset lookups
2019-02-06 10:05:25 -05:00
Jeff Becker
b40055181d
lower path build timeout to 15s
tweak various dns stuff
2019-02-06 08:02:17 -05:00
Jeff Becker
5743ca7fba
revert dns behavior 2019-02-05 16:04:30 -05:00
Jeff Becker
2c2b31f4b9
make it compile 2019-02-05 09:23:51 -05:00
Jeff Becker
25fa4817ba
hook mx records for all hooked domains 2019-02-05 09:22:02 -05:00
Jeff Becker
41c993a237
disable A records for random.snode, use CNAME queries instead. 2019-02-05 09:08:17 -05:00
Jeff Becker
8c77c53675
reply with cname 2019-02-05 09:03:38 -05:00
Ryan Tharp
2bba8f01e8 don't return unknown IPs 2019-02-04 19:54:44 -08:00
Ryan Tharp
54549724d0 fix random.snode 2019-02-04 19:19:06 -08:00
Michael
7212baa062
Add implicit conversion from ManagedBuffer to llarp_buffer_t 2019-02-03 01:44:09 +00:00
Michael
7ca3e13e78
Rename to ManagedBuffer 2019-02-03 00:48:10 +00:00
Michael
f3b0af9d2f
Create CopyableBuffer type 2019-02-02 23:21:35 +00:00
Michael
2de621b0ad
Disable copy constructing llarp_buffer_t 2019-02-01 01:58:13 +00:00
Ryan Tharp
175fdbc89c
Merge pull request #250 from majestrate/add-localhost-loki
add initial localhost.loki handling in dns
2019-01-29 13:57:56 -08:00
Ryan Tharp
9b6008db1d downgrade DNS server failure to a warning 2019-01-29 03:17:21 -08:00
Jeff Becker
9e50e2d34a
try fixing AAAA record handling, return NOERROR with no records. 2019-01-28 11:16:17 -05:00
Jeff Becker
7489ab1380
only hook cname for random.snode 2019-01-28 10:46:49 -05:00
Jeff Becker
f1cf63fce7
add initial localhost.loki handling in dns 2019-01-28 10:26:35 -05:00
Rick V
b961f80256
don't leak unused packets
bad merge
2019-01-22 18:21:38 -06:00
Rick V
6913c01524
wtf why didn't this get rebased 2019-01-22 18:17:04 -06:00
Rick V
fab9374779
make less noise in public test releases 2019-01-22 18:17:00 -06:00
Ryan Tharp
2e4ad12a87 Merge branch 'staging' of https://github.com/loki-project/loki-network 2019-01-17 21:14:01 +00:00
Jeff Becker
015e68df68
Merge branch 'staging' of ssh://github.com/loki-project/loki-network into staging 2019-01-17 08:56:33 -05:00
Ryan Tharp
1ba5b75082 Merge branch 'master' of https://github.com/neuroscr/loki-network 2019-01-16 21:25:37 +00:00
Ryan Tharp
c4241ae4ad note about name(), change verbiage to make more sense, be more verbose about failures 2019-01-16 13:08:00 -08:00
Michael
da6cdfc0b2
More refactoring to continue to make dependency graph acylic 2019-01-15 23:15:44 +00:00
Jeff Becker
ef394cd2fb
Merge branch 'staging' of ssh://github.com/loki-project/loki-network into staging 2019-01-11 08:21:17 -05:00
Michael
081d4dfa32
Reorganise source into more folders 2019-01-11 01:19:49 +00:00
Jeff Becker
c1e4e715bb
try fixing dns issue with random.snode 2019-01-10 10:49:08 -05:00
Michael
df4fd0ef56
Fix some low hanging performance issues 2019-01-07 22:15:41 +00:00
Michael
516466f5be
Mark more AlignedBuffer constructors as explicit 2019-01-02 01:04:08 +00:00
Michael
ea19093a20
Remove const byte* conversion operators from llarp::AlignedBuffer 2019-01-02 01:04:04 +00:00
Michael
1410d0a0cf
Remove byte* conversion operators from llarp::AlignedBuffer 2019-01-02 01:04:03 +00:00
Michael
58364a01c8
Remove array conversion operators from llarp::AlignedBuffer 2019-01-02 01:04:01 +00:00
Michael
334161c9bb
Remove data() conversions from llarp::AlignedBuffer 2019-01-02 01:03:53 +00:00
Jeff Becker
99ecefbdba
fixes issue #186 2018-12-28 10:10:05 -05:00
Jeff Becker
88d0e8883b
fix merge 2018-12-26 11:29:08 -05:00
Jeff Becker
49c898ed92
Merge remote-tracking branch 'origin/master' into staging 2018-12-26 11:27:11 -05:00
Jeff
b088c7eba5 Merge branch 'gh-master' 2018-12-24 16:15:22 -05:00
Jeff Becker
21d1998a38
add graceful stop for path builders and friends 2018-12-24 11:10:56 -05:00
Jeff Becker
e835c5f69a
add graceful stop for path builders and friends 2018-12-24 11:09:05 -05:00
Jeff
4b2a1ea9f3 make format and attempt to fix #158 2018-12-23 08:29:11 -05:00
Rick
d529b3f446
at least don't try to break anything
(the previous implementation aligned to uint64_t, the new one probably should do so as well)
2018-12-22 12:58:41 -06:00
Rick
8d147252b8
restore logging 2018-12-22 12:58:16 -06:00
despair
b3e8099838
bug fixes 2018-12-22 12:58:13 -06:00
Jeff Becker
8c8172aeb1
Merge remote-tracking branch 'origin/master' into dev 2018-12-20 12:56:08 -05:00
Michael
037cb87523
Convert llarp::AlignedBuffer to be backed by std::array 2018-12-20 16:16:18 +00:00
Jeff Becker
01f2524145
flush ip packets such that they are sent same event loop tick 2018-12-20 08:04:00 -05:00
Jeff Becker
8e6046ff1c
order downstream packets 2018-12-20 07:41:39 -05:00
Jeff Becker
46bee291c2
order downstream packets 2018-12-20 07:41:17 -05:00
Jeff Becker
c5d4e37f59
make format 2018-12-17 15:47:08 -05:00
Jeff Becker
c454b5264c
Merge branch 'master' into dev 2018-12-17 08:25:27 -05:00
Ryan Tharp
db6945b6a0 fix debug spacing issue 2018-12-17 04:33:30 +00:00
Jeff Becker
b4d523a146
remove pedantic logging 2018-12-15 12:44:58 -05:00
Jeff Becker
64b2b9de08
eh 2018-12-15 12:41:38 -05:00
Jeff Becker
0f432456be
more 2018-12-15 12:39:15 -05:00
Jeff Becker
6df0f32093
log bad packets 2018-12-15 12:12:36 -05:00
Jeff Becker
98981c82cd
move packet flushing about 2018-12-15 11:56:35 -05:00
Jeff Becker
7ca82918b4
try setting tick 2018-12-15 11:43:17 -05:00
Jeff Becker
03cf865e45
don't use async job for flushing queue 2018-12-15 11:21:04 -05:00
Jeff Becker
be234e4b6e
* make format
* snode to snode direct traffic

* wire up dns on service node tun
2018-12-13 11:14:44 -05:00
Jeff Becker
bb0cd81f02
random.snode 2018-12-12 19:03:19 -05:00
Jeff Becker
cb685aaaab
remove unneeded logging 2018-12-12 15:39:31 -05:00
Jeff Becker
09e01adf32
flush snode traffic queues 2018-12-12 13:37:03 -05:00
Michael
7a52638add
Move handlers* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
f0fce5b68a
Convert llarp_router to be a true C++ class 2018-12-10 20:15:35 +00:00
Jeff Becker
fad734a5ce
strict types for pubkey, secretkey and routerid 2018-12-10 12:22:59 -05:00
Jeff Becker
eed62b2d7f
ensure exit router is known 2018-12-10 10:44:18 -05:00
Jeff Becker
a1887dd884
ensure exit router is known 2018-12-10 10:39:22 -05:00
Michael
30e9dca2e5
Convert llarp_logic to be a C++ class 2018-12-10 14:15:11 +00:00
Jeff
24886ad180
Merge pull request #115 from majestrate/dev
fix issue #114
2018-12-10 07:32:52 -05:00
Jeff Becker
f6dbeb363c
filter bogon ranges to exit 2018-12-10 07:27:17 -05:00
Jeff
0c8f9edfb6 always hook mx 2018-12-07 18:36:53 -05:00
Jeff
617617bb4f send reply if we have an address mapped 2018-12-07 17:46:30 -05:00
Jeff
88c3dd7c7a send reply 2018-12-07 17:08:23 -05:00
Jeff
3eb78b6118 add mx record for .loki 2018-12-07 16:52:19 -05:00
Jeff
9a9538bf30 send dns reply if we have a path already 2018-12-07 15:56:01 -05:00
Jeff Becker
f63045d5a4
Merge remote-tracking branch 'origin/master' into dev 2018-12-05 09:41:35 -05:00
Jeff Becker
0f7053f77b
cut logging 2018-12-04 11:22:28 -05:00
Jeff Becker
40678f9019
add dnslib unit test coverage 2018-12-04 11:16:43 -05:00
Jeff Becker
1d1bde2e88
add dnslib 2018-12-03 17:22:59 -05:00
despair
d26141d433 Merge branch 'dev' into reeeee-divergence
ok hope this works -rick

# Conflicts:
#	.gitignore
#	.vscode/settings.json
#	include/llarp/service/context.hpp
#	llarp/dns.cpp
#	llarp/dnsc.cpp
#	llarp/ev.cpp
#	llarp/ev.hpp
#	llarp/ev_win32.hpp
#	llarp/net.cpp
#	llarp/router.cpp
#	llarp/router.hpp
#	llarp/service/context.cpp
2018-12-03 12:24:56 -06:00
Jeff Becker
baa94ec345
make windows build happy 2018-12-03 09:39:30 -05:00
Jeff Becker
622ed8d12e
fix crash on premature close of event loop (also make format) 2018-12-02 13:07:07 -05:00
Jeff Becker
7bc3d94895
try fixing rdns for local interace's address 2018-11-30 09:14:30 -05:00
Jeff Becker
68faa14e3e
map local address for tun endpoint 2018-11-30 08:56:28 -05:00
Jeff Becker
11372c9544
Merge branch 'dev' into snode-endpoint 2018-11-29 09:34:19 -05:00
Jeff Becker
85f9f46362
snode stubs (initial) 2018-11-29 08:12:35 -05:00
Jeff Becker
b9b7d3d1c7
better exit pad size 2018-11-28 13:18:08 -05:00
Jeff Becker
e6037ff060
pack exit traffic 2018-11-28 11:38:20 -05:00
Jeff Becker
e3e337b96f
Merge branch 'master' into dev 2018-11-26 17:53:42 -05:00
Jeff Becker
7e4d74cbfc
add initial jni stuff for lokinet android. i fucking hate android so god damn much. 2018-11-26 17:46:22 -05:00
despair
65ff1ba991 reading from TUN using native async io:
writing: 
2018-11-26 11:10:18 -06:00
Jeff Becker
25fac844eb
make format 2018-11-26 08:30:03 -05:00
Jeff Becker
a81b88cc93
Merge remote-tracking branch 'origin/master' into dev 2018-11-25 11:59:47 -05:00
Jeff
a33f334bc2 better exit path logic 2018-11-25 11:58:27 -05:00
Jeff Becker
c1e494c2c4
have llarp_ev_* use llarp_buffer_t 2018-11-23 09:37:26 -05:00
Jeff Becker
3718a7d016
Merge remote-tracking branch 'github/master' into dev 2018-11-19 07:01:42 -05:00
Jeff
23c8807d59
Merge pull request #54 from neuroscr/master
DNS QoL improvements
2018-11-18 15:13:25 -05:00
Ryan Tharp
f03c41a99f Deprecate DNS_PORT as configureable in INI now. Reduce confusion as it would change DNSc port too and I believe it was meant only to change DNSd port. 2018-11-18 09:41:09 -08:00
Jeff Becker
658210b9d1
fix up exit tun, fix up codel to actually do its job 2018-11-15 08:13:19 -05:00
Jeff Becker
b462090e9c
more 2018-11-14 16:47:58 -05:00
Jeff Becker
fa1333b13b
meh 2018-11-14 16:40:44 -05:00
Jeff Becker
b11bddad02
fixes 2018-11-14 16:31:21 -05:00
Jeff Becker
d24bc70a7e
try fix 2018-11-14 15:56:54 -05:00
Jeff Becker
fd4b452cdd
fix 2018-11-14 15:54:13 -05:00
Jeff Becker
56676002aa
wire up exit traffic 2018-11-14 14:34:17 -05:00
Jeff Becker
f40e4c0c84
more exit stuff 2018-11-14 07:23:08 -05:00
Jeff Becker
09945dce62
initial exit/service node comm code with some unit tests (incomplete) 2018-11-12 11:43:40 -05:00