| 904 | } |
| 905 | |
| 906 | bool Auth_Manager::SendSteam2UserConnect( uint32 unUserID, const void *pvRawKey, uint32 unKeyLen, uint32 unIPPublic, uint16 usPort, const void *pvCookie, uint32 cubCookie, CSteamID *pSteamIDUser ) |
| 907 | { |
| 908 | // pvRawKey is Steam2 auth ticket, it comes from Steam.dll. |
| 909 | // pvCookie is Steam3 auth ticket, it comes from us. |
| 910 | // Steam3 ticket is technically optional but it should always be there if the client is using Goldberg |
| 911 | // so there's no real need to check Steam2 ticket. |
| 912 | |
| 913 | // HACK: Generate Steam ID from IP address for unknown clients. |
| 914 | CSteamID fallbackID(unIPPublic, k_EUniversePublic, k_EAccountTypeIndividual); |
| 915 | Auth_Data data = validateTicket(pvCookie, cubCookie, fallbackID, pSteamIDUser); |
| 916 | if (!data.id.IsValid()) |
| 917 | return false; |
| 918 | |
| 919 | for (auto & t : inbound) { |
| 920 | if (t.id == data.id) { |
| 921 | //Should this return false? |
| 922 | launch_callback_gs_steam2(data.id, unUserID, true); |
| 923 | return true; |
| 924 | } |
| 925 | } |
| 926 | |
| 927 | inbound.push_back(data); |
| 928 | launch_callback_gs_steam2(data.id, unUserID, true); |
| 929 | return true; |
| 930 | } |
| 931 | |
| 932 | bool Auth_Manager::SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) |
| 933 | { |
no test coverage detected