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

1698 Commits

Author SHA1 Message Date
46c5df1c23 when we abandon a link because we already have a connection to that peer, only wait for the connection to close if it's an *outgoing* link, otherwise incomming connection attempts can cause us to leak links 2019-08-13 18:49:49 -05:00
5e7df5a1c4 Merge pull request #499 from yggdrasil-network/sessionfix
Prevent session leaks or blocking if the listener is busy
2019-08-13 08:27:30 +01:00
b2cb1d965c avoid leaking sessions when no listener exists, or blocking if it's busy 2019-08-12 18:22:30 -05:00
c15976e4dc go.sum 2019-08-12 18:08:02 -05:00
70a118ae98 Update go.mod/go.sum 2019-08-12 11:41:29 +01:00
16076b53b9 Merge pull request #498 from Arceliar/search
Search fixes
2019-08-11 21:13:49 +01:00
277da1fe60 make sure searches don't end if try to continue (in parallel) with nowhere left to send, but we just sent a search and are still waiting for a response 2019-08-11 13:11:14 -05:00
7a28eb787e try to fix a few edge cases with searches that could lead them to ending without the callback being run or without cleaning up the old search info 2019-08-11 13:00:19 -05:00
589ad638ea Implement feature from https://github.com/yggdrasil-network/yggdrasil-go/issues/488 2019-08-11 00:31:22 +03:00
ae05683c73 Merge pull request #494 from Arceliar/bufpersession
Per-session front-dropping buffers for incoming traffic
2019-08-07 18:15:20 -05:00
5e81a0c421 Use a separate buffer per session for incoming packets, so 1 session that floods won't block other sessions 2019-08-07 18:08:31 -05:00
9ab08446ff make sure the sessionInfo.recvWorker doesn't block if sinfo.recv somehow fills 2019-08-07 17:40:50 -05:00
71e9ca25f7 Merge pull request #492 from neilalexander/fixlisten
Transform Listen statement to new format if needed
2019-08-07 10:57:55 +01:00
bbb35d7209 Transform Listen statement to new format if needed 2019-08-07 10:52:19 +01:00
c99ed9fb60 Merge pull request #491 from Arceliar/flowkey
Fix the old flowkey stuff so congestion control actually works...
2019-08-07 10:33:17 +01:00
d795ab1b65 minor allocation fix 2019-08-06 20:51:38 -05:00
790524bd1c copy/paste old flowkey logic into a util function, add a struct of key and packet, make WriteNoCopy accept this instead of a slice 2019-08-06 19:25:55 -05:00
6cb0ed91ad Merge pull request #486 from Arceliar/bugfix
Conn/Session cleanup
2019-08-05 19:17:30 -05:00
679866d5ff have createSession fill the sessionInfo.cancel field, have Conn use Conn.session.cancel instead of storing its own cancellation, this should prevent any of these things from being both nil and reachable at the same time 2019-08-05 19:11:28 -05:00
032b86c9a3 Merge pull request #485 from Arceliar/bugfix
Bugfix
2019-08-05 18:57:14 -05:00
8a85149817 remove src/.DS_Store 2019-08-05 18:50:08 -05:00
84a4f54217 temporary fix to nil pointer, better to make sure it's never nil 2019-08-05 18:49:15 -05:00
bd3b42022b Merge pull request #480 from Arceliar/speedup
Speedup
2019-08-05 10:24:54 +01:00
f046249ac6 Merge pull request #484 from neilalexander/config
API changes
2019-08-05 10:24:43 +01:00
2ee00fcc09 Return box_pub_key as hex string in JSON (replaces #481) 2019-08-05 10:21:40 +01:00
3a2ae9d902 Update API to represent coords as []uint64 2019-08-05 10:17:19 +01:00
37533f157d Make some API changes (currently broken) 2019-08-05 00:30:12 +01:00
979c3d4c07 move some potentially blocking operations out of session pool workers, minor cleanup 2019-08-04 16:29:58 -05:00
c55d7b4705 have the switch queue drop packts to ourself when the total size of all packets is at least queueTotalMaxSize, instead of an arbitrary unconfigurable packet count 2019-08-04 16:16:49 -05:00
6803f209b0 have tuntap code use Conn.ReadNoCopy and Conn.WriteNoCopy to avoid copying between slices 2019-08-04 15:59:51 -05:00
5d5486049b add Conn.ReadNoCopy and Conn.WriteNoCopy that transfer ownership of a slice instead of copying, have Read and Write use the NoCopy versions under the hood and just manage copying as needed 2019-08-04 15:53:34 -05:00
07f14f92ed disable crypto and switch buffer changes from testing 2019-08-04 15:25:14 -05:00
0ba8c6a34f have the stream code use bufio instead of copying manually to an input buffer, slightly reduces total uses of memmove 2019-08-04 15:21:04 -05:00
75b931f37e eliminate some more copying between slices 2019-08-04 14:50:19 -05:00
f52955ee0f WARNING: CRYPTO DISABLED while speeding up stream writeMsg 2019-08-04 14:18:59 -05:00
1e6a6d2160 use session.cancel in the router to make blocking safe, reduce size of fromRouter buffer so the drops in the switch are closer to the intended front-drop behavior 2019-08-04 02:21:41 -05:00
7bf5884ac1 remove some lossy channel sends that should be safe to allow to block 2019-08-04 02:14:45 -05:00
6da5802ae5 don't block forever in Write if the session is cancelled, cleanup Conn.Read slightly 2019-08-04 02:08:47 -05:00
144c823bee just use a sync.Pool as the bytestore to not overcomplicate things, the allocations from interface{} casting don't seem to actually hurt in practice right now 2019-08-04 00:28:13 -05:00
cbbb61b019 fix another drain on the bytestore 2019-08-04 00:00:41 -05:00
00e9c3dbd9 do session crypto work using the worker pool 2019-08-03 23:27:52 -05:00
befd1b43a0 refactor session worker code slightly 2019-08-03 23:14:51 -05:00
7a9ad0c8cc add workerpool to util 2019-08-03 23:10:37 -05:00
b9987b4fdc reduce time spent with a mutex held in sessionInfo.recvWorker 2019-08-03 22:47:10 -05:00
099bd3ae1e reduce part of sendWorker that needs to keep a mutex 2019-08-03 22:35:10 -05:00
72ed541bf3 a little cleanup to Conn functions 2019-08-03 22:07:38 -05:00
5dfc71e1ee put bytes back when done 2019-08-03 22:00:47 -05:00
df0090e32a Add per-session read/write workers, work in progress, they still unfortunately need to take a mutex for safety 2019-08-03 21:46:18 -05:00
a2966291b9 Merge pull request #478 from yggdrasil-network/develop
Version 0.3.6
2019-08-03 12:00:00 +01:00
523f90bfc4 Merge pull request #477 from yggdrasil-network/changelog
Update CHANGELOG.md
2019-08-03 10:17:28 +01:00