Commit Graph

364 Commits

Author SHA1 Message Date
Michael
6e38e85a79
Produce hierarchy of 'libraries' inside libllarp 2019-01-15 23:15:43 +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
a3463120cc
Move net components into a distinct folder 2019-01-11 01:42:02 +00:00
Michael
081d4dfa32
Reorganise source into more folders 2019-01-11 01:19:49 +00:00
Michael
e5eda0fb8f
Move lokinet unspecific components to a util/ library 2019-01-10 20:07:24 +00:00
Jeff Becker
6e745abe6a
make it compile 2019-01-10 10:51:31 -05:00
Jeff Becker
c1e4e715bb
try fixing dns issue with random.snode 2019-01-10 10:49:08 -05:00
Ryan Tharp
c5575d6fe2 rename Crypto() to GetCrypto() to keep gcc 7.3 on linux happy 2019-01-08 23:45:43 +00: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
a1476b24e7 don't use dead sessions 2018-12-23 09:04:26 -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
b25223d1cc
Merge remote-tracking branch 'origin/master' into dev 2018-12-15 16:02:49 -05: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
Michael
4257b62e88
Add .cpp files for all .hpp files 2018-12-15 16:21:52 +00: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
85dde7b6b0
Move remaining include/llarp headers to llarp/ 2018-12-12 02:53:02 +00:00
Michael
e887b4e9c7
Move service* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
7a52638add
Move handlers* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
7be452092c
Convert llarp_crypto to be a true C++ class 2018-12-11 00:53:55 +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
79cffacafd
new exit packet buffer format 2018-11-29 16:19:20 -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
387d05282b
Merge pull request #58 from neuroscr/master
Major DNS refactor
2018-11-28 08:10:33 -05:00
Jeff Becker
75f5d748b6
Merge branch 'vanity' into dev 2018-11-28 07:33:03 -05:00
Jeff Becker
b004b9e2a1
fix up exit logic 2018-11-28 07:32:38 -05:00
Jeff Becker
e3e337b96f
Merge branch 'master' into dev 2018-11-26 17:53:42 -05:00
Jeff Becker
79040ef036
rx -> tx 2018-11-26 17:52:46 -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
Ryan Tharp
7874567611 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-26 15:54:52 +00: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
067f6c7b26 make format and make it compile with clang 2018-11-22 12:53:53 -05:00
Ryan Tharp
1c6031c677 clang-format 2018-11-21 16:39:09 -08:00
Ryan Tharp
b69ef21bb4 fix another compile problem 2018-11-21 15:37:17 -08:00
despair
436025e0ca fix utp flags leaking into the actual socket transmission
clang-format
2018-11-20 06:11:51 -06:00
despair
d1fa9ca342 is the resulting storage a proper string, or just a plain char array (no terminator)
eh
2018-11-20 02:38:18 -06: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
e3dc4dca11
mark paths as dead when they need to and revert codel changes 2018-11-17 13:40:13 -05:00
Jeff Becker
8d613c182f
nullptr check 2018-11-15 18:07:39 -05:00
Jeff Becker
b56b3ad16d
don't remove ip mapping when endpoints are removed 2018-11-15 17:10:12 -05:00
Jeff Becker
17297837d9
that's dumb af, use std::unique_ptr 2018-11-15 16:47:05 -05:00
Jeff Becker
9d551ba768
more 2018-11-15 13:10:09 -05:00
Jeff Becker
937ab151ab
idk what is going on 2018-11-15 11:19:24 -05:00
Jeff Becker
9baf6ecfd9
idklol 2018-11-15 11:15:25 -05:00
Jeff Becker
723351eb4e
friendship with std::unordered_map is now over, std::map is my new best friend 2018-11-15 11:12:05 -05:00
Jeff Becker
c7c6905e1e
explicit type 2018-11-15 11:05:31 -05:00
Jeff Becker
207e312eb0
more logging 2018-11-15 11:00:16 -05:00
Jeff Becker
01724c8529
use const iter 2018-11-15 10:54:48 -05:00
Jeff Becker
6f796d031b
use const 2018-11-15 10:53:32 -05:00
Jeff Becker
7b188d0fde
more 2018-11-15 10:46:50 -05:00
Jeff Becker
715822c20d
logging 2018-11-15 10:43:58 -05:00
Jeff Becker
60ad2c76e0
try this 2018-11-15 09:44:57 -05:00
Jeff Becker
2bfdd7798c
use emplace? 2018-11-15 09:38:31 -05:00
Jeff Becker
d44872496f
gfdi 2018-11-15 09:16:10 -05:00
Jeff Becker
cd94da7ffe
gfdi 2018-11-15 09:12:17 -05:00
Jeff Becker
b689bbbcf6
gfdi 2018-11-15 09:08:42 -05:00
Jeff Becker
489d1e645b
actually add exit :p 2018-11-15 08:58:17 -05:00
Jeff Becker
355d09e22b
random fixes 2018-11-15 08:47:46 -05: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
ca3a675ac8
more logging 2018-11-14 17:06:42 -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
5dbe41608f
more exit stuff 2018-11-14 13:02:27 -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
Jeff Becker
7b61cbb4a1
make dns port configurable, update default dns 2018-11-11 08:30:54 -05:00
Jeff Becker
fb0e6c3d9c
make dns configurable on runtime 2018-11-11 08:14:19 -05:00
Jeff Becker
960aa479e9
fixes for ancient rpi toolchain 2018-11-08 07:31:50 -05:00
Jeff Becker
7090a012f3
Merge remote-tracking branch 'micheal/wextra' into dev 2018-11-07 10:57:34 -05:00
Michael Thorpe
33bfaf7ecd
Enable -Wextra
test criteria:
- test build on macOS
- test build in debian docker container
- test build in fedora docker container
2018-11-07 15:31:13 +00:00
Michael Thorpe
a2d5d80779
Enable warnings as errors
test criteria:
- Built from clean on macOS
2018-11-06 22:48:17 +00:00
Jeff Becker
f1cca956f9
make android compile again 2018-11-06 09:06:09 -05:00
Ryan Tharp
5d90cbe895 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-03 13:43:21 +00:00
Ryan Tharp
82d8d3c04d merge 2018-11-03 06:22:07 -07:00
Ryan Tharp
67390de0c2 merge 2018-11-03 06:19:18 -07:00
cathugger
73e6141023
ip: endianess swaps aren't needed, a bit of renaming and tweaking
Also `make format`.
2018-11-02 11:00:05 -04:00
Jeff Becker
dbd2c41909
use event loop for time 2018-10-29 12:48:36 -04:00
Ryan Tharp
9205b8172c scan-build fixes 2018-10-27 15:40:12 -07:00
Jeff Becker
d3bada5564
fix windows 2018-10-19 12:54:08 -04:00
Jeff Becker
51baf43e99
fix 2018-10-19 12:47:06 -04:00
Jeff Becker
94e4a6798c
fix windows 2018-10-19 12:44:35 -04:00
Ryan Tharp
c3c2eda283 clang-format 2018-10-19 08:04:14 -07:00
Ryan Tharp
3b24b69513 TunEndpoint::ObtainAddrForIP(), identity tun range better, actually return revdns for tunmapaddrs, make in-addr.arpa matching smarter, actually send 404s, additional unit test 2018-10-19 07:53:06 -07:00
Jeff Becker
d3278946f2
ipv4 bogon checking 2018-10-15 08:02:32 -04:00
cathugger
ca01daa89a
ip: support DCCP and UDP-Lite, TCP chksum twx; tun: more filtering 2018-10-15 00:56:14 +03:00
cathugger
d0c35803a5
tun+ip: filter packets at destination, drop instead of truncating 2018-10-13 21:57:31 +03:00
cathugger
71c9965471
ip: code cleanups and compatibility improvements
do not assume that packets come with address zero-ed, older clients don't do that.
they don't modify checksum either, therefore we should be able to get correct checksum if we use deltachksum with old and new addresses.
2018-10-10 21:41:53 +00:00
cathugger
e1c7d8a696 some tweaks and fixups 2018-10-10 15:50:52 +00:00
cathugger
4971fae171 uint32_t byte ordering type safety 2018-10-10 15:16:10 +00:00
Jeff Becker
aa988a6fa4
Merge remote-tracking branch 'cathugger/master' 2018-10-10 08:10:04 -04:00
cathugger
05e6c31238 ip: some fixes and tweaks 2018-10-10 12:06:28 +00:00
Jeff Becker
32a028f6d8
Merge remote-tracking branch 'cathugger/master' 2018-10-10 07:48:44 -04:00
Jeff Becker
cbfc73515e
fix zeroing of addresses, put it in the right place 2018-10-10 07:47:30 -04:00
cathugger
0f8e0e9d58 tun: fix "fix "clear src/dst addresses and checksum before sending""
correct dst address is required for FlushSend to work, so do IP address and checksum null'ing there.
dang myself.
2018-10-10 03:28:53 +03:00
cathugger
4f7ae52cad tun: fix "clear src/dst addresses and checksum before sending"
clearing of addresses and checksum was put in wrong place, so it null'd everything before writing to tun interface.
damnit jeff.
2018-10-10 03:00:48 +03:00
cathugger
2f4b0fbda6 ip: use delta TCP checksum calculation, don't recalculate ICMP checksum 2018-10-09 20:02:49 +03:00
cathugger
4cba59f3c4 tun+ip: clarify what happens where 2018-10-09 17:09:03 +03:00
Jeff Becker
eb9150431f
make it compile 2018-10-09 08:32:02 -04:00
Jeff Becker
6d7d6f6efa
clear src/dst addresses and checksum before sending (infoleak) 2018-10-09 08:29:46 -04:00
despair86
3c13101beb clang-format 2018-10-06 12:04:52 -05:00
despair86
457d6fbaf6 rebase conflict 2018-10-06 12:04:50 -05:00
despair86
ca0d09142a Finally put together some skeletal TUN code for NT
up next: debugging the windows client code
stretch goal: prototype hosting a full masternode on Windows Server (still _highly_ experimental when it _does_ appear)
2018-10-06 12:04:48 -05:00
Ryan Tharp
6738fcaa6a
make sure iptracker is configured on start 2018-10-04 11:20:52 -04:00
Ryan Tharp
a0082e95bb change dll from tunEndpoint to router hidden service context, const some unchanging ptrs, use llarp::Addr more 2018-10-03 03:48:31 -07:00
Ryan Tharp
4b3b09736b Merge branch 'master' of https://github.com/loki-project/loki-network 2018-10-02 23:11:44 +00:00
despair86
9fdde65798 make bencode ILP32/LLP64 clean (long is 32 bits outside of unix!)
actually open new RCs in binary mode
clang-format
win32 skeleton code for tun (still working on the guts)
2018-10-01 15:08:55 -05:00
despair86
7f809eb53b fix windows build 2018-10-01 15:06:07 -05:00
Ryan Tharp
4cc482764d clang format 2018-10-01 03:00:11 -07:00
Ryan Tharp
058ed4d4ea Merge branch 'master' of https://github.com/neuroscr/loki-network 2018-10-01 09:03:31 +00:00
Jeff
e50cbf5acb Merge branch 'master' of ssh://github.com/loki-project/loki-network 2018-09-30 11:25:59 -04:00
Jeff Becker
138c222a1a
dns port configurable at compile time (make this configurable on runtime plz) 2018-09-30 08:42:28 -04:00
Ryan Tharp
79d61dedc3 use new llarp::Addr based init 2018-09-29 03:28:55 -07:00
Jeff
d6463bf8de Merge branch 'master' of ssh://github.com/loki-project/loki-network 2018-09-28 19:47:25 -04:00
Jeff
52da002488 comit 2018-09-28 19:47:18 -04:00
Jeff Becker
8a4b2e97a5
add lint target for makefile using clang tidy
run make format
2018-09-28 10:29:34 -04:00
Ryan Tharp
0ad4f43fe5 header clean up and clang-format 2018-09-24 06:09:01 -07:00
Ryan Tharp
31c89fc9f8 start of nameresolver config key, actually inform the dns tracker of tun gw ip, some pre-ipv6 work, attempting some endian fixes 2018-09-23 09:48:43 -07:00
Ryan Tharp
2b2e0007fa active DNS relay (server/client) in tun interface 2018-09-22 03:25:16 -07:00
Jeff Becker
44eeda3041
fix ip mapping for new addresses so they don't use premapped addresses 2018-09-19 10:49:42 -04:00
Jeff Becker
a71d5f84bb
reduce log level 2018-09-19 09:37:46 -04:00
Jeff Becker
ebe30e81c9
try unscrewing things up 2018-09-18 13:48:26 -04:00
Jeff Becker
0c1e22650e
try calcuating tcp checksums right
try tracking convo tags correctly
2018-09-18 07:08:47 -04:00
Jeff Becker
1471e90fb5
intro handover 2018-09-17 20:32:11 -04:00
Jeff Becker
9ee7275a02
decrypt frames correctly and set return address 2018-09-17 20:18:33 -04:00
Jeff
689668d892 fix osx build 2018-09-17 14:59:12 -04:00
Jeff Becker
9ffcf66e58
more checks less logging 2018-09-17 11:32:37 -04:00
Jeff Becker
0945275fd5
make it compile 2018-09-16 08:53:23 -04:00
Jeff Becker
9ed3da1671
correctly map addresses 2018-09-16 08:51:16 -04:00
Jeff Becker
8114f63e70
use queues 2018-09-16 08:25:17 -04:00
Jeff Becker
4f691b8974
make tun write correct number of bytes
try doing correct ip checksum and for upper layers that need it too

supported right now are icmp, tcp, and udp. more will come later
probably.
2018-09-16 08:06:19 -04:00
Jeff Becker
354df88367
more ip endpoint fixes
spam dht with lookups less
2018-09-14 09:43:42 -04:00
Jeff Becker
6986f04418
basic router profiling and fix ip rewrite 2018-09-13 12:41:53 -04:00
Jeff Becker
3d424b57a7
client side endpoint improvements 2018-09-11 12:21:43 -04:00
Jeff Becker
baf2e1fb3c
client improvements
for real do correct timestamp comparison for introsets
2018-09-11 09:21:35 -04:00
Jeff Becker
2993e834a0
fix ip stuff 2018-09-10 15:31:29 -04:00
Jeff Becker
320fbdf3bc
always traffic 2018-09-10 14:04:30 -04:00
Jeff Becker
c3a7f64344
expire introsets correctly and allow multiple tun if 2018-09-10 12:36:36 -04:00