4
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2025-06-14 05:56:06 +00:00
Commit Graph

932 Commits

Author SHA1 Message Date
f9163a56b6 fix race between listener accepting and shutting down 2019-09-19 19:50:45 -05:00
eeb34ce4e4 modify TcpListener 2019-09-19 19:45:17 -05:00
93e81867fd have link.stop signal active links to close, have tcp.stop wait for all listeners and active connections to close 2019-09-19 19:15:59 -05:00
681e9afc79 Merge develop into bugfixes 2019-09-19 09:05:56 +01:00
7b1678a11d Goroutines in _addPeerLoop from bugfixes 2019-09-19 09:04:25 +01:00
5a382e7e0b Cherrypick fixes for _addPeerLoop memory leak for now 2019-09-19 08:55:55 +01:00
995d67cca8 fix leak in _addPeerLoop 2019-09-18 18:46:03 -05:00
92d9274f3f resolve conflicts 2019-09-18 18:40:01 -05:00
2d64a6380a misc other fixes 2019-09-18 18:33:51 -05:00
909e4e29a8 Don't spawn goroutines for addPeerLoop, TCP connect timeout of 5 seconds for now 2019-09-18 23:44:28 +01:00
64570a8d3e Merge pull request #542 from Arceliar/switch
Switch
2019-09-18 20:26:48 +01:00
0a12e4b1c1 Revert "Catch a nil pointer when sending a session packet to a conn, this shouldn't happen but it's caused multiple crashes in conn.recvMsg"
This reverts commit be35675d0f.
2019-09-18 20:26:06 +01:00
ddaaa865cb Be more verbose when a peer or listener is badly formatted 2019-09-18 19:58:41 +01:00
94cf2854a9 Fix panic where slice goes out of bounds because iface.Read returns less than zero (which might happen when the TUN/TAP interface is closed) 2019-09-18 19:48:53 +01:00
ae0b2672ff Fix #539 2019-09-18 19:48:16 +01:00
2dc136f94a Multicast actor to prevent races 2019-09-18 16:51:46 +01:00
b959f53fee Shut down listeners when stopping 2019-09-18 16:32:22 +01:00
b0df9e2f31 Fix race when adding peers 2019-09-18 16:15:33 +01:00
c78a4cb28f Only stop timers if they are running 2019-09-18 15:34:26 +01:00
366fe7e772 Allow multicast to be shut down more sanely 2019-09-18 15:31:43 +01:00
00a972b74e Disconnect peers when stopping, stop modules before core 2019-09-18 15:22:17 +01:00
846df4789a Be more verbose when a peer or listener is badly formatted 2019-09-18 15:01:19 +01:00
200b3623b2 Fix #539 2019-09-18 14:32:28 +01:00
e9bacda0b3 Catch a nil pointer when sending a session packet to a conn, this shouldn't happen but it's caused multiple crashes in conn.recvMsg 2019-09-18 14:07:26 +01:00
c3016e680c Fix panic where slice goes out of bounds because iface.Read returns less than zero (which might happen when the TUN/TAP interface is closed) 2019-09-18 14:05:18 +01:00
40204caab6 Try to fix race condition in sessions.reset 2019-09-18 14:03:31 +01:00
be35675d0f Catch a nil pointer when sending a session packet to a conn, this shouldn't happen but it's caused multiple crashes in conn.recvMsg 2019-09-18 13:37:01 +01:00
80ba24d512 force things to buffer in the switch if the best link is currently busy. note that other links can end up sending if they become non-idle for other reasons. this is a temporary workaround to packet reordering, until we can figure out a better solution 2019-09-17 19:42:07 -05:00
0141180279 cleanup 2019-09-09 19:25:10 -05:00
10a828af2c when forwarding traffic, break distance ties by favoring the link that sent the most recent switch update the fastest 2019-09-09 19:20:46 -05:00
2426a87ccc really finish initializing the session before returning it / giving up control of the router, in the Conn.search function used by Dial 2019-09-03 19:03:12 -05:00
8c52ccadf9 make dial fail if a session to the same node already exists, fixes race between simultaneous connections to a node's 200 address and one of its 300 addresses, should also fix races between a search and an accepted listen 2019-09-01 14:07:00 -05:00
8d2c31d39c add some artifical delay to windows netsh commands, since it seems like maybe they don't take effect immediately, and this was leading to races when setting MTU 2019-09-01 13:20:48 -05:00
c53831696b make tun stop check that iface is not nil, in case it wasn't set for some reason (windows bugs) 2019-09-01 13:06:25 -05:00
d08c2eb237 stop exporting ReadNoCopy and WriteNoCopy, since we use the actor functions / callbacks and everything else should use Read and Write instead... 2019-09-01 13:04:10 -05:00
3a493fe894 gc more often on mobile 2019-09-01 11:08:25 -05:00
cabdc27a54 change how nonce is tracked, so we allow packets if we've recently received a highest nonce ever, but don't bother tracking all received nonce values, this means duplicate packets are possible but only for a small window of time (and significantly reduces memory usage per session) 2019-08-31 17:39:05 -05:00
a64f7320d8 update phony, add mobile versions of util bytes functions that don't try to store anything 2019-08-31 16:27:36 -05:00
7649ea0f9f remove sessionInfo.doFunc, have the api just use phony.Block instead 2019-08-29 21:59:28 -05:00
1f658cce76 Add Core actor 2019-08-28 19:53:52 +01:00
aa0770546e Move responsibility for configuring max queue size into switch 2019-08-28 19:39:23 +01:00
fc9a1c6c31 Simplify reconfiguration 2019-08-28 19:31:04 +01:00
764f9c8e11 Remove legacy debug functions 2019-08-28 17:24:41 +01:00
881d0a1ada Fix DEBUG_getDHTSize 2019-08-28 12:46:49 +01:00
e553f3e013 Reconfigure functions now ran by actors 2019-08-28 12:46:12 +01:00
607c906820 Pointer receivers for phony.Block 2019-08-28 12:26:44 +01:00
5d7d84f827 Remove router.doAdmin and switchTable.doAdmin 2019-08-28 12:17:19 +01:00
a8b323acdd have an actor manage the crypto worker pool instead of each session trying to use it directly, this should result in a fairer round-robin behavior in cases where crypto congestion is the bottleneck 2019-08-27 20:01:37 -05:00
3845f81357 update to latest phony, adjust interface use accordingly 2019-08-27 19:43:54 -05:00
4d9c6342a7 more link updates 2019-08-26 18:37:38 -05:00