[Ttssh2-commit] [3342] 認証処理を見直し

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 4月 23日 (木) 00:11:57 JST


Revision: 3342
          http://svn.sourceforge.jp/view?root=ttssh2&view=rev&rev=3342
Author:   maya
Date:     2009-04-23 00:11:57 +0900 (Thu, 23 Apr 2009)

Log Message:
-----------
認証処理を見直し
コメントを追加

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/auth.c
    trunk/ttssh2/ttxssh/ssh.c


-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/auth.c
===================================================================
--- trunk/ttssh2/ttxssh/auth.c	2009-04-22 13:36:25 UTC (rev 3341)
+++ trunk/ttssh2/ttxssh/auth.c	2009-04-22 15:11:57 UTC (rev 3342)
@@ -230,6 +230,7 @@
 	init_auth_machine_banner(pvar, dlg);
 	init_password_control(dlg);
 
+	// ”FØŽ¸”sŒã‚̓‰ƒxƒ‹‚ð‘‚«Š·‚¦
 	if (pvar->auth_state.failed_method != SSH_AUTH_NONE) {
 		/* must be retrying a failed attempt */
 		UTIL_get_lang_msg("DLG_AUTH_BANNER2_FAILED", pvar, "Authentication failed. Please retry.");
@@ -239,30 +240,52 @@
 		default_method = pvar->auth_state.failed_method;
 	}
 
-	// ƒzƒXƒgŠm”Fƒ_ƒCƒAƒƒO‚©‚甲‚¯‚½‚Æ‚«=ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚É‚È‚Á‚½‚Æ‚«
-	// ‚É SetFocus ‚ªŽÀs‚³‚êAƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚Å“n‚³‚ꂽ”FØ•ûŽ®‚ªã‘‚«‚³‚ê‚Ä
-	// ‚µ‚Ü‚¤‚̂ŁAŽ©“®ƒƒOƒCƒ“—LŒøŽž‚Í SetFocus ‚µ‚È‚¢ (2009.1.31 maya)
-	if (!pvar->ssh2_autologin) {
-		set_auth_options_status(dlg, auth_types_to_control_IDs[default_method]);
+	// ƒpƒXƒ[ƒh‚ðŠo‚¦‚Ä‚¨‚­ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ɂ̓fƒtƒHƒ‹ƒg‚Å—LŒø‚Æ‚·‚é (2006.8.3 yutaka)
+	if (pvar->ts_SSH->remember_password) {
+		SendMessage(GetDlgItem(dlg, IDC_REMEMBER_PASSWORD), BM_SETCHECK, BST_CHECKED, 0);
+	} else {
+		SendMessage(GetDlgItem(dlg, IDC_REMEMBER_PASSWORD), BM_SETCHECK, BST_UNCHECKED, 0);
+	}
 
-		if (default_method == SSH_AUTH_TIS) {
-			/* we disabled the password control, so fix the focus */
-			SetFocus(GetDlgItem(dlg, IDC_SSHUSETIS));
-		}
-		else if (default_method == SSH_AUTH_PAGEANT) {
-			SetFocus(GetDlgItem(dlg, IDC_SSHUSEPAGEANT));
-		}
+	// ForwardAgent ‚̐ݒè‚𔽉f‚·‚é (2008.12.4 maya)
+	CheckDlgButton(dlg, IDC_FORWARD_AGENT, pvar->settings.ForwardAgent);
+
+	// SSH ƒo[ƒWƒ‡ƒ“‚É‚æ‚Á‚Ä TIS ‚̃‰ƒxƒ‹‚ð‘‚«Š·‚¦
+	if (pvar->settings.ssh_protocol_version == 1) {
+		UTIL_get_lang_msg("DLG_AUTH_METHOD_CHALLENGE1", pvar,
+		                  "Use challenge/response to log in(&TIS)");
+		SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg);
+	} else {
+		UTIL_get_lang_msg("DLG_AUTH_METHOD_CHALLENGE2", pvar,
+		                  "Use &challenge/response to log in(keyboard-interactive)");
+		SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg);
 	}
 
 	if (pvar->auth_state.user != NULL) {
 		SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->auth_state.user);
 		EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
 		EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE);
-	} else if (pvar->session_settings.DefaultUserName[0] != 0) {
+	}
+	if (strlen(pvar->ssh2_username) > 0) {
+		SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->ssh2_username);
+		if (pvar->ssh2_autologin == 1) {
+			EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
+			EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE);
+		}
+	}
+	else if (pvar->session_settings.DefaultUserName[0] != 0) {
 		SetDlgItemText(dlg, IDC_SSHUSERNAME,
 		               pvar->session_settings.DefaultUserName);
 	}
 
+	if (strlen(pvar->ssh2_password) > 0) {
+		SetDlgItemText(dlg, IDC_SSHPASSWORD, pvar->ssh2_password);
+		if (pvar->ssh2_autologin == 1) {
+			EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE);
+			EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORDCAPTION), FALSE);
+		}
+	}
+
 	SetDlgItemText(dlg, IDC_RSAFILENAME,
 	               pvar->session_settings.DefaultRSAPrivateKeyFile);
 	SetDlgItemText(dlg, IDC_HOSTRSAFILENAME,
@@ -270,99 +293,62 @@
 	SetDlgItemText(dlg, IDC_LOCALUSERNAME,
 	               pvar->session_settings.DefaultRhostsLocalUserName);
 
-	update_server_supported_types(pvar, dlg);
+	if (pvar->ssh2_authmethod == SSH_AUTH_PASSWORD) {
+		CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSEPASSWORD);
 
-	// SSH2 autologin 
-	// ƒ†[ƒUAƒpƒXƒ[ƒhA”FØƒƒ\ƒbƒh‚ðŽ©“®Ý’肵‚āAˆê’莞ŠÔŒã‚ÉOKƒ{ƒ^ƒ“‚ð‰Ÿ‰º‚·‚éB
-	// 
-	// (2004.12.1 yutaka)
-	// (2005.1.26 yutaka) ŒöŠJŒ®”FØƒTƒ|[ƒg
-	// Ž©“®ƒƒOƒCƒ“‚Å‚È‚¢‚Æ‚«‚́AŽ©“®Ý’è‚Í‚·‚邪•ÏX‰Â”\ (2006.9.18 maya)
-#if 0
-	if (pvar->ssh2_autologin == 1) {
-#endif
-		if (strlen(pvar->ssh2_username) > 0) {
-			SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->ssh2_username);
-		}
-		if (pvar->ssh2_autologin == 1) {
-			EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
-			EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE);
-		}
+	} else if (pvar->ssh2_authmethod == SSH_AUTH_RSA) {
+		CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSERSA);
 
-		SetDlgItemText(dlg, IDC_SSHPASSWORD, pvar->ssh2_password);
+		SetDlgItemText(dlg, IDC_RSAFILENAME, pvar->ssh2_keyfile);
 		if (pvar->ssh2_autologin == 1) {
-			EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE);
-			EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORDCAPTION), FALSE);
+			EnableWindow(GetDlgItem(dlg, IDC_CHOOSERSAFILE), FALSE);
+			EnableWindow(GetDlgItem(dlg, IDC_RSAFILENAME), FALSE);
 		}
 
-		// '/I' Žw’肪‚ ‚é‚Æ‚«‚̂ݍŏ¬‰»‚·‚é (2005.9.5 yutaka)
-		if (pvar->ts->Minimize) {
-			//20050822’ljÁ start T.Takahashi
-			ShowWindow(dlg,SW_MINIMIZE);
-			//20050822’ljÁ end T.Takahashi
-		}
+	// /auth=challenge ‚ð’ljÁ (2007.10.5 maya)
+	} else if (pvar->ssh2_authmethod == SSH_AUTH_TIS) {
+		CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSETIS);
+		EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE);
+		SetDlgItemText(dlg, IDC_SSHPASSWORD, "");
 
-		if (pvar->ssh2_authmethod == SSH_AUTH_PASSWORD) {
-			CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSEPASSWORD);
+	// /auth=pageant ‚ð’ljÁ
+	} else if (pvar->ssh2_authmethod == SSH_AUTH_PAGEANT) {
+		CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSEPAGEANT);
+		EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE);
+		SetDlgItemText(dlg, IDC_SSHPASSWORD, "");
 
-		} else if (pvar->ssh2_authmethod == SSH_AUTH_RSA) {
-			CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSERSA);
+	} else {
+		// ƒfƒtƒHƒ‹ƒg‚Ì”FØƒƒ\ƒbƒh‚ðƒ_ƒCƒAƒƒO‚É”½‰f
+		set_auth_options_status(dlg, auth_types_to_control_IDs[default_method]);
 
-			SetDlgItemText(dlg, IDC_RSAFILENAME, pvar->ssh2_keyfile);
-			if (pvar->ssh2_autologin == 1) {
-				EnableWindow(GetDlgItem(dlg, IDC_CHOOSERSAFILE), FALSE);
-				EnableWindow(GetDlgItem(dlg, IDC_RSAFILENAME), FALSE);
-			}
+		update_server_supported_types(pvar, dlg);
 
-		// /auth=challenge ‚ð’ljÁ (2007.10.5 maya)
-		} else if (pvar->ssh2_authmethod == SSH_AUTH_TIS) {
-			CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSETIS);
-			EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE);
-			SetDlgItemText(dlg, IDC_SSHPASSWORD, "");
-
-		// /auth=pageant ‚ð’ljÁ
-		} else if (pvar->ssh2_authmethod == SSH_AUTH_PAGEANT) {
-			CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSEPAGEANT);
-			EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE);
-			SetDlgItemText(dlg, IDC_SSHPASSWORD, "");
-
-		} else {
-			// TODO
-
+		// ƒzƒXƒgŠm”Fƒ_ƒCƒAƒƒO‚©‚甲‚¯‚½‚Æ‚«=ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚É‚È‚Á‚½‚Æ‚«
+		// ‚É SetFocus ‚ªŽÀs‚³‚êAƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚Å“n‚³‚ꂽ”FØ•ûŽ®‚ªã‘‚«‚³‚ê‚Ä
+		// ‚µ‚Ü‚¤‚̂ŁAŽ©“®ƒƒOƒCƒ“—LŒøŽž‚Í SetFocus ‚µ‚È‚¢ (2009.1.31 maya)
+		if (default_method == SSH_AUTH_TIS) {
+			/* we disabled the password control, so fix the focus */
+			SetFocus(GetDlgItem(dlg, IDC_SSHUSETIS));
 		}
-
-		GetDlgItemText(dlg, IDC_SSHUSERNAME, uimsg, sizeof(uimsg));
-		if (uimsg[0] == 0) {
-			SetFocus(GetDlgItem(dlg, IDC_SSHUSERNAME));
+		else if (default_method == SSH_AUTH_PAGEANT) {
+			SetFocus(GetDlgItem(dlg, IDC_SSHUSEPAGEANT));
 		}
-		else if (pvar->ask4passwd == 1) {
-			SetFocus(GetDlgItem(dlg, IDC_SSHPASSWORD));
-		}
-#if 0
-	}
-#endif
 
-#if 1
-	if (pvar->settings.ssh_protocol_version == 1) {
-		UTIL_get_lang_msg("DLG_AUTH_METHOD_CHALLENGE1", pvar,
-		                  "Use challenge/response to log in(&TIS)");
-		SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg);
-	} else {
-		UTIL_get_lang_msg("DLG_AUTH_METHOD_CHALLENGE2", pvar,
-		                  "Use &challenge/response to log in(keyboard-interactive)");
-		SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg);
 	}
-#endif
 
