Achievements: Include rc_client version in user agent

This commit is contained in:
Stenzek 2025-01-26 13:37:07 +10:00
parent 6a09d6ecda
commit d4b0b7fc29
No known key found for this signature in database
1 changed files with 13 additions and 12 deletions

View File

@ -609,21 +609,10 @@ bool Achievements::Initialize()
bool Achievements::CreateClient(rc_client_t** client, std::unique_ptr<HTTPDownloader>* http)
{
*http = HTTPDownloader::Create(Host::GetHTTPUserAgent());
if (!*http)
{
Host::ReportErrorAsync("Achievements Error", "Failed to create HTTPDownloader, cannot use achievements");
return false;
}
(*http)->SetTimeout(SERVER_CALL_TIMEOUT);
(*http)->SetMaxActiveRequests(MAX_CONCURRENT_SERVER_CALLS);
rc_client_t* new_client = rc_client_create(ClientReadMemory, ClientServerCall);
if (!new_client)
{
Host::ReportErrorAsync("Achievements Error", "rc_client_create() failed, cannot use achievements");
http->reset();
return false;
}
@ -631,8 +620,20 @@ bool Achievements::CreateClient(rc_client_t** client, std::unique_ptr<HTTPDownlo
new_client, (Log::GetLogLevel() >= Log::Level::Verbose) ? RC_CLIENT_LOG_LEVEL_VERBOSE : RC_CLIENT_LOG_LEVEL_INFO,
ClientMessageCallback);
rc_client_set_userdata(new_client, http->get());
char rc_client_user_agent[128];
rc_client_get_user_agent_clause(new_client, rc_client_user_agent, std::size(rc_client_user_agent));
*http = HTTPDownloader::Create(fmt::format("{} {}", Host::GetHTTPUserAgent(), rc_client_user_agent));
if (!*http)
{
Host::ReportErrorAsync("Achievements Error", "Failed to create HTTPDownloader, cannot use achievements");
rc_client_destroy(new_client);
return false;
}
(*http)->SetTimeout(SERVER_CALL_TIMEOUT);
(*http)->SetMaxActiveRequests(MAX_CONCURRENT_SERVER_CALLS);
rc_client_set_userdata(new_client, http->get());
*client = new_client;
return true;
}