Commit Graph

420 Commits (36193564065f0a6c199e79438b8783de7bfd9f96)

Author SHA1 Message Date
Jason Rhinelander 1b710455a7 Disallow AlignedBuffer < 8 bytes; add oddball buffer sizes 5 years ago
Jason Rhinelander d57d6bfc6d Use memcpy to extract hash value
Using the straight reinterpret_cast runs into type aliasing issues,
which manifest on armhf.  C++20 adds `std::bit_cast` to deal with
exactly this, but memcpy is the pre-C++20 way to do it properly.
5 years ago
Jeff Becker 16c7e7dd33 fix unit tests 5 years ago
Thomas Winget f4c9e09d44 remove obsolete timer-related code 5 years ago
Thomas Winget 71bb0dd520 implement timers using libuv
So far only a bit of the code using timers has been modified to use
the new libuv-based timers.  Also only the non-Windows case has been
implemented.  Seems to be working though, so it's a good time to commit.
5 years ago
Rick V a08d2ff64e
microsoft libc a shit 5 years ago
Rick V caa6549cbb
clang-format everything 5 years ago
Rick V 64710ca4d4
Explicitly align to 16 bytes on Win32 targets 5 years ago
Jeff Becker 896dd85a2b
allow multiple calls to FeedData 5 years ago
Jeff Becker 53b159e361
dont fail on 0 sized data fed to json parser 5 years ago
Stephen Shelton a4aef312ae make format (or format-verify, at least) 5 years ago
Jason Rhinelander d4a5dc66ac Change alignment to std::max_align_t
This will typically be stricter alignment (16 byte on amd64) which seems
useful for the intended use case here.
5 years ago
Jason Rhinelander 460d64fc0f Simplify AlignedBuffer alignment implementation
This simplifies the use of std::aligned_storage with just using an
`alignas` on AlignedBuffer itself so that the (only) data member gets
the proper alignment and saves a bunch of reinterpret_casts in favour of
just having the std::array as an ordinary member.
5 years ago
Stephen Shelton e2e9e63467 Optimize AlignedBuffer:::IsZero() 5 years ago
Jeff Becker 8455d5d1cf more cleanup 5 years ago
Jeff Becker b286230d40 limit timer calls 5 years ago
Jeff Becker 35672e6d8c call timers with queuer if set 5 years ago
Jeff Becker cec36b62b5 make logic and net thread one in the same 5 years ago
Jeff Becker c9d38d421b clang fixes 5 years ago
Jeff fa75d7c96f
Merge pull request #957 from majestrate/reduce-cpu-use-in-tun-handler-2019-12-09
reduce cpu use in logic thread
5 years ago
Jeff Becker a7884a82e2
use faster hashing 5 years ago
Jeff Becker 950006c036
reduce log levels at runtime 5 years ago
Jeff 512a350783
Merge pull request #953 from majestrate/try-preventing-router-lockup-2019-12-07
try fixing router lockup
5 years ago
Jeff Becker c010bf05a6
use correct format string 5 years ago
Jeff Becker f56e543d75
add deadlock checker and revert bencode change from long ago 5 years ago
Jeff Becker c5f198cfa1
disable absl decorator in release 5 years ago
Jeff Becker 2eabe98d9b
add systemd watchdog if enabled on compile time 5 years ago
Jeff Becker 8ceb20452a
add absl annotations 5 years ago
Jeff Becker fe6783eef6
squash possible race condition 5 years ago
Jason Rhinelander 8d2c22fc72 Replace cppbackport with ghc-filesystem
From https://github.com/gulrak/filesystem which is more up-to-date and
looks better maintained than cppbackport.
5 years ago
Jeff 1396b7b857
Merge branch 'dev' into bootstrap-list-2019-12-06 5 years ago
Jeff Becker 0afb3b320b
add bootstrap list functionality and utility 5 years ago
Stephen Shelton 66a058a2af Make format 5 years ago
Jeff 27b1e36039
Merge pull request #936 from majestrate/dev
last changes before 0.6.0 version bump
5 years ago
Stephen Shelton 93b8832026
Merge branch 'dev' into private-keys-backup-support 5 years ago
Jeff 76fc50cfb7
Merge pull request #914 from despair86/dev
win32 fixes
5 years ago
Jeff Becker 7d5fd132c8
make format 5 years ago
Rick V 44e8d07d47
fix error msg 5 years ago
Rick V cf3469e11a
crash on wine, we support linux, ucb_unix, svr4
natively ffs. i tested this patch on wine 4.4 on fuckin
Solaris 11 snv_151
5 years ago
Jeff Becker 3c85691f81 limit calls to pumpll such that it gets called fast enough but not too much under load 5 years ago
Jason Rhinelander 740460318a Die if job queue full
If this happens it's a pretty serious error; if someone is hitting it
occassionally it's better to know and update their queue size (and if it
is a runaway situation lokinet doesn't come back anyway).
5 years ago
Jeff Becker fba1e47d1c call jobs in logic 5 years ago
Thomas Winget 6d506302dc Show number of logic thread jobs in debug builds 5 years ago
Jeff Becker a3a62c34f3 use timer guard for all jobs in debug mode 5 years ago
Jeff Becker af663d8b10 prune members in timer context 5 years ago
Jeff Becker 11d4760c3d add metrics tracking for logic jobs in debug mode 5 years ago
Jeff Becker dd48b149ca
make job queue size configurable 5 years ago
Jeff Becker 853108ce6e
make logic job queue 8 times bigger 5 years ago
Jeff Becker d44d034775
make contention checker templated 5 years ago
Jeff Becker 1fa0a0aab2
make it compile 5 years ago
Jeff Becker fdbaaa8188
try fixing file log segfault 5 years ago
Jeff Becker 1188763ece
typo fix in release 5 years ago
Jeff Becker 56dce90de9
add trace log level for tracking logic thread jobs 5 years ago
Jeff Becker eb6d042e73
make sure all calls of logic thread jobs are not having contention 5 years ago
Jeff Becker d7f09a365d
contention killer 5 years ago
Stephen Shelton db56e17c23 Rename bencode function for clarity 5 years ago
Stephen Shelton 1666498405 Replace bencode_write_version_entry with a more general-purpose function for writing bencoded dictionary entries 5 years ago
Jason Rhinelander e0340e86b2 clang-format fixes 5 years ago
Jason Rhinelander d96d33329b
Merge pull request #912 from majestrate/logic-thread-fix-2019-11-13
fix logic thread behavior
5 years ago
Jason Rhinelander 6524563d33
Merge pull request #897 from majestrate/bencode-seek-for-version-2019-11-03
seek for version and set it before deserializing
5 years ago
Stephen Shelton 9eed243346
Merge pull request #860 from notlesh/null_mutex_clarity
Null mutex clarity (via comments / log statement)
5 years ago
Stephen Shelton 46fe64c2e6 make format (and git commit --amend to re-trigger CI) 5 years ago
Jeff Becker 168d25f244
add warning when trying to queue onto full logic thread 5 years ago
Jeff Becker f16c9f9b5d
iot seems that logic thread didn't work the way i remember it should
make logic work the way it should
5 years ago
Jeff Becker 3c8e148372
prevent double free crap with shared_ptr 5 years ago
Jeff Becker b589ea96ff
remove printf 5 years ago
Jeff Becker 7ee026fa50
make path builds work again 5 years ago
Jeff Becker bdb0b847f8
seek for version and set it before deserializing 5 years ago
Stephen Shelton a3c48e22f3
Even more clarity to NullMutex comments 5 years ago
Stephen Shelton 36ef0954ec Add comments to NullMutex implementation to express intent 5 years ago
jeff 7d949ebf5d always use absl for string_view 5 years ago
jeff 605da68e15 use absl optional 5 years ago
jeff 3c1d5518d8 fix windows port and make it compile 5 years ago
jeff da9437d0cf don't need that 5 years ago
jeff 32ed821763 Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography 5 years ago
Michael 5f0bb6fbd1
Try to fix windows build 5 years ago
Michael ae3fc3a395
Add initial macOS app 5 years ago
Jeff Becker 327c545530
finish multithread cryptography first pass 5 years ago
jeff 14c9ef15ed try calling stuff in logic thread from event loop 5 years ago
jeff ac2a2aed1d gut libutp and finish making things compile and pass tests 5 years ago
Jeff Becker e3bb59707e
more 5 years ago
Michael 19473a291a
Abort when a null mutex is locked from a different thread (in debug mode only) 5 years ago
Jeff Becker ab64c0d013
Merge remote-tracking branch 'micheal/abort_mutex' 5 years ago
Jeff Becker 1adae338ce
Merge remote-tracking branch 'origin/master' 5 years ago
Michael 23d76e3600
Abort when a null mutex is locked from a different thread (in debug mode only) 5 years ago
Michael edd0ec398f
Move thread stuff to subdirectory 5 years ago
Michael 0950571313
Move metrics to subdirectory 5 years ago
Michael 4d8fe2a8a8
Move meta programming to subdirectory 5 years ago
Michael 1aec0dfa2b
Move logging to subdirectory 5 years ago
Jeff Becker c01112e4b7
tracy lock contention testing and other fun things 5 years ago
Rick V 55612bc032
ok use clang-format v8 5 years ago
Rick V 2000826a35
override print 5 years ago
Rick V 50d4b4b40c
fix log colours on old win32 platforms 5 years ago
Michael 094b697b01
Replace StatusObject with underlying JSON type 5 years ago
Michael 16cdfbd5f0
clang-tidy modernize pass 5 years ago
Michael d1990b5e93
Fix suspicious thread-unsafety 5 years ago
Jeff 10d7e7cb77
Merge branch 'master' into master 5 years ago
Michael f9e9227e19
Fix gcc trunk warnings 5 years ago
Rick V 8cf5f2c9a5 fix thread naming on windows 5 years ago
Rick V f6c97091fd
clang-format 5 years ago
Rick V 609a9a1c31
fix netbsd 5 years ago
Rick V a0a14b97a0
really fix #689 this time 5 years ago
Rick V 3782479276
fix sun 5 years ago
Michael a062186f2d
or not 5 years ago
Michael ee2dd0fb68
Use __cpp_lib_filesystem 5 years ago
Michael 3c2f7792c2
Fixup 5 years ago
Michael 614b669fd5
Abandon debian 5 years ago
Michael df498c7bf8
try to make some windows 5 years ago
Jeff Becker b0406e1a76
on logic queue overflow put job on timer instead 5 years ago
Thomas Winget 38fd0552d3 Adds Link-Relay Status Messages
Success case:
  - the path endpoint creates and sends a LR_StatusMessage upon
    successful path creation