-	// ƒpƒXƒ[ƒh‚ðŠo‚¦‚Ä‚¨‚­ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ɂ̓fƒtƒHƒ‹ƒg‚Å—LŒø‚Æ‚·‚é (2006.8.3 yutaka)
-	if (pvar->ts_SSH->remember_password) {
-		SendMessage(GetDlgItem(dlg, IDC_REMEMBER_PASSWORD), BM_SETCHECK, BST_CHECKED, 0);
-	} else {
-		SendMessage(GetDlgItem(dlg, IDC_REMEMBER_PASSWORD), BM_SETCHECK, BST_UNCHECKED, 0);
+	if (GetWindowTextLength(GetDlgItem(dlg, IDC_SSHUSERNAME)) == 0) {
+		SetFocus(GetDlgItem(dlg, IDC_SSHUSERNAME));
 	}
+	else if (pvar->ask4passwd == 1) {
+		SetFocus(GetDlgItem(dlg, IDC_SSHPASSWORD));
+	}
 
-	// settings ‚©‚猻Ý‚̐ݒè‚ðŽ‚Á‚Ä‚­‚é (2008.12.4 maya)
-	CheckDlgButton(dlg, IDC_FORWARD_AGENT, pvar->settings.ForwardAgent);
+	// '/I' Žw’肪‚ ‚é‚Æ‚«‚̂ݍŏ¬‰»‚·‚é (2005.9.5 yutaka)
+	if (pvar->ts->Minimize) {
+		//20050822’ljÁ start T.Takahashi
+		ShowWindow(dlg,SW_MINIMIZE);
+		//20050822’ljÁ end T.Takahashi
+	}
 }
 
 static char FAR *alloc_control_text(HWND ctl)
@@ -638,9 +624,9 @@
 static BOOL CALLBACK auth_dlg_proc(HWND dlg, UINT msg, WPARAM wParam,
                                    LPARAM lParam)
 {
-	const int IDC_TIMER1 = 300; // Ž©“®ƒƒOƒCƒ“
-	const int IDC_TIMER2 = 301; // ƒTƒ|[ƒg‚³‚ê‚Ä‚¢‚郁ƒ\ƒbƒh‚ðƒ`ƒFƒbƒN
-	const int IDC_TIMER3 = 302; // ƒ`ƒƒƒŒƒ“ƒWƒŒƒXƒ|ƒ“ƒX
+	const int IDC_TIMER1 = 300; // Ž©“®ƒƒOƒCƒ“‚ª—LŒø‚È‚Æ‚«
+	const int IDC_TIMER2 = 301; // ƒTƒ|[ƒg‚³‚ê‚Ä‚¢‚郁ƒ\ƒbƒh‚ðŽ©“®ƒ`ƒFƒbƒN(CheckAuthListFirst)
+	const int IDC_TIMER3 = 302; // challenge ‚Å ask4passwd ‚ÅCheckAuthListFirst ‚ª FALSE ‚Ì‚Æ‚«
 	const int autologin_timeout = 10; // ƒ~ƒŠ•b
 	PTInstVar pvar;
 	LOGFONT logfont;
@@ -696,10 +682,11 @@
 			    GetWindowTextLength(GetDlgItem(dlg, IDC_SSHUSERNAME)) > 0) {
 				SetTimer(dlg, IDC_TIMER2, autologin_timeout, 0);
 			}
-			// /auth=challenge ‚ªŽw’肳‚ê‚Ä‚¢‚ㆁ[ƒU–¼‚ªŠm’肵‚Ä‚¢‚È‚¢
-			// ‚Æ‚¢‚¤‚±‚Æ‚Í‚È‚¢‚ÆŽv‚í‚ê‚é‚̂ŁAOK ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä
-			// TIS auth ƒ_ƒCƒAƒƒO‚ðo‚·
-			else {
+			// /auth=challenge ‚Æ /ask4passwd ‚ªŽw’肳‚ê‚Ä‚¢‚ㆁ[ƒU–¼‚ªŠm’肵‚Ä‚¢‚é
+			// ê‡‚́AOK ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä TIS auth ƒ_ƒCƒAƒƒO‚ðo‚·
+			else if (pvar->ssh2_authmethod == SSH_AUTH_TIS &&
+			         pvar->ask4passwd &&
+			         GetWindowTextLength(GetDlgItem(dlg, IDC_SSHUSERNAME)) > 0) {
 				SetTimer(dlg, IDC_TIMER3, autologin_timeout, 0);
 			}
 		}
