diff options
-rw-r--r-- | protocols/Steam/src/steam_account.cpp | 6 | ||||
-rw-r--r-- | protocols/Steam/src/steam_dialogs.cpp | 20 | ||||
-rw-r--r-- | protocols/Steam/src/steam_dialogs.h | 7 |
3 files changed, 19 insertions, 14 deletions
diff --git a/protocols/Steam/src/steam_account.cpp b/protocols/Steam/src/steam_account.cpp index 2ed21e78dc..9ea391ad95 100644 --- a/protocols/Steam/src/steam_account.cpp +++ b/protocols/Steam/src/steam_account.cpp @@ -115,7 +115,7 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) ptrA timestamp(getStringA("RsaTimestamp"));
PushRequest(
- new SteamWebApi::AuthorizationRequest(username, password, timestamp, ptrA(guardDialog.GetGuardCode())),
+ new SteamWebApi::AuthorizationRequest(username, password, timestamp, guardDialog.GetGuardCode()),
&CSteamProto::OnAuthorization);
return;
}
@@ -138,14 +138,12 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) return;
}
- CallService(MS_NETLIB_FREEHTTPREQUESTSTRUCT, 0, (LPARAM)response);
-
ptrA username(mir_utf8encodeW(getWStringA("Username")));
ptrA password(getStringA("EncryptedPassword"));
ptrA timestamp(getStringA("RsaTimestamp"));
PushRequest(
- new SteamWebApi::AuthorizationRequest(username, password, timestamp, captchaId, ptrA(captchaDialog.GetCaptchaText())),
+ new SteamWebApi::AuthorizationRequest(username, password, timestamp, captchaId, captchaDialog.GetCaptchaText()),
&CSteamProto::OnAuthorization);
return;
}
diff --git a/protocols/Steam/src/steam_dialogs.cpp b/protocols/Steam/src/steam_dialogs.cpp index 13df916cf0..c071c7cc84 100644 --- a/protocols/Steam/src/steam_dialogs.cpp +++ b/protocols/Steam/src/steam_dialogs.cpp @@ -59,6 +59,7 @@ void CSteamGuardDialog::OnInitDialog() void CSteamGuardDialog::OnOk(CCtrlButton*)
{
+ mir_strncpy(m_guardCode, ptrA(m_text.GetTextA()), SIZEOF(m_guardCode) + 1);
EndDialog(m_hwnd, 1);
}
@@ -67,16 +68,17 @@ void CSteamGuardDialog::OnClose() Utils_SaveWindowPosition(m_hwnd, NULL, m_proto->m_szModuleName, "GuardWindow");
}
-char * CSteamGuardDialog::GetGuardCode()
+const char* CSteamGuardDialog::GetGuardCode()
{
- return m_text.GetTextA();
+ return m_guardCode;
}
/////////////////////////////////////////////////////////////////////////////////
CSteamCaptchaDialog::CSteamCaptchaDialog(CSteamProto *proto, BYTE *captchaImage, int captchaImageSize) :
- CSuper(proto, IDD_GUARD, false),
- m_ok(this, IDOK), m_text(this, IDC_TEXT)
+ CSuper(proto, IDD_CAPTCHA, false),
+ m_ok(this, IDOK), m_text(this, IDC_TEXT),
+ m_captchaImage(NULL)
{
m_captchaImageSize = captchaImageSize;
m_captchaImage = (BYTE*)mir_alloc(captchaImageSize);
@@ -86,7 +88,8 @@ CSteamCaptchaDialog::CSteamCaptchaDialog(CSteamProto *proto, BYTE *captchaImage, CSteamCaptchaDialog::~CSteamCaptchaDialog()
{
- mir_free(m_captchaImage);
+ if(m_captchaImage)
+ mir_free(m_captchaImage);
}
void CSteamCaptchaDialog::OnInitDialog()
@@ -96,13 +99,14 @@ void CSteamCaptchaDialog::OnInitDialog() SendMessage(m_hwnd, WM_SETICON, ICON_BIG, (LPARAM)Skin_GetIcon(iconName, 16));
SendMessage(m_hwnd, WM_SETICON, ICON_SMALL, (LPARAM)Skin_GetIcon(iconName, 32));
- SendMessage(m_text.GetHwnd(), EM_LIMITTEXT, 5, 0);
+ SendMessage(m_text.GetHwnd(), EM_LIMITTEXT, 6, 0);
Utils_RestoreWindowPosition(m_hwnd, NULL, m_proto->m_szModuleName, "CaptchaWindow");
}
void CSteamCaptchaDialog::OnOk(CCtrlButton*)
{
+ mir_strncpy(m_captchaText, ptrA(m_text.GetTextA()), SIZEOF(m_captchaText) + 1);
EndDialog(m_hwnd, 1);
}
@@ -158,9 +162,9 @@ INT_PTR CSteamCaptchaDialog::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) return FALSE;
}
-char * CSteamCaptchaDialog::GetCaptchaText()
+const char* CSteamCaptchaDialog::GetCaptchaText()
{
- return m_text.GetTextA();
+ return m_captchaText;
}
/////////////////////////////////////////////////////////////////////////////////
diff --git a/protocols/Steam/src/steam_dialogs.h b/protocols/Steam/src/steam_dialogs.h index 768d87c75c..d98eac7222 100644 --- a/protocols/Steam/src/steam_dialogs.h +++ b/protocols/Steam/src/steam_dialogs.h @@ -32,6 +32,7 @@ private: typedef CSteamDlgBase CSuper;
char m_domain[32];
+ char m_guardCode[5];
CCtrlEdit m_text;
CCtrlButton m_ok;
@@ -45,7 +46,7 @@ protected: public:
CSteamGuardDialog(CSteamProto *proto, char *domain);
- char *GetGuardCode();
+ const char *GetGuardCode();
};
/////////////////////////////////////////////////////////////////////////////////
@@ -55,6 +56,8 @@ class CSteamCaptchaDialog : public CSteamDlgBase private:
typedef CSteamDlgBase CSuper;
+ char m_captchaText[6];
+
BYTE *m_captchaImage;
int m_captchaImageSize;
@@ -72,7 +75,7 @@ public: CSteamCaptchaDialog(CSteamProto *proto, BYTE *captchaImage, int captchaImageSize);
~CSteamCaptchaDialog();
- char *GetCaptchaText();
+ const char *GetCaptchaText();
};
/////////////////////////////////////////////////////////////////////////////////
|