Skip to content

Commit 5bfa7a6

Browse files
committed
ManualDispatchCallbackFix
1 parent e8e7b4f commit 5bfa7a6

2 files changed

Lines changed: 0 additions & 50 deletions

File tree

dll/dll/steam_client.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,6 @@ public ISteamClient
110110
private:
111111
bool user_logged_in = false;
112112
bool server_init = false;
113-
114-
// SteamServersConnected_t must be fired on the user/client pipe shortly after login
115-
// Without this: Games relying on this callback for matchmaking/server browser will get stuck
116-
// in GetNextCallback forever waiting for a "connected" signal that never arrives
117-
bool client_servers_connected_sent = false;
118-
std::chrono::high_resolution_clock::time_point client_logon_time{};
119113

120114
std::atomic_bool cb_run_active = false;
121115
std::atomic<unsigned long long> last_cb_run{};

dll/steam_client.cpp

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,6 @@ void Steam_Client::background_thread_proc()
3333
network->Run(); // networking must run first since it receives messages used by each run_callback()
3434
run_every_runcb->run(); // call each run_callback()
3535

36-
// Fire SteamServersConnected_t and PersonaStateChange_t once after login
37-
if (IsUserLogIn() && !client_servers_connected_sent) {
38-
if (check_timedout(client_logon_time, 0.1)) {
39-
client_servers_connected_sent = true;
40-
settings_client->set_offline(false);
41-
42-
SteamServersConnected_t conn{};
43-
PersonaStateChange_t persona{};
44-
persona.m_ulSteamID = settings_client->get_local_steam_id().ConvertToUint64();
45-
persona.m_nChangeFlags = k_EPersonaChangeName;
46-
47-
if (callback_results_client->isManualDispatch()) {
48-
callback_results_client->triggerCbAll(&conn, conn.k_iCallback, sizeof(conn));
49-
callback_results_client->triggerCbAll(&persona, persona.k_iCallback, sizeof(persona));
50-
} else {
51-
callbacks_client->addCBResult(conn.k_iCallback, &conn, sizeof(conn));
52-
callbacks_client->addCBResult(persona.k_iCallback, &persona, sizeof(persona));
53-
}
54-
}
55-
}
56-
5736
// Flush call results into ManualDispatch queue; guard keeps CCallbackBase::Run() off this thread
5837
if (IsUserLogIn() && callback_results_client->isManualDispatch()) {
5938
callback_results_client->runCallResults();
@@ -291,8 +270,6 @@ void Steam_Client::userLogIn()
291270
callback_results_client->clear();
292271
network->addListenId(settings_client->get_local_steam_id());
293272
user_logged_in = true;
294-
client_servers_connected_sent = false;
295-
client_logon_time = std::chrono::high_resolution_clock::now();
296273
}
297274

298275
void Steam_Client::serverInit()
@@ -1042,27 +1019,6 @@ void Steam_Client::RunCallbacks(bool runClientCB, bool runGameserverCB)
10421019
// PRINT_DEBUG("run_every_runcb *********");
10431020
run_every_runcb->run();
10441021

1045-
// Fire SteamServersConnected_t and PersonaStateChange_t once after login
1046-
if (runClientCB && IsUserLogIn() && !client_servers_connected_sent) {
1047-
if (check_timedout(client_logon_time, 0.1)) {
1048-
client_servers_connected_sent = true;
1049-
settings_client->set_offline(false);
1050-
1051-
SteamServersConnected_t conn{};
1052-
PersonaStateChange_t persona{};
1053-
persona.m_ulSteamID = settings_client->get_local_steam_id().ConvertToUint64();
1054-
persona.m_nChangeFlags = k_EPersonaChangeName;
1055-
1056-
if (callback_results_client->isManualDispatch()) {
1057-
callback_results_client->triggerCbAll(&conn, conn.k_iCallback, sizeof(conn));
1058-
callback_results_client->triggerCbAll(&persona, persona.k_iCallback, sizeof(persona));
1059-
} else {
1060-
callbacks_client->addCBResult(conn.k_iCallback, &conn, sizeof(conn));
1061-
callbacks_client->addCBResult(persona.k_iCallback, &persona, sizeof(persona));
1062-
}
1063-
}
1064-
}
1065-
10661022
// PRINT_DEBUG("steam_gameserver *********");
10671023
steam_gameserver->RunCallbacks();
10681024

0 commit comments

Comments
 (0)