@@ -716,22 +703,33 @@
 				    pvar->session_settings.CheckAuthListFirst &&
 				    !pvar->tryed_ssh2_authlist) {
 					if (!autologin_sent_none) {
+						autologin_sent_none = TRUE;
+
 						// ƒ_ƒCƒAƒƒO‚̃†[ƒU–¼‚ðŽæ“¾‚·‚é
 						if (pvar->auth_state.user == NULL) {
 							pvar->auth_state.user =
 								alloc_control_text(GetDlgItem(dlg, IDC_SSHUSERNAME));
 						}
 
-						// AuthList ‚ª‹A‚Á‚Ä‚«‚Ä‚¢‚È‚¢‚Æ IDOK ‚ð‰Ÿ‚µ‚Ä‚à
-						// i‚Ü‚È‚¢‚̂ŁA”FØƒƒ\ƒbƒh none ‚ð‘—‚é (2008.10.12 maya)
+						// CheckAuthListFirst ‚ª TRUE ‚Ì‚Æ‚«‚Í AuthList ‚ª‹A‚Á‚Ä‚«‚Ä‚¢‚È‚¢‚Æ
+						// IDOK ‚ð‰Ÿ‚µ‚Ä‚ài‚Ü‚È‚¢‚̂ŁA”FØƒƒ\ƒbƒh none ‚ð‘—‚é (2008.10.12 maya)
 						do_SSH2_userauth(pvar);
-						autologin_sent_none = TRUE;
 					}
 					//else {
 					//	none ‚ð‘—‚Á‚Ä‚©‚ç‹A‚Á‚Ä‚­‚é‚Ü‚Å‘Ò‚Â
 					//}
 				}
 				else {
+					// SSH1 ‚Ì‚Æ‚«
+					// ‚Ü‚½‚Í CheckAuthListFirst ‚ª FALSE ‚Ì‚Æ‚«
+					// ‚Ü‚½‚Í CheckAuthListFirst TRUE ‚ŁAauthlist ‚ª‹A‚Á‚Ä‚«‚½‚ ‚Æ
+
+					// ƒ_ƒCƒAƒƒO‚̃†[ƒU–¼‚ðŽæ“¾‚·‚é
+					if (pvar->auth_state.user == NULL) {
+						pvar->auth_state.user =
+							alloc_control_text(GetDlgItem(dlg, IDC_SSHUSERNAME));
+					}
+
 					KillTimer(dlg, IDC_TIMER1);
 					SendMessage(dlg, WM_COMMAND, IDOK, 0);
 				}
@@ -753,17 +751,16 @@
 					// ƒ†[ƒU–¼‚ð•ÏX‚³‚¹‚È‚¢
 					EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
 
-					// none ‚ð‘—‚é
+					// ”FØƒƒ\ƒbƒh none ‚ð‘—‚é
 					do_SSH2_userauth(pvar);
 
