summaryrefslogtreecommitdiff
path: root/protocols/Steam/src/steam_login.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Steam/src/steam_login.cpp')
-rw-r--r--protocols/Steam/src/steam_login.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/protocols/Steam/src/steam_login.cpp b/protocols/Steam/src/steam_login.cpp
index 32a418d848..3c077f4dde 100644
--- a/protocols/Steam/src/steam_login.cpp
+++ b/protocols/Steam/src/steam_login.cpp
@@ -27,6 +27,12 @@ void CSteamProto::Login()
SendRequest(new GetRsaKeyRequest(username), &CSteamProto::OnGotRsaKey);
}
+void CSteamProto::LoginFailed()
+{
+ m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE;
+ ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_FAILED, (HANDLE)m_iStatus, m_iStatus);
+}
+
void CSteamProto::Logout()
{
ptrA token(getStringA("TokenSecret"));
@@ -38,6 +44,21 @@ void CSteamProto::Logout()
ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)m_iStatus, m_iStatus);
}
+void CSteamProto::OnGotHosts(const JSONNode &root, void*)
+{
+ db_delete_module(0, STEAM_MODULE);
+
+ int i = 0;
+ CMStringA szSetting;
+ for (auto &it : root["response"]["serverlist_websockets"]) {
+ szSetting.Format("Host%d", i++);
+ db_set_ws(0, STEAM_MODULE, szSetting, it.as_mstring());
+ }
+
+ db_set_dw(0, STEAM_MODULE, DBKEY_HOSTS_COUNT, i);
+ db_set_dw(0, STEAM_MODULE, DBKEY_HOSTS_DATE, time(0));
+}
+
void CSteamProto::OnGotRsaKey(const JSONNode &root, void *)
{
if (root.isnull()) {