svnno****@sourc*****
svnno****@sourc*****
2017年 3月 23日 (木) 21:55:03 JST
Revision: 6658 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6658 Author: doda Date: 2017-03-23 21:55:03 +0900 (Thu, 23 Mar 2017) Log Message: ----------- SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ を処理するようにした。 ticket:37052 テスト用のサーバに新パスワードが渡っている所まで確認。 テスト用のサーバが手抜きなで、新パスワード付きの SSH_MSG_USERAUTH_REQUEST の 後の処理がちゃんと動かないので、ログインまで問題なく動くかは未確認。 Modified Paths: -------------- trunk/ttssh2/ttxssh/ssh.c -------------- next part -------------- Modified: trunk/ttssh2/ttxssh/ssh.c =================================================================== --- trunk/ttssh2/ttxssh/ssh.c 2017-03-23 12:55:00 UTC (rev 6657) +++ trunk/ttssh2/ttxssh/ssh.c 2017-03-23 12:55:03 UTC (rev 6658) @@ -6455,18 +6455,14 @@ // Pageant SSH2_dispatch_add_message(SSH2_MSG_USERAUTH_PK_OK); } + else if (pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) { + SSH2_dispatch_add_message(SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ); + } SSH2_dispatch_add_message(SSH2_MSG_USERAUTH_SUCCESS); SSH2_dispatch_add_message(SSH2_MSG_USERAUTH_FAILURE); SSH2_dispatch_add_message(SSH2_MSG_USERAUTH_BANNER); SSH2_dispatch_add_message(SSH2_MSG_DEBUG); // support for authorized_keys command (2006.2.23 yutaka) - // XXX: \x83p\x83X\x83\x8F\x81[\x83h\x95ύX\x91Ή\x9E\x81B - // \x82\xBD\x82\xBE\x82\xB5\x81AOpenSSH\x82\xE2OpenSolaris(SSH-2.0-Sun_SSH_1.3)\x82ł́A\x82\xB1\x82̃\x81\x83b\x83Z\x81[\x83W\x82𑗂\xC1\x82Ă\xB1\x82Ȃ\xA2\x82\xBD\x82߁A - // \x96\xA2\x95]\x89\xBF\x81B\x82䂦\x82ɁA\x8E\xC0\x91\x95\x82͂\xB5\x82\xBD\x82\xAA\x81A\x8AJ\x95\xFA\x82͂\xB5\x82Ȃ\xA2\x81B - // (2010.11.11 yutaka) -#if 0 - SSH2_dispatch_add_message(SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ); -#endif return do_SSH2_authrequest(pvar); } @@ -7008,9 +7004,7 @@ return handle_SSH2_userauth_pkok(pvar); } else if (pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) { - // TODO - // return handle_SSH2_userauth_passwd_changereq(pvar) { - return FALSE; + return handle_SSH2_userauth_passwd_changereq(pvar); } else { return FALSE; @@ -7235,10 +7229,11 @@ static BOOL CALLBACK passwd_change_dialog(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { char retype_passwd[PASSWD_MAXLEN]; - struct change_password *cp = (struct change_password *)lParam; + static struct change_password *cp; switch (msg) { case WM_INITDIALOG: + cp = (struct change_password *)lParam; return TRUE; case WM_COMMAND: