Commit graph

43 commits

Author SHA1 Message Date
Jonathan Barrow
7ee7af5f38
Disconnect lingering connections 2022-09-11 14:55:31 -04:00
Jonathan Barrow
bb6d6348b0
Removed duplicate code in V1 ACK encoding 2022-09-05 09:51:38 -04:00
Jonathan Barrow
95ecd962f0
Remove event handler type assertion 2022-09-05 09:48:11 -04:00
Jonathan Barrow
4bb09fd0ea
Track client PRUDP minor version and supported functions 2022-09-05 09:45:36 -04:00
Jonathan Barrow
52b2001c00
Removed useless line breaks 2022-09-05 09:11:55 -04:00
Jonathan Barrow
d62f77a58f
Added (Set)SupportedFunctions methods 2022-09-05 09:08:54 -04:00
Jonathan Barrow
003b4c2baa
Added (Set)PRUDPProtocolMinorVersion methods and corrected misuse of server NEX version 2022-09-05 08:57:56 -04:00
Jonathan Barrow
3f91013496 Added kerberos password field 2022-04-16 19:58:00 -04:00
Jonathan Barrow
655d59f4ae Added plogger logging 2022-04-15 16:51:05 -04:00
Jonathan Barrow
0f54daac27 Removed unused code found only in the original Rendez-Vous library 2022-04-10 16:07:00 -04:00
Jonathan Barrow
7790a5e23a Added kerberos ticket version 2022-04-03 10:00:47 -04:00
Jonathan Barrow
8be2d8bca2 Moved all source files back to root 2022-03-29 00:15:55 -04:00
Jonathan Barrow
a2d673a235 Moving to Go modules 2022-03-27 19:59:17 -04:00
Jonathan Barrow
19520fa349 Merge branch 'master' of https://github.com/PretendoNetwork/nex-go 2021-12-02 09:07:20 -05:00
shutterbug2000
64b6ab825f
Fix prudp fragment issues
Fixes friends failing to load when the friend list gets too long
2021-12-01 00:48:10 -06:00
Jonathan Barrow
af513d18c0 Moved connection ID counter to nex-go 2021-11-21 20:55:45 -05:00
Jonathan Barrow
47a0b52b7f Added SetFragmentSize 2021-11-21 00:53:15 -05:00
Jonathan Barrow
4fc1ab819c moved ping timeout timer ti Go Timer channel 2021-11-18 08:43:20 -05:00
Jonathan Barrow
13ee75a2bb Added a ping timeout 2021-11-02 10:59:58 -04:00
Jonathan Barrow
c5ce72ce26 remove redundant SendPing 2021-11-02 10:04:28 -04:00
Jonathan Barrow
7462a7f43f Added FindClientFromPID 2021-10-28 09:06:21 -04:00
Jonathan Barrow
24a4f22d93 use fragmentID 2021-09-29 19:16:38 -04:00
Jonathan Barrow
caecee00e9 removed commented code and whitespace 2021-08-22 18:29:58 -04:00
Jonathan Barrow
f78cd960d8 Changed getters to be more Go-like
Removed "Get" prefix from getters to conform to effective Go standards
2020-04-19 21:40:04 -04:00
Jonathan Barrow
49762a9957 Renamed nexMinorVersion
Renamed nexMinorVersion since NEX versions are more specific in reality
2020-04-19 21:32:02 -04:00
Jonathan Barrow
3469a4893a Moved unreachable code 2020-04-19 12:01:43 -04:00
Jonathan Barrow
1d690de84d New StreamOut API
StreamOut now has an abstraction layer to clean up some method calls from crunch
2020-02-16 17:42:03 -05:00
Jonathan Barrow
e1d1dfe90a Removed broken pings and fixed client state reuse
Ping packets were never being sent from the server. This is now fixed. Also removed the buggy StartPing loop, which never worked due to struct properties not being updated in different goroutine threads. Ping packets now get sent from the server whenever one is sent from the client

Client states were also being reused when a connection was made with an existing port on the same console, which broke NNID switching. Client states now get reset when connections begin
2020-02-16 16:48:54 -05:00
Jonathan Barrow
5bfbd6ee09 Made server more concurrent
Server should now be able to handle concurrent connections from more clients
2020-01-31 23:18:26 -05:00
Jonathan Barrow
82c62bc806 Added ping timeout check 2020-01-31 13:08:37 -05:00
Jonathan Barrow
c124c9a204 Added Kick method to server and disconnect kicking 2020-01-31 03:28:06 -05:00
Jonathan Barrow
17208659c4 Error handling and data validation
Now validates data before passing it to crunch in order to avoid buffer read/write out of bounds panics. This API update is breaking and all code using it will need to be updated
2020-01-31 02:50:23 -05:00
Jonathan Barrow
8ab25b0f16 new stream implementation and Structure type handling
Split the Stream struct into 2 separate stream types for clearer intent. Also now pass them a reference to the server pointer to access server config (namely the NEX minor version)

Structure NEX types are now being implemented (a push to nex-protocols-go will follow shortly). However the implementation is pretty jank and could use some work. Currently uses emulated inheritance
2020-01-26 21:38:33 -05:00
Jonathan Barrow
11bd735033 PRUDPv1 and goroutines
Added goroutines to packet handlers and added just enough of PRUDPv1 to get Super Mario Maker connecting
2020-01-24 18:14:04 -05:00
Jonathan Barrow
8e489e4165 Complete rewrite 2020-01-17 12:42:59 -05:00
SuperMarioDaBom
547d4ed6a5 made some adjustments; can't guarentee this'll work as intended though 2019-05-26 15:31:27 -07:00
Ezekiel Bethel
f9afc4d8a5 SetCipher->SetKey, added AcknowledgeWithPayload 2019-01-15 18:23:48 +00:00
RedDuckss
24ee0aad2b Basic v1 implementation (still kinda broken) 2018-10-02 17:02:36 -04:00
RedDuckss
686a59737c Properly send fragmented packets + godoc comments
Server now properly splits the packet payload into multiple fragments if needed.

Server settings now properly get defaults.

Added the basis for compression support, though it doesn't do anything right now.

Removed unused NEX type structs.

And finally, fixed all godoc and other linting issues.
2018-09-26 21:42:48 -04:00
RedDuckss
126a1016cb Minor updates 2018-09-25 10:10:20 -04:00
RedDuckss
d0138036ed RMC fixes and README updated 2018-09-18 19:22:25 -04:00
RedDuckss
71a1387f0e RC4 and session ID fixes 2018-09-18 18:50:11 -04:00
RedDuckss
2f60727e4e restructure and, rewrite. Things do things now 2018-09-18 00:25:31 -04:00