Commit graph

76 commits

Author SHA1 Message Date
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
Michael Wolfendale
feee2dd599
fix: allocate buffers for incoming packets 2024-07-07 16:36:34 +01:00
Michael Wolfendale
c214a2a7a5
chore: reduce buffer allocations when receiving packets 2024-07-05 16:37:52 +01:00
Michael Wolfendale
9997fb672a
chore: rename ResendScheduler TimeoutManager 2024-07-02 17:29:28 +01:00
Michael Wolfendale
18380590ab
feat: rework resending packets to be more accurate 2024-07-02 16:54:47 +01:00
Michael Wolfendale
83e5157350
feat: add delay to outgoing fragmented data packets 2024-06-25 21:58:40 +01:00
Daniel López Guimaraes
d5df60ef58
chore: Update module version to v2 2024-04-07 23:40:51 +01:00
Jonathan Barrow
ff1d3b1482
prudp: rename packet flags to distinguish them from other constants 2024-03-15 18:25:46 -04:00
Jonathan Barrow
a1a590392b
chore: move constants and enums to constants package 2024-03-15 16:09:23 -04:00
Jonathan Barrow
ab069f3410
chore: formatting 2024-03-15 13:17:00 -04:00
PabloMK7
652dbecf48 Use more fields from StreamSettings 2024-03-05 19:30:53 +01:00
Daniel López Guimaraes
cdcc2bbb9d
prudpv1: Add PRUDPV1Settings
Adds setting for controlling legacy connection signature calculation,
needed for some games like Luigi's Mansion 2.
2024-02-24 00:18:49 +00:00
Jonathan Barrow
582bcab984
prudp: fix ineffectual assignment to err in PRUDPServer 2024-02-20 15:21:24 -05:00
Jonathan Barrow
88a2d4bbac
rmc: add a way to enable verbose RMC messages 2024-02-18 22:35:08 -05:00
Daniel López Guimaraes
3b90bdc96b
refactor: Update ServerInterface to EndpointInterface
This requires a lot of refactor but it brings back the option of getting
events when a connection disconnects.
2024-02-11 00:03:05 +00:00
Jonathan Barrow
191455352a
update: added RegisterServiceProtocol to HPP and PRUDP servers 2024-01-24 16:40:38 -05:00
Jonathan Barrow
f1549a79ca
prudp: removed unnecessary getters/setters 2024-01-24 13:08:49 -05:00
Jonathan Barrow
64b26b3eed
prudp: rework Kerberos ticket generation to use user accounts properly 2024-01-24 12:42:11 -05:00
Jonathan Barrow
6697eec1f8
prudp: change PRUDPServer variable name 2024-01-15 17:56:49 -05:00
Jonathan Barrow
ee2bca04df
prudp: add events back to PRUDPServer 2024-01-15 17:55:35 -05:00
Jonathan Barrow
8dba91974d
Apply suggestions from code review
Co-authored-by: Daniel López Guimaraes <112760654+DaniElectra@users.noreply.github.com>
2024-01-15 16:32:57 -05:00
Jonathan Barrow
a63ca441a9
encryption: added QuazalRC4 2024-01-15 15:07:57 -05:00
Jonathan Barrow
9cec5d9e9c
prudp: completely redo virtual connections 2024-01-15 15:01:26 -05:00
Jonathan Barrow
84dd859e17
prudp: added PRUDPV0Settings 2024-01-01 00:50:45 -05:00
Jonathan Barrow
bdfeb0b5a8
streams: added ByteStreamSettings 2023-12-31 23:51:18 -05:00
Jonathan Barrow
fc1da5b833
prudp: use real Buffer type in connection check 2023-12-31 23:29:16 -05:00
Jonathan Barrow
1093a614db
streams: rename streams to ByteStreams 2023-12-31 23:22:41 -05:00
Daniel López Guimaraes
34fa2d53de
types: Replace type aliases with struct wrappers
Also remove StructureInterface, and make all structures initialize all
their fields. The structure header is now added as a common function
`ExtractHeaderFrom` and `WriteHeaderTo`.
2023-12-27 22:16:06 +00:00
Jonathan Barrow
793664257a
types: remove unused generic from PID type 2023-12-23 15:21:22 -05:00
Jonathan Barrow
919cabda7d
types: added constructor values to primitive types 2023-12-23 15:01:55 -05:00
Jonathan Barrow
715e3182cd
expanded all types into dedicated files and made the stream API generic 2023-12-23 13:03:32 -05:00
Jonathan Barrow
f2562bd26c
rmc: pass server to RMC messages 2023-12-15 17:02:19 -05:00
Jonathan Barrow
ce2e746e96
prudp: support LZO compressed payloads 2023-12-15 16:54:52 -05:00
Jonathan Barrow
95e8f79957
prudp: fix payload compression exports 2023-12-14 17:39:52 -05:00
Jonathan Barrow
ffaf7278eb
prudp: export payload compression methods to support custom compression 2023-12-14 17:17:44 -05:00
Jonathan Barrow
30d9545c61
configure the size of the Quazal::String length field 2023-12-13 20:05:11 -05:00
Jonathan Barrow
71f8d86296
prudp: added PRUDPv0CustomChecksumCalculator to PRUDPServer 2023-12-13 19:55:50 -05:00
Jonathan Barrow
89af63e3d4
prudp: validate virtual port being connected to 2023-12-13 19:51:05 -05:00
Jonathan Barrow
a64a555520
prudp: swap WebSocket libraries 2023-12-12 04:32:34 -05:00
Jonathan Barrow
99c37d3df2
prudp: experimental WSS and PRUDPLite support 2023-12-11 00:22:19 -05:00
Daniel López Guimaraes
a210ae62c3
prudp: Use client session ID as server session ID 2023-12-10 19:31:15 +00:00
Daniel López Guimaraes
5c4004413c
qrv: Add EnhancedChecksum option
Quazal Rendez-Vous supports both 1 byte and 4 byte checksums. Add a
toggle to enable the 4 byte checksum.
2023-12-10 14:09:40 +00:00
Daniel López Guimaraes
3bb9c3fca2
Update PasswordFromPID error to NotImplemented 2023-12-10 11:32:26 +00:00
Jonathan Barrow
35c2afce1a
prudp: handle edge cases for virtual ports 2023-12-09 19:46:05 -05:00
Jonathan Barrow
3ee001f878
prudp: rename PasswordFromPIDFunction to PasswordFromPID 2023-12-09 19:35:46 -05:00
Daniel López Guimaraes
a7564f5555
Add PasswordFromPID to ServerInterface
This function handler is common to all servers.
2023-12-09 21:03:31 +00:00
Jonathan Barrow
0ac073d2c8
prudp: update default number of server vports 2023-12-08 16:25:54 -05:00
Jonathan Barrow
1970b2a73e
prudp: support server vports and move client vport to discriminator 2023-12-08 16:08:27 -05:00
Daniel López Guimaraes
109fd47a19
prudp: Virtual connections now use source port 2023-12-08 11:06:21 +00:00
Jonathan Barrow
7b7b9c59d7
prudp: add support for virtual connections 2023-12-08 01:24:57 -05:00