Ash Logan
cc6eabed67
work: post-response notifications
2025-01-11 14:35:48 +11:00
Jonathan Barrow
9a3d0bcbb1
Merge pull request #76 from PretendoNetwork/patch/cleanup-connections
2025-01-06 18:30:37 -05:00
Ash Logan
9e5e0332b5
fix(endpoint): Check PID invariant in FindConnectionByPID
...
An expected invariant of this system is that StateConnected connections also have a PID, and other states do *not* have a PID.
While any code that breaks this invariant is buggy, we can still make FindConnectionByPID resilient to this to prevent that type of bug from taking the whole server down.
That type of bug can still be detected through explicit testing of the Connections map.
2025-01-04 17:33:33 +11:00
Ash Logan
fbe2b91e75
feat(endpoint): Route connection closures via new cleanupConnection method
...
Centralising connection closures helps ensure that everything gets done (.cleanup()) and there's One True Way to find them in the Connections map
It's worth noting that every callsite has a PRUDPConnection*, so maybe a different datastructure would serve us better here?
2025-01-04 17:33:33 +11:00
Ash
461d2f2846
Merge pull request #75 from PretendoNetwork/patch/simplify-socket-connection
2025-01-04 10:56:37 +11:00
Ash Logan
5dda129a6f
chore: Remove Connections tracking from SocketConnection
...
Every SocketConnection had a map of *PRUDPConnection, which was never actually inserted into anywhere, so the intended function of tracking what OS sockets have which PRUDP streams was not being done.
Remove it as dead code. If the rest of the connection tracking is going to be implemented, this commit can be reverted.
Since the SocketConnection no longer has long-lived state in it, also remove the map on PRUDPServer and just create it as a simple data structure when needed.
The connection close handling of the websocket server had to be rewritten - the old code would never do anything due to the empty maps, so this can't be *worse* than nothing :)
2025-01-03 17:58:46 +11:00
Ash Logan
6f3f3d1b4a
.gitignore: add IDEA
2025-01-03 17:54:55 +11:00
Jonathan Barrow
a035545093
Merge pull request #70 from wolfendale/performance-tweaks
2024-07-07 13:55:06 -04:00
Michael Wolfendale
feee2dd599
fix: allocate buffers for incoming packets
2024-07-07 16:36:34 +01:00
Michael Wolfendale
4fab7a2c86
fix: fix kerberos key derivation
2024-07-07 16:36:34 +01:00
Jonathan Barrow
d633dca018
Merge pull request #69 from wolfendale/performance-tweaks
2024-07-05 12:55:28 -04:00
Michael Wolfendale
22d2698cef
chore: add comment to TimeoutManager
...
Co-authored-by: Daniel López Guimaraes <112760654+DaniElectra@users.noreply.github.com>
2024-07-05 17:48:47 +01:00
Michael Wolfendale
ad488be838
chore: update kerberos key derivation to reduce allocations
2024-07-05 17:39:29 +01:00
Michael Wolfendale
abfca9a10d
chore: remove unnecessary goroutines
2024-07-05 17:15:17 +01:00
Michael Wolfendale
c214a2a7a5
chore: reduce buffer allocations when receiving packets
2024-07-05 16:37:52 +01:00
Michael Wolfendale
4fefb05f86
chore: limit the scope of connection locking in TimeoutManager
2024-07-05 16:37:52 +01:00
Michael Wolfendale
348c37df5d
fix: removed double lock from reliable ping packet handling
2024-07-05 16:37:52 +01:00
Jonathan Barrow
293c20d6be
Merge pull request #68 from wolfendale/timeout-rework
2024-07-02 12:47:24 -04:00
Michael Wolfendale
0502cc64b1
chore: renamed GetRTO to RTO to match style rules
2024-07-02 17:31:42 +01:00
Michael Wolfendale
9997fb672a
chore: rename ResendScheduler TimeoutManager
2024-07-02 17:29:28 +01:00
Michael Wolfendale
0d8506dd52
chore: updated documentation
2024-07-02 17:28:31 +01:00
Michael Wolfendale
680abd3cb0
chore: update max silence time
2024-07-02 16:54:47 +01:00
Michael Wolfendale
18380590ab
feat: rework resending packets to be more accurate
2024-07-02 16:54:47 +01:00
Daniel López Guimaraes
2b6ea02749
Merge pull request #67 from wolfendale/master
2024-06-25 23:00:43 +02:00
Michael Wolfendale
83e5157350
feat: add delay to outgoing fragmented data packets
2024-06-25 21:58:40 +01:00
Daniel López Guimaraes
090cfb5568
Merge pull request #65 from wolfendale/connection-state-checks
...
Connection State Changes
2024-06-14 22:29:19 +02:00
Michael Wolfendale
de3610deaf
fix: added Purge method to PacketDispatchQueue
2024-06-12 23:03:41 +01:00
Michael Wolfendale
1258086480
fix: modify connection state checks
2024-06-11 12:49:10 +01:00
Daniel López Guimaraes
f7b8a549ba
Merge pull request #64 from wolfendale/revert-ack-changes
2024-06-06 22:51:36 +02:00
Michael Wolfendale
a638798255
fix: remove reliable check from ack packets
2024-06-06 21:24:17 +01:00
Daniel López Guimaraes
b0c937dbe4
Merge pull request #62 from wolfendale/fix-ping-ack
2024-06-03 23:25:55 +02:00
Michael Wolfendale
ae41e77566
fix: prevented ping packets from acknowledging reliable packets
2024-06-02 12:07:52 +01:00
Daniel López Guimaraes
4f59501d31
Merge pull request #59 from wolfendale/packet-dispatch-queue
2024-05-27 23:05:08 +02:00
Michael Wolfendale
a597a37d41
chore: update godoc comments
2024-05-27 21:59:51 +01:00
Michael Wolfendale
f66fae8827
chore: remove Purge from PacketDispatchQueue as it is unneeded
2024-05-27 21:59:51 +01:00
Michael Wolfendale
07dda5708e
chore: remove logic in SlidingWindow for incoming packets
2024-05-27 21:59:51 +01:00
Michael Wolfendale
75c402b7ee
feat: use PacketDispatchQueue in PRUDPEndpoint
2024-05-27 21:59:51 +01:00
Michael Wolfendale
24d542506c
feat: add PacketDispatchQueue
2024-05-27 20:39:28 +01:00
Jonathan Barrow
26c9159397
Merge pull request #57 from wolfendale/connectivity-issues
2024-05-25 17:47:56 -04:00
Michael Wolfendale
363cc7b5bf
fix: prevent multi-fragment messages being lost
2024-05-25 20:42:54 +01:00
Jonathan Barrow
8e0b1a2be4
Merge pull request #51 from wolfendale/sliding-window-lock
2024-05-22 18:24:56 -04:00
Daniel López Guimaraes
39b2b55f08
fix: Tidy go modules
2024-05-19 18:41:43 +01:00
Daniel López Guimaraes
d23ec239ba
chore: Update go modules
2024-05-19 18:40:12 +01:00
Michael Wolfendale
4315467d6a
fix: fixed race condition in SlidingWindow
2024-05-18 09:08:07 +01:00
Jonathan Barrow
5f38bf34bf
Merge pull request #46 from PabloMK7/disconnectbyid
2024-04-19 13:05:05 -04:00
PabloMK7
ba656ff75b
Rename callback to predicate
2024-04-19 19:03:37 +02:00
PabloMK7
10235684fb
Fix typo
2024-04-18 18:21:28 +02:00
Daniel López Guimaraes
e2d333d597
Merge pull request #44 from DaniElectra/thread-scheduler
2024-04-18 17:12:30 +02:00
PabloMK7
90d81f6eb9
Implement and use deleteConnectionByID
2024-04-18 14:51:01 +02:00
Daniel López Guimaraes
eb3f1be3ae
resend_scheduler: Restructure finished check
2024-04-13 20:43:48 +01:00