Ratha, good investigation. I just fixed the unending connection with "clear password field" error: https://github.com/miranda-ng/miranda-ng/commit/d00b3533e7d0529e8b47f5684d564d3c2ec25a4d
But cause of it is still unknown for me. To recapitulate - when user uses e-mail as login, then it won't work no matter what password user enters? If you use same password with non-e-mail login, then it connects without problems? So problem is with wrong login procedure or wrong hashing password in case user uses e-mail as login? I may check later how Pidgin does it and if we differ somehow.
EDIT: To clarify something that might not be clear: Very old Steam accounts (~10-13+ years) allowed (and possibly required?) people to use an email address for their login name. So a steam account either has a username, -or- an email address as its login name. An account can only have one login name, and it cant be changed. (Just to be clear that you cant login with both your current email address and your username. You can only login with your username, and if you have an old account, its probably an email address.)
@SpinalBlood: Correct, you dont need to answer any of the strike-through text questions, however can you confirm that the (new) account that you can login properly with does not use an email address as the login name, but that the one that you cant login with (the old one) does? And can you list all of the special characters that are in that login name? Is it just an @, or is there also a period, or anything else?
@Robyer: It seems that when using a valid email login name with a valid password, that the plugin reports both "CSteamProto::OnAuthorizationError: The account name or password that you have entered is incorrect." and "CSteamProto::OnAuthorizationError: clear password field" (This almost makes me think that the server is waiting for the user to input a new password but theres no password popup from Miranda to satisfy it, so it just sits there indefinitely. Could the solution be as simple as needing to transmit the username first and then the password, instead of sending them both together? Or to perhaps re-transmit the password once that field has popped up?)
(I believe that this is indicating an invalid password has been transmitted, and not an invalid account name because according to my testing, an invalid account name always seems to properly terminate the connection, so if Miranda wasnt sending the email account name properly, I'd expect it to come back as an invalid account and close the connection. However, both an email address login with the correct password, and a non-email address login with the wrong password seem to get stuck with the "CSteamProto::OnAuthorizationError: clear password field" message as the last message in the netlog.
Quick recap:
1: Tested same password on separate email and non-email Steam accounts. (Completely unable to login to account with email username using Miranda.)
2: Valid account (regular login), wrong password = stuck.
3: Valid account (email login), correct password = stuck.
4: Non-valid account = not stuck.
Without making a whole bunch of new accounts to test logging in with, here are the errors for 4 different non-existing accounts. (I dont believe any of these 'got stuck' though i did trigger a captcha warning and had to stop testing.) The only thing that stands out to me as relevant was that when logging in with a valid email-based username, it stops at the "clear password field" error. This makes me think its transmitting the username correctly, because all of the invalid accounts below dont stop with that error. So the problem -seems- to be the password portion of the transmission, but.. only when an email address is used as the username.
"ThisAccountDoesNotExist1" ========== [2DB0] CSteamProto::OnAuthorizationError: The account name or password that you have entered is incorrect.
"ThisAccountDoesNotExist1.com" ======= [161C] CSteamProto::OnAuthorizationError: The account name or password that you have entered is incorrect. (Triggered "captcha needed" too many login attempts.)
"ThisAccountDoesNotExist1@google" ==== [2E74] CSteamProto::OnAuthorizationError: Incorrect account name or password. Remember that your email address may not match your account name.
"ThisAccountDoesNotExist1@google.com" = [2E74] CSteamProto::OnAuthorizationError: Incorrect account name or password. Remember that your email address may not match your account name.