-					// TIS —p‚É OK ‚ð‰Ÿ‚·ƒ^ƒCƒ}[‚ðŽdŠ|‚¯‚é‚Ì‚Í
-					// ”FØ‚ÉŽ¸”s‚µ‚½‚ ‚Æ‚É‚µ‚È‚¢‚Æ
+					// TIS —p‚É OK ‚ð‰Ÿ‚·‚Ì‚Í”FØ‚ÉŽ¸”s‚µ‚½‚ ‚Æ‚É‚µ‚È‚¢‚Æ
 					// Unexpected SSH2 message ‚É‚È‚éB
 				}
 			}
 			else if (SSHv1(pvar)) {
 				KillTimer(dlg, IDC_TIMER2);
-				// TIS —p‚É OK ‚ð‰Ÿ‚·ƒ^ƒCƒ}[‚ðŽdŠ|‚¯‚é
+				// TIS —p‚É OK ‚ð‰Ÿ‚·
 				if (pvar->ssh2_authmethod == SSH_AUTH_TIS) {
 					SendMessage(dlg, WM_COMMAND, IDOK, 0);
 				}
@@ -841,7 +838,7 @@
 					// ƒ†[ƒU–¼‚ð•ÏX‚³‚¹‚È‚¢
 					EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
 
-					// none ‚ð‘—‚é
+					// ”FØƒƒ\ƒbƒh none ‚ð‘—‚é
 					do_SSH2_userauth(pvar);
 					return TRUE;
 				}

Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2009-04-22 13:36:25 UTC (rev 3341)
+++ trunk/ttssh2/ttxssh/ssh.c	2009-04-22 15:11:57 UTC (rev 3342)
@@ -7277,30 +7277,20 @@
 		pvar->ssh2_authlist = cstring; // •s—v‚É‚È‚Á‚½‚çƒtƒŠ[‚·‚邱‚Æ
 		_snprintf_s(buf, sizeof(buf), _TRUNCATE, "method list from server: %s", cstring);
 		notify_verbose_message(pvar, buf, LOG_LEVEL_VERBOSE);
-#if 0
-		if (!pvar->session_settings.CheckAuthListFirst ||
-		    pvar->ssh2_autologin == 1) {
-			// ‚Ü‚¸ none ‚ÅŽŽs‚µ‚Ä•Ô‚Á‚Ä‚«‚½‚Æ‚±‚ë‚Ȃ̂ŁAŽÀÛ‚̃ƒOƒCƒ“ˆ—‚Ö
-			do_SSH2_authrequest(pvar);
-		}
-		else {
-			// TIS —p‚É OK ‚ð‰Ÿ‚·ƒ^ƒCƒ}[‚ðŽdŠ|‚¯‚é
-			if (pvar->ssh2_authmethod == SSH_AUTH_TIS &&
-			    pvar->auth_state.auth_dialog != NULL) {
-				SendMessage(pvar->auth_state.auth_dialog, WM_COMMAND, IDOK, 0);
-			}
-		}
-#else
-		// ‚ЂƂ܂¸ none ‚ÅŽŽs‚µ‚Ä•Ô‚Á‚Ä‚«‚½‚Æ‚±‚ë‚Ȃ̂ŁAŽÀÛ‚̃ƒOƒCƒ“ˆ—‚Ö
+
 		if (pvar->ssh2_authmethod == SSH_AUTH_TIS &&
-		    (pvar->ask4passwd || pvar->ssh2_autologin) &&
+		    pvar->ask4passwd &&
+		    pvar->session_settings.CheckAuthListFirst &&
 		    pvar->auth_state.auth_dialog != NULL) {
+			// challenge ‚Å ask4passwd ‚Ì‚Æ‚«A”FØƒƒ\ƒbƒhˆê——‚ðŽ©“®Žæ“¾‚µ‚½Œã
+			// Ž©“®“I‚É TIS ƒ_ƒCƒAƒƒO‚ðo‚·‚½‚ß‚É OK ‚ð‰Ÿ‚·
 			SendMessage(pvar->auth_state.auth_dialog, WM_COMMAND, IDOK, 0);
 		}
 		else {
+			// ‚ЂƂ܂¸ none ‚ÅŽŽs‚µ‚Ä•Ô‚Á‚Ä‚«‚½‚Æ‚±‚ë‚Ȃ̂ŁAŽÀÛ‚̃ƒOƒCƒ“ˆ—‚Ö
 			do_SSH2_authrequest(pvar);
 		}
-#endif
+
 		return TRUE;
 	}
 



Ttssh2-commit メーリングリストの案内
Back to archive index