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.
2019-12-19 15:55:02 -04:00
Jeff
3c9df38b88
Merge pull request #990 from tewinget/libuv-timers
...
Libuv-based timers
2019-12-19 10:37:28 -05:00
Jeff Becker
16c7e7dd33
fix unit tests
2019-12-19 10:25:52 -05:00
Thomas Winget
f4c9e09d44
remove obsolete timer-related code
2019-12-18 19:05:33 -05:00
Thomas Winget
e53e3db171
make dht context use new libuv timers
2019-12-18 13:35:18 -05:00
Thomas Winget
55b44cfc13
fix derp nested function call and derp merge error
2019-12-18 13:35:01 -05:00
Thomas Winget
50118c3127
Change ILinkLayer::ScheduleTick to use new timer
2019-12-18 13:11:25 -05:00
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.
2019-12-18 13:11:13 -05:00
Jeff Becker
0f6c5958ba
add bw stats to iwp sessions
2019-12-17 09:36:56 -05:00
Jeff Becker
0eb4efdce9
netid update
2019-12-16 18:31:26 -05:00
Rick V
ccd936feb1
the internal windows toolchain _already_ provides a default manifest
2019-12-16 11:32:50 -06:00
Rick V
a08d2ff64e
microsoft libc a shit
2019-12-16 11:32:50 -06:00
Rick V
caa6549cbb
clang-format everything
2019-12-16 11:32:49 -06:00
Rick V
64710ca4d4
Explicitly align to 16 bytes on Win32 targets
2019-12-16 11:28:48 -06:00
Rick V
9fa9209114
don't be aggressive
...
remove libcurl packaging rules. We still build it, but ship only the curl.exe
2019-12-16 11:28:47 -06:00
Rick V
d1b9b89812
add note
...
add libuv build
add its dependent libraries to the final link line
2019-12-16 11:28:46 -06:00
Rick V
6d49ffd60b
include all platform dependencies transitively
2019-12-16 11:28:46 -06:00
Rick V
e15c57c114
get ready for v0.6
...
bump version
don't ship the shared object
2019-12-16 11:28:21 -06:00
Jeff Becker
896dd85a2b
allow multiple calls to FeedData
2019-12-15 12:01:29 -05:00
Jeff Becker
53b159e361
dont fail on 0 sized data fed to json parser
2019-12-15 11:59:26 -05:00
Jeff Becker
04faee565c
Revert "stricter timeouts"
...
This reverts commit aa9de42d4e
.
2019-12-15 07:53:30 -05:00
Jeff Becker
aa9de42d4e
stricter timeouts
2019-12-15 07:52:28 -05:00
Jeff Becker
8817e7fe21
fix include
2019-12-15 07:09:19 -05:00
Jeff Becker
fcf0ae2b9e
prune unused files.
2019-12-15 07:02:17 -05:00
Jeff Becker
fc55469cfe
change interval such that FEC is less often done
2019-12-14 15:55:36 -05:00
Jeff Becker
7f6d1ebb92
fix slow start bug
2019-12-14 13:50:52 -05:00
Jeff Becker
a93e0a735b
fix typo, reduce delivery timeout
2019-12-14 13:50:36 -05:00
Jeff Becker
fcd3750a8b
increase ack window
2019-12-14 06:55:38 -05:00
Stephen Shelton
332f33b049
Remove FS_LIB conditionals
2019-12-12 12:58:46 -07:00
Stephen Shelton
8f6dd132ff
Make format (on recent version-related code)
2019-12-12 10:10:27 -07:00
Stephen Shelton
5d3cb8f405
Include error code in log output in Identity::EnsureKeys()
2019-12-12 10:09:57 -07:00
Stephen Shelton
a4aef312ae
make format (or format-verify, at least)
2019-12-12 10:09:57 -07:00
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.
2019-12-12 12:15:13 -04:00
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.
2019-12-12 12:12:45 -04:00
Jason Rhinelander
638fb25b47
Put version info into a compiled file
...
This rewrites the version info using lokid's approach of compiling it
into a .cpp file that gets generated as part of the build (*not* during
the configure stage).
Among other things, this means that changing the version no longer
invalidates ccache or cmake dependencies, and because it depends on
`.git/index` git commits will cause the version to be regenerated,
making the commit tag more reliable (currently if you rebuild without
running cmake your git commit tag doesn't update).
2019-12-11 22:40:07 -04:00
Jason Rhinelander
99d27a4886
Add missing ev_libuv (now needed everywhere)
2019-12-11 19:19:28 -04:00
Stephen Shelton
211a5f7a03
Remove typo in version changes
2019-12-11 16:17:34 -07:00
Jeff
27a5904d68
Merge pull request #963 from majestrate/consolidate-versions-2019-12-11
...
consolidate versions
2019-12-11 17:30:19 -05:00
Jeff Becker
4fdff7f233
consolidate versions
2019-12-11 17:06:44 -05:00
Jeff Becker
f259cca0ba
remove mutexes
2019-12-11 16:49:00 -05:00
Jeff Becker
85e911fed0
fug
2019-12-11 16:36:13 -05:00
Jeff Becker
7a78160bf0
final change
2019-12-11 16:34:03 -05:00
Jeff Becker
5729d0bff5
more
2019-12-11 16:31:49 -05:00
Jeff Becker
c4f08e5145
finish remaining changes
2019-12-11 16:18:47 -05:00
Jeff Becker
abf9544ddc
make libuv on win32 work
2019-12-11 16:05:40 -05:00
Stephen Shelton
e2e9e63467
Optimize AlignedBuffer:::IsZero()
2019-12-10 11:50:52 -07:00
Jeff Becker
95eee4081a
trypushback
2019-12-10 11:49:32 -07:00
Jeff Becker
cdfdfa1068
use thread queue
2019-12-10 11:49:32 -07:00
Jeff Becker
8455d5d1cf
more cleanup
2019-12-10 11:49:32 -07:00
Jeff Becker
b286230d40
limit timer calls
2019-12-10 11:49:32 -07:00
Jeff Becker
35672e6d8c
call timers with queuer if set
2019-12-10 11:49:32 -07:00
Jeff Becker
cec36b62b5
make logic and net thread one in the same
2019-12-10 11:49:32 -07:00
Jeff Becker
581306e35f
prevent crash on exit
2019-12-10 11:49:32 -07:00
Jeff Becker
c9d38d421b
clang fixes
2019-12-10 11:49:32 -07:00
Jeff Becker
1ddc2b40aa
another attempt at travis fix
2019-12-10 11:49:32 -07:00
Jeff Becker
f29083f765
more travis fixes
2019-12-10 11:49:32 -07:00
Jeff Becker
4f87a95f66
fixes for travis
2019-12-10 11:49:32 -07:00
Jeff
22e9223e74
Merge pull request #955 from jagerman/remove-unused-arg
...
Remove unused argument
2019-12-10 07:51:48 -05:00
Jeff
fa75d7c96f
Merge pull request #957 from majestrate/reduce-cpu-use-in-tun-handler-2019-12-09
...
reduce cpu use in logic thread
2019-12-09 17:35:27 -05:00
Jeff Becker
a7884a82e2
use faster hashing
2019-12-09 17:35:05 -05:00
Jeff Becker
92bbda600b
remove callsto Router::PumpLL and stuff gets faster (or stuff)
2019-12-09 16:59:13 -05:00
Jason Rhinelander
6f92ac9c2b
Remove unused argument
...
Fixed a compiler warning about an unused argument, plus the argument
legitimately appears unused/obsolete now.
2019-12-09 11:17:02 -04:00
Jeff Becker
e90cb2929e
disable metrics by default
2019-12-09 08:13:38 -05:00
Jeff Becker
950006c036
reduce log levels at runtime
2019-12-09 08:08:30 -05:00
Jeff
512a350783
Merge pull request #953 from majestrate/try-preventing-router-lockup-2019-12-07
...
try fixing router lockup
2019-12-09 07:38:17 -05:00
Jeff Becker
c010bf05a6
use correct format string
2019-12-07 15:05:07 -05:00
Jeff Becker
f56e543d75
add deadlock checker and revert bencode change from long ago
2019-12-07 14:58:19 -05:00
Jeff Becker
c5f198cfa1
disable absl decorator in release
2019-12-07 14:22:10 -05:00
Jeff Becker
2eabe98d9b
add systemd watchdog if enabled on compile time
2019-12-07 14:21:26 -05:00
Jeff Becker
8ceb20452a
add absl annotations
2019-12-07 07:28:43 -05:00
Jeff Becker
fe6783eef6
squash possible race condition
2019-12-07 07:19:26 -05:00
Jeff Becker
eb87189514
try fixing router lockup
2019-12-07 07:08:00 -05:00
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.
2019-12-06 20:41:22 -04:00
Jeff
9c7355ff9c
Merge pull request #951 from majestrate/fix-ip-rewrite-on-snode-2019-12-06
...
use ipv6 only with ipv6 packets
2019-12-06 15:35:31 -05:00
Jeff
1396b7b857
Merge branch 'dev' into bootstrap-list-2019-12-06
2019-12-06 15:34:38 -05:00
Jeff Becker
7c0fc69ad8
use ipv6 only with ipv6 packets
2019-12-06 15:33:43 -05:00
Stephen Shelton
68a604070b
Merge pull request #945 from notlesh/key_manager_cleanup
...
Key manager cleanup (post 0.6-rc1)
2019-12-06 12:54:40 -07:00
Stephen Shelton
2c6226f54a
Backup SNApp keys when migrating to new ed25519 crypto
2019-12-06 11:21:14 -07:00
Jeff Becker
0afb3b320b
add bootstrap list functionality and utility
2019-12-06 12:32:46 -05:00
Stephen Shelton
11410a2748
Avoid trivial getters/setters in KeyManager
2019-12-06 10:31:19 -07:00
Stephen Shelton
66a058a2af
Make format
2019-12-06 10:13:09 -07:00
Jeff Becker
32da9e0817
reduce window
2019-12-05 14:58:24 -05:00
Jeff Becker
9be4092a2a
more close changes
2019-12-05 11:31:58 -05:00
Jeff Becker
3410f25fd0
close links lazy
2019-12-05 11:12:26 -05:00
Jeff Becker
87eab87b7f
only close outbound links
2019-12-05 11:05:10 -05:00
Jeff Becker
98d7116ffb
fix typo
2019-12-05 10:11:20 -05:00
Jeff Becker
39ab82ed8c
close sessions to non essential nodes
2019-12-05 09:54:44 -05:00
Stephen Shelton
eb5184ee09
Reinstate link test / update to use KeyManager
2019-12-04 13:13:41 -07:00
Jeff Becker
0c5c1aab1b
remove unneeded log statement
2019-12-04 08:06:16 -05:00
Stephen Shelton
23fc2ad042
Init key manager before InitOutboundLinks are configured
2019-12-03 16:55:16 -07:00
Jason Rhinelander
fd02662d9f
Bump default netid to gamma for 0.6
2019-12-03 16:24:13 -05:00
Jeff Becker
847ab3a47e
make it compile
2019-12-03 16:09:22 -05:00
Jeff
3f19b14c4f
Merge pull request #938 from majestrate/version-motto-bump-for-0.6.0-2019-12-03
...
bump version and motto
2019-12-03 16:00:22 -05:00
Jeff
27b1e36039
Merge pull request #936 from majestrate/dev
...
last changes before 0.6.0 version bump
2019-12-03 15:58:22 -05:00
Stephen Shelton
af2259db5f
Move lokid key API request to KeyManager
2019-12-03 12:32:19 -07:00
Stephen Shelton
49e248bfc1
Fix bad merge
2019-12-03 12:24:57 -07:00
Jeff Becker
91627931ad
bump version and motto
2019-12-03 13:33:43 -05:00
Stephen Shelton
93b8832026
Merge branch 'dev' into private-keys-backup-support
2019-12-03 11:20:45 -07:00
Jeff
76fc50cfb7
Merge pull request #914 from despair86/dev
...
win32 fixes
2019-12-03 13:08:55 -05:00
Stephen Shelton
521ef9b5bb
Handle link transport key in KeyManager
2019-12-03 10:58:53 -07:00
Jeff Becker
7d5fd132c8
make format
2019-12-03 12:55:24 -05:00
Jeff Becker
86a4ccd98f
unconditionally bundle first fragment in xmit
2019-12-03 12:54:32 -05:00
Jeff Becker
1f83fdb190
fix previous commit
2019-12-03 12:54:23 -05:00
Jeff Becker
19835ce501
dont use auto
2019-12-03 12:53:20 -05:00
Jeff Becker
1a6a66108d
make it compile
2019-12-03 12:53:11 -05:00
Jeff Becker
c88602ee16
break the world to make it faster
2019-12-03 12:53:01 -05:00
Jeff Becker
01b24c7090
limit connections
2019-12-03 12:49:29 -05:00
Jeff Becker
0f4c531d06
fix path resource leak
2019-12-03 12:49:15 -05:00
Jeff
b08897a214
Merge pull request #935 from jagerman/logic-thread-fixes
...
Logic thread fixes
2019-12-03 12:47:42 -05:00
Jeff
67b08e0e50
Merge pull request #933 from majestrate/loki-ping-call-2019-11-27
...
Loki ping call 2019 11 27
2019-12-03 12:45:40 -05:00
Jeff
8288bf3958
Merge pull request #931 from majestrate/rpc-fetch-privkey-2019-11-26
...
use curl to fetch from lokid rpc the identity key
2019-12-03 12:45:18 -05:00
Rick V
da8ee47370
tick more often
2019-12-03 11:18:07 -06:00
Rick V
44e8d07d47
fix error msg
2019-12-01 19:01:58 -06:00
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
2019-12-01 19:01:40 -06:00
Jeff Becker
3c85691f81
limit calls to pumpll such that it gets called fast enough but not too much under load
2019-11-29 19:11:14 -04: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
Jason Rhinelander
5d8f547d33
Set tun to non-blocking
...
If we can't write to it we want failure, not blocking.
2019-11-29 19:11:14 -04:00
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).
2019-11-29 19:11:14 -04:00
Jeff Becker
28a2d471d6
style nitch
2019-11-29 19:11:14 -04:00
Jeff Becker
44e0e2c034
dont flood the logic queue
2019-11-29 19:11:14 -04:00
Jeff Becker
fba1e47d1c
call jobs in logic
2019-11-29 19:11:14 -04:00
Jeff Becker
f5ede2d875
ammend previous commit
2019-11-29 19:11:14 -04:00
Jeff Becker
3489753d5a
remove jenky call to logic thread in link server
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
Jeff Becker
8849173112
try async decrypt then verify
2019-11-29 19:11:14 -04:00
Jeff Becker
2852601a28
flush in logic
2019-11-29 19:11:14 -04:00
Jeff Becker
d823d6fa70
only flush when no other jobs are executing
2019-11-29 19:11:14 -04:00
Jeff Becker
9e305c5b30
use lockless queues to gather results of transit traffic work
2019-11-29 19:11:14 -04:00
Jeff Becker
d591394ad2
dont process empty queues
2019-11-29 19:11:14 -04:00
Jeff Becker
e2472d985d
process transit hops on flush
2019-11-29 19:11:14 -04:00
Jeff Becker
1a06da9c3d
reduce calls in link pump
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
Thomas Winget
6d506302dc
Show number of logic thread jobs in debug builds
2019-11-29 19:11:14 -04:00
Thomas Winget
6acf7bff7e
Track and log UV event loop ticks in debug builds
2019-11-29 19:11:14 -04:00
Jeff Becker
285a9a1dd5
prevent segfault
2019-11-29 19:11:14 -04:00
Jeff Becker
a3a62c34f3
use timer guard for all jobs in debug mode
2019-11-29 19:11:14 -04:00
Jeff Becker
af663d8b10
prune members in timer context
2019-11-29 19:11:14 -04:00
Jeff Becker
11d4760c3d
add metrics tracking for logic jobs in debug mode
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
Stephen Shelton
a0699ad229
Undo adding of crypto version to RouterContact, other fixes
2019-11-27 11:30:19 -07:00
Jeff Becker
d880eec1de
ping lokid rpc
2019-11-27 13:11:15 -05:00
Jeff Becker
098915bb8e
add check for identity key validity
2019-11-26 20:40:55 -05:00
Jeff Becker
5868a25fcc
clear response between tries
2019-11-26 17:13:41 -05:00
Jeff Becker
d685057754
update readme and disable curl on windows
2019-11-26 17:11:13 -05:00
Jeff Becker
d12c75ce1e
move sleep
2019-11-26 17:04:52 -05:00
Jeff Becker
61b75828f0
sleep
2019-11-26 17:03:45 -05:00
Jeff Becker
3878ebd534
use curl to fetch from lokid rpc the identity key
2019-11-26 16:58:20 -05:00
Stephen Shelton
e8e2e21fa2
Reorganize priv key file loading a bit and hook KeyManager into Router
2019-11-26 12:42:41 -07:00