Failure case:
  - an intermediate hop creates and sends a LR_StatusMessage upon
    failure to forward the path to the next hop for any reason

Both cases:
  - transit hops receive LR_StatusMessages and add a frame
    to them reflecting their "status" with respect to that path
  - the path creator receives LR_StatusMessages and decrypts/parses
    the LR_StatusRecord frames from the path hops.  If all is good,
    the Path does as it would when receiving a PathConfirmMessage.
    If not, the Path marks the new path as failed.

LR_StatusMessage is now used/sent in place of PathConfirmMessage
5 years ago
Jeff 183ec25717
Merge pull request #729 from majestrate/fix-android-2019-07-24
make android compile again
5 years ago
Thomas Winget baf8019fe5 Refactor Router code into more classes
This commit refactors functionality from the Router class into separate,
dedicated classes.
There are a few behavior changes that came as a result of discussion on
what the correct behavior should be.
In addition, many things Router was previously doing can now be provided
callback functions to alert the calling point when the asynchronous
action completes, successfully or otherwise.
5 years ago
Jeff Becker 43cb62af16
fix android compile, have makefile pull in libuv for cmake on android 5 years ago
Jeff Becker 909e0399d6
make android compile 5 years ago
Michael 53bccc4f23
try to ensure on windows, but don't fail 5 years ago
Michael 9b40c0eb67
Fixup some tests 5 years ago
Michael 4806e52f62
Try to silence some warnings to reduce noise 5 years ago
Michael 5c064d7ddc
Silence spammy threadpool warning 5 years ago
Michael 302c0ff18c
fixup printer.cpp 5 years ago
Michael 533d12e52e
more fs.cpp 5 years ago
Michael 3b17e65b0b
Fix more headers for fs.cpp 5 years ago
Michael 4b3920006e
fix str.cpp 5 years ago
Michael 0326f2ea56
fix fs.cpp 5 years ago
Michael ac8624698d
Fix some string_view problems 5 years ago
Michael 36c89363b3
try to fix pid_t issue 5 years ago
Michael 0cbd7b3116
Fixup fs 5 years ago
Michael 5cef2865bd
Fix Ubuntu builds 5 years ago
Jeff Becker dc87b6dc6b
use correct uint128 functions when doing endian flipping 5 years ago
Jeff Becker 1fd6b5ae74
Merge remote-tracking branch 'origin/master' into ipv6-tun 5 years ago
Jeff 1a145ea515
Merge pull request #697 from majestrate/fix-freebsd-pthread
typo fix
5 years ago
Jeff Becker 8c67f14838
typo fix lel 5 years ago
Jeff a768a9ad59
Merge pull request #695 from majestrate/fix-freebsd-pthread
fix freebsd build for real
5 years ago
Jeff Becker ebab9b8905
fix freebsd build for real 5 years ago
Jeff 8e6c830641
Merge pull request #691 from majestrate/fix-freebsd-pthread
fix freebsd build
5 years ago
Jeff Becker b207990d01
use elseif 5 years ago
Jeff Becker 4206132ea1
use correct function from free bsd pthread 5 years ago
Jeff Becker e0d8e34369
fix freebsd build 5 years ago
Michael 488695047f
Remove redundant else blocks 5 years ago
Jeff Becker 8ac9ef6f18
Merge remote-tracking branch 'origin/master' into ipv6-tun 5 years ago
Jeff Becker b9bcc2b775
make threadpool consice 5 years ago
Michael b01e5accbb
Add function to set threadname, and use from threadpool impl 5 years ago
Jeff Becker 58005c5f81
Merge remote-tracking branch 'origin/master' into ipv6-tun 5 years ago
Michael a2326efa37
Revert "Merge pull request #679 from tewinget/revert-config-refactor"
This reverts commit 2996a7f29c, reversing
changes made to 10df3bd4b3.
5 years ago
Jeff Becker ec1910b8ca
remove threadpool.hpp
make link layer not use null lock and null mutex
5 years ago
Jeff Becker fc8f58822c
remove threadpool.hpp
make link layer not use null lock and null mutex
5 years ago
Jeff Becker 04c9c61dfb
Merge remote-tracking branch 'origin/master' into ipv6-tun 5 years ago
Thomas Winget d044d60101 Reverts #678 #677 and #669 with hashes:
10df3bd
766ece8
979f095

See those commits for further details
5 years ago
Michael 8c2d67f8f1
Fix tests 5 years ago
Michael b51f7d8015
Convert to load config in config loader 5 years ago
Michael bd78471dae
Move ini parser as well 5 years ago