Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/auth.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3011 by maya, Sat Sep 22 16:10:45 2007 UTC revision 3015 by maya, Sun Sep 30 14:03:02 2007 UTC
# Line 569  static BOOL CALLBACK auth_dlg_proc(HWND Line 569  static BOOL CALLBACK auth_dlg_proc(HWND
569                                     LPARAM lParam)                                     LPARAM lParam)
570  {  {
571          const int IDC_TIMER1 = 300;          const int IDC_TIMER1 = 300;
572            const int IDC_TIMER2 = 301;
573          const int autologin_timeout = 10; // ミリ秒          const int autologin_timeout = 10; // ミリ秒
574          PTInstVar pvar;          PTInstVar pvar;
575          LOGFONT logfont;          LOGFONT logfont;
# Line 613  static BOOL CALLBACK auth_dlg_proc(HWND Line 614  static BOOL CALLBACK auth_dlg_proc(HWND
614                  if (pvar->ssh2_autologin == 1) {                  if (pvar->ssh2_autologin == 1) {
615                          SetTimer(dlg, IDC_TIMER1, autologin_timeout, 0);                          SetTimer(dlg, IDC_TIMER1, autologin_timeout, 0);
616                  }                  }
617                    else {
618                            // サポートされているメソッドをチェックする。(2007.9.24 maya)
619                            // 設定が有効で、まだ取りに行っておらず、ユーザ名が確定している
620                            if (pvar->session_settings.CheckAuthListFirst &&
621                                !pvar->tryed_ssh2_authlist) {
622                                    // ダイアログのユーザ名を反映
623                                    if (pvar->auth_state.user == NULL) {
624                                            pvar->auth_state.user =
625                                                    alloc_control_text(GetDlgItem(dlg, IDC_SSHUSERNAME));
626                                    }
627                                    if (strlen(pvar->auth_state.user) > 0) {
628                                            SetTimer(dlg, IDC_TIMER2, autologin_timeout, 0);
629                                    }
630                                    else {
631                                            // ユーザ名の KILLFOCUS 時にチェックするため
632                                            pvar->auth_state.user = NULL;
633                                    }
634                            }
635                    }
636                  return FALSE;                   /* because we set the focus */                  return FALSE;                   /* because we set the focus */
637    
638          case WM_TIMER:          case WM_TIMER:
639                  pvar = (PTInstVar) GetWindowLong(dlg, DWL_USER);                  pvar = (PTInstVar) GetWindowLong(dlg, DWL_USER);
640                  // 認証準備ができてから、認証データを送信する。早すぎると、落ちる。(2004.12.16 yutaka)                  // 認証準備ができてから、認証データを送信する。早すぎると、落ちる。(2004.12.16 yutaka)
641                  if (!(pvar->ssh_state.status_flags & STATUS_DONT_SEND_USER_NAME)) {                  if (wParam == IDC_TIMER1) {
642                          KillTimer(dlg, IDC_TIMER1);                          // 自動ログインのため
643                          SendMessage(dlg, WM_COMMAND, IDOK, 0);                          if (!(pvar->ssh_state.status_flags & STATUS_DONT_SEND_USER_NAME)) {
644                                    KillTimer(dlg, IDC_TIMER1);
645                                    SendMessage(dlg, WM_COMMAND, IDOK, 0);
646                            }
647                  }                  }
648                  return TRUE;                  else if (wParam == IDC_TIMER2) {
649                            // authlist を得るため
650                            if (!(pvar->ssh_state.status_flags & STATUS_DONT_SEND_USER_NAME)) {
651                                    // WM_INITDIALOG 時点ではプロトコルバージョンが分からない
652                                    if (SSHv2(pvar)) {
653                                            KillTimer(dlg, IDC_TIMER2);
654    
655                                            // ユーザ名を変更させない
656                                            EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
657    
658                                            // none を送る
659                                            do_SSH2_userauth(pvar);
660                                    }
661                                    else {
662                                            // SSH2 でない場合は none を送らない
663                                            KillTimer(dlg, IDC_TIMER2);
664                                    }
665                            }
666                    }
667                    return FALSE;
668    
669          case WM_COMMAND:          case WM_COMMAND:
670                  pvar = (PTInstVar) GetWindowLong(dlg, DWL_USER);                  pvar = (PTInstVar) GetWindowLong(dlg, DWL_USER);
# Line 647  static BOOL CALLBACK auth_dlg_proc(HWND Line 689  static BOOL CALLBACK auth_dlg_proc(HWND
689    
690                          return TRUE;                          return TRUE;
691    
692                    case IDC_SSHUSERNAME:
693                            // ユーザ名がフォーカスを失ったとき (2007.9.29 maya)
694                            if (!(pvar->ssh_state.status_flags & STATUS_DONT_SEND_USER_NAME) &&
695                                HIWORD(wParam) == EN_KILLFOCUS) {
696                                    // 設定が有効でまだ取りに行っていないなら
697                                    if (SSHv2(pvar) &&
698                                            pvar->session_settings.CheckAuthListFirst &&
699                                            !pvar->tryed_ssh2_authlist) {
700                                            // ダイアログのユーザ名を反映
701                                            if (pvar->auth_state.user == NULL) {
702                                                    pvar->auth_state.user =
703                                                            alloc_control_text(GetDlgItem(dlg, IDC_SSHUSERNAME));
704                                            }
705    
706                                            // ユーザ名を変更させない
707                                            EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE);
708    
709                                            // none を送る
710                                            do_SSH2_userauth(pvar);
711                                            return TRUE;
712                                    }
713                            }
714    
715                            return FALSE;
716    
717                  case IDC_SSHUSEPASSWORD:                  case IDC_SSHUSEPASSWORD:
718                  case IDC_SSHUSERSA:                  case IDC_SSHUSERSA:
719                  case IDC_SSHUSERHOSTS:                  case IDC_SSHUSERHOSTS:

Legend:
Removed from v.3011  
changed lines
  Added in v.3015

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26