Commit Graph

387 Commits

Author SHA1 Message Date
otavepto
b5923696cd wrong buffer! 2023-12-24 14:33:40 +02:00
otavepto
95fe01ef9f updated Auth_Data serializtion method to add a signature to the data 2023-12-24 14:33:40 +02:00
otavepto
a626470846 refactored the serializatio of Auth_Data 2023-12-24 14:33:40 +02:00
a
48a8ada43f very minor refactoring to Auth_Data 2023-12-24 14:33:40 +02:00
a
c5ce7ad44b completely refactor the serialization of AppTicket
+ catch objects by reference instead of by value in for loops: `for (DLC &dlc : DLCs)` vs `for (DLC dlc : DLCs)`

+ rely on C/C++ standard sizes instead of SDK definitions `uint16_t` vs `uint16` since the data sizes are very important

+ added more comments explaining the reasoning for any special handling

+ added comments exaplaining the layout of the data
2023-12-24 14:33:40 +02:00
a
e379220e16 completely refactor the serialization of AppTicketGC
+ avoid any magical numbers as much as possible & calculate the required size via sizeof()

+ use a macro to serialize a single field & increment the pointer at the same time

+ added some more debug statements
2023-12-24 14:33:40 +02:00
a
342d0a27b5 fixed is a sneaky instatnt memory deallocation, check this for details: viewtopic.php?p=2962649#p2962649 2023-12-24 14:33:40 +02:00
a
0e584aa09c hide these fields since they're constant for now, to make it clear for external callers that these are not meant to change 2023-12-24 14:33:40 +02:00
a
8b4914a684 use standard fixed-size types instead of SDK types since the size of the data is important, to avoid any magic compiler definitions (love C++) 2023-12-24 14:33:40 +02:00
a
e8f64faf17 add a new serialization method to DLC struct 2023-12-24 14:33:40 +02:00
a
af86d6efc2 TODO notes for later, if needed 2023-12-24 14:33:40 +02:00
a
355537bb19 cache the usage of user ID, for clarity 2023-12-24 14:33:40 +02:00
a
85c98a5933 avoid incrementing the counter beyond the DLC count 2023-12-24 14:33:40 +02:00
a
205d88b204 + used std::chrono to set the expiration time of the ticket instead of hardcoded numbers, for clarity. isn't 24 hours a very long time?
+ set TimeSinceStartup from the new startup_timer, which starts counting when the .dll/.so is loaded in memory, currently using the amount of seconds, not sure if this is correct though
2023-12-24 14:33:40 +02:00
a
7b4d447553 use a helper macro to set IP4, for clarity 2023-12-24 14:33:40 +02:00
a
20d5252e9c additional sanity check in InitiateGameConnection() + print input data address 2023-12-24 14:33:40 +02:00
a
adeb14f364 check for invalid data pointer in GetAuthSessionTicket() 2023-12-24 14:33:40 +02:00
a
23c435bfea moved functions around for a clearer context 2023-12-24 14:33:40 +02:00
a
681fbc4ecb deprecate the old auth implementation in base.cpp/.h 2023-12-24 14:33:40 +02:00
Detanup01
b697c8bd2d All Auth token support 2023-12-24 14:33:40 +02:00
otavepto
c9e653fee7 use an obnoxious name for the file handle variable used in the PRINT_DEBUG macro to avoid collisions, in the caller has a variable with same name 2023-12-21 19:33:05 +02:00
otavepto
e28752420a cleanup the settings parser code, split into functions 2023-12-21 19:33:05 +02:00
otavepto
cf41523751 refactor includes order + add new helper function to keep yielding the thread for a given amount of time 2023-12-21 19:33:05 +02:00
otavepto
22470b5ab9 fixed printf specifier to avoid the warnings spam 2023-12-20 06:14:23 +02:00
otavepto
4fb6dcb3fa + learned the lesson, lock the global mutex in different other places just to be on the safe side, after lego 2k I am hesitent about all APIs, will this slow things down?
+ refactor some debug messages
2023-12-20 05:32:17 +02:00
otavepto
1333168d4a basic implementation for RequestAppProofOfPurchaseKey() and RequestAllProofOfPurchaseKeys() 2023-12-20 05:30:21 +02:00
otavepto
30c5b4eaa0 a simple implementation for GetEarliestPurchaseUnixTime() 2023-12-20 05:30:21 +02:00
otavepto
7bf9564005 current app shouldn't be a DLC right? 2023-12-20 05:30:21 +02:00
otavepto
9393518dfa check for invalid app ID uint32_max in different other places 2023-12-20 05:30:21 +02:00
otavepto
8289ec81a7 + fixed the implementation of BIsAppInstalled(), it must lock the global mutex since it is thread-safe, otherwise it will cause starvation and the current thread wion't yield, which triggers some games
+ even more accurate behavior for BIsAppInstalled(), reject app ID if it was in the DLC list and isUnlockAllDlc was false

+ citing the source for app id 0
2023-12-20 05:30:21 +02:00
otavepto
5c8a57e7af more accurate implementation for BGetSessionClientResolution 2023-12-20 05:30:21 +02:00
otavepto
d02f32327e more accurate implementation for Steam_Client::BReleaseSteamPipe(), return true if the pipe was released successfully 2023-12-20 05:30:21 +02:00
otavepto
f397f73644 add missing env var "SteamOverlayGameId" to steam_client and client_loader 2023-12-20 05:30:21 +02:00
otavepto
f83d930e7b added a timer + counter for reference, currently used to print timestamp in debug log 2023-12-20 05:30:21 +02:00
otavepto
ca043837d9 consistent debug log location, for games that change cwd multiple times while running 2023-12-20 05:30:21 +02:00
otavepto
6ed6a0a04b + changed the behavior of GetCurrentBetaName() to comply with the docs, might break stuff
+ allow customizing the behavior via is_beta_branch.txt + force_branch_name.txt config files
2023-12-18 05:45:21 +02:00
otavepto
fa8f594207 + more accurate implementation for BIsAppInstalled, it now rejects uint32_max
+ allow behavior customizization via installed_app_ids.txt config file

+ limit/lock list of installed apps on an empty file (similar to dlc.txt)
2023-12-18 05:45:21 +02:00
a
0ffc15352c SDK v1.58a + some fixes to the APIs 2023-12-14 04:50:31 +02:00
a
20105997de (RIN forum) added fix for glyphs icons for xbox 360 controller by 0x0315 from https://cs.rin.ru/forum/viewtopic.php?p=2949498#p2949498 2023-12-14 04:50:28 +02:00
a
439ffa5237 (RIN forum) added cvsR4U1 by ce20fdf2 from https://cs.rin.ru/forum/viewtopic.php?p=2936697#p2936697 2023-12-14 04:49:15 +02:00
a
c10a960546 use utf-8 when sanitizing settings, mainly for local_save.txt config file 2023-12-14 04:47:55 +02:00
a
62a92e5bf6 (RIN forum) added new release 4 by ce20fdf2 from https://cs.rin.ru/forum/viewtopic.php?p=2933673#p2933673 2023-12-14 04:45:59 +02:00
a
b01a7ee116 (RIN forum) added hotfix 3 by ce20fdf2 from https://cs.rin.ru/forum/viewtopic.php?p=2921215#p2921215
* + added missing implementation of (de)sanitize_string when NO_DISK_WRITE is defined which this fixes compilation of lobby_connect

* + check for empty string in (de)sanitize_file_name() before accessing its items
2023-12-14 04:45:55 +02:00
a
ad9dfb2bd1 (RIN forum) updated and safer impl for Local_Storage::load_image_resized() "for those cases where it might fail to allocate memory for the resized image" by RIPAciD: https://cs.rin.ru/forum/viewtopic.php?p=2884627#p2884627 2023-12-14 04:45:02 +02:00
a
4399c0b12b (RIN forum) added hotfix 2 by ce20fdf2: https://cs.rin.ru/forum/viewtopic.php?p=2884110#p2884110
* + avoid unnecessary locks in experimental overlay if the functionality is disabled
2023-12-14 04:44:39 +02:00
a
75e6d7c8ab (RIN forum) add initial hotfix by ce20fdf2
* + revert the change to SetProduct() and SetGameDescription()

* + less verbose return in Steam_GameServer::BSecure()

* + add missing note in ReadMe about libssq
2023-12-14 04:40:25 +02:00
a
d95ceb0fc9 impl for GetAuthTicketForWebApi 2023-12-14 04:40:25 +02:00
a
caa4024de3 avoid locking the global_mutex every time when getting the global steamclient instance, double check for null and lock on the first time the pointer is initialized, should speed things up 2023-12-14 04:39:35 +02:00
a
3999818a6b explicitly use the ASCII version of Windows APIs when building to avoid conflict when UNICODE/_UNICODE def is defined (base.cpp) 2023-12-14 04:39:35 +02:00
a
3afde6e996 remove RtlGenRandom and use the newer BCryptGenRandom 2023-12-14 04:29:42 +02:00