4
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2025-07-11 09:36:29 +00:00
Commit Graph

70 Commits

Author SHA1 Message Date
47eb2fc47f Break deadlock by creating session recv queue when session is created instead of repointing at search completion, also make expired atomic 2019-04-22 11:20:35 +01:00
5dada3952c use a session worker to try to avoid mutex hell. compiles, but incomplete and doesn't work yet 2019-04-21 20:38:14 -05:00
79bcfbf175 Change some mutexes to atomics, change conns map to pointers, sort of works but seems to deadlock very easily 2019-04-21 11:50:41 +01:00
d01662c1fb Try to convert TUN/TAP to use new yggdrasil.Conn, search masks are still broken 2019-04-20 16:32:27 +01:00
f3e742a297 Squash a whole load of races (and mutex half the world) 2019-04-20 11:53:38 +01:00
e31b914e38 Improve errors and handling of expired sessions 2019-04-19 23:30:43 +01:00
aac88adbed Listen-Accept-Read-Write pattern now works, amazingly 2019-04-19 22:57:52 +01:00
27b78b925d Move mutexes around 2019-04-19 21:23:15 +01:00
e3eadba4b7 Protect session nonces with mutexes, modify sent/received bytes atomically 2019-04-19 20:10:41 +01:00
ade684beff Signal when a session is closed, other tweaks 2019-04-19 10:55:15 +01:00
b20c8b6da5 Move some things around a bit, delete session workers 2019-04-19 00:11:43 +01:00
b2f4f2e1b6 Update errors, update Write 2019-04-19 00:07:26 +01:00
160e01e84f Searches called from api.go, various other tweaks, searches now have a callback for success/failure, node ID now reported by admin socket 2019-04-18 23:38:23 +01:00
58f5cc88d0 Fix session bug, fix dummy adapter, fix mobile framework builds 2019-04-01 19:59:50 +01:00
dd05a7f2a8 Tweaks 2019-03-28 19:09:19 +00:00
0b494a8255 Refactoring: move tuntap and icmpv6 into separate package 2019-03-28 00:30:25 +00:00
304f22dc1d re-enable session workers in a way that doesn't block and drops packets before decrypting if necessary 2019-02-28 20:05:21 -06:00
042adb0516 make sure the only place traffic is ever dropped is in the switch. this currently disables the dedicated crypto workers 2019-02-23 00:07:00 -06:00
bca69df1f6 possible workaround to a deadlock 2019-01-26 14:07:18 -06:00
62d4d62a77 Update comments 2019-01-21 16:24:29 +00:00
d3f67ad017 Improve command flow 2019-01-21 16:22:49 +00:00
cdfb930703 Update switch flow separation for IPv4 2019-01-21 12:27:29 +00:00
9d5085492e Handle session firewall using central config 2019-01-16 20:38:51 +00:00
2cd373fc1e Remove unnecessary selects 2019-01-15 08:51:19 +00:00
51026d762e Make session firewall thread-safe for config updates 2019-01-14 18:24:35 +00:00
7fae1c993a Handle errors from reconfigure tasks 2018-12-30 12:04:42 +00:00
219fb96553 Support notifying components for config reload, listen for SIGHUP 2018-12-29 18:51:51 +00:00
ea4ca02681 fix code after moving address/crypto/util 2018-12-14 20:49:18 -06:00
10157483f9 Move tunDevice into router 2018-12-14 17:35:02 +00:00
4e156bd4f7 better cleanup of maps 2018-11-25 12:25:38 -06:00
5fa23b1e38 move router.recvPacket calls into the main router goroutine, to make the ckr checks threadsafe 2018-11-20 22:04:18 -06:00
fc5a5830aa Merge pull request #203 from Arceliar/chord
Chord
2018-11-14 20:13:42 +00:00
c7f2427de1 Check CKR routes when receiving packets in router 2018-11-05 22:58:58 +00:00
03a88fe304 Try using a chord-like DHT instead of a kad-like one, work in progress, but it compiles at least 2018-10-20 14:48:07 -05:00
3ed63ede1e Add AlwaysAllowOutbound to session firewall 2018-10-08 19:51:51 +01:00
3f237372c9 Only apply session firewall to pings for sessions we don't already have 2018-10-08 19:05:50 +01:00
2e2c58bfef Add session firewall (extra security for controlling traffic flow to/from a given node) 2018-10-07 17:13:41 +01:00
b4db89ea9d Avoid unnecessarily allocating coords slice if it's unchanged. 2018-07-30 13:44:46 +00:00
67b8a7a53d Ensure no memory allocations happen at hot path 2018-07-30 12:43:34 +00:00
c4e6894d6a Copy sinfo.coords for safety 2018-07-30 13:34:32 +01:00
ebb4ec7c33 Clean up the flow a bit (partly because I am allergic to huge compounded if statements) 2018-07-30 11:46:44 +01:00
68a482ed92 Simplify flowkey stuff further. 2018-07-30 02:15:57 +00:00
36dcab9300 optimize wire_put_uint64; use protokey for flowlabel fallback. 2018-07-30 01:58:52 +00:00
fec7100898 Clean up / clarify coords sending code. 2018-07-30 00:01:37 +00:00
11b0a82c4a Simpler flowlabel parsing; avoid using 0 flowlabel. 2018-07-29 22:09:16 +00:00
38e8b036d2 Use addUint64 instead to not interfere with coordinate parsing 2018-07-22 18:33:53 +01:00
81fde1a805 Use flow label instead of TCP/UDP/SCTP source/destination ports 2018-07-22 18:16:03 +01:00
3f4295f8cd Only split queues based on port number for TCP/UDP/SCTP, rely only on protocol number for other protos to prevent issues with IPIP, GRE, etc 2018-07-22 12:00:40 +01:00
9cbcaf39ac Use coords for queue stream IDs in the switch, and append protocol/port information to coords when sending, to designate different streams 2018-07-21 18:59:29 -05:00
5dfa01a0e8 periodically clean up timed-out sessions and old signatures, instead of trying to do it when creating new sessions or adding new signatures 2018-06-21 20:31:30 -05:00