Develop and Download Open Source Software

Browse Subversion Repository

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

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

revision 4477 by maya, Mon May 30 13:42:59 2011 UTC revision 4479 by yutakapon, Wed Jun 1 14:53:36 2011 UTC
# Line 7415  void ssh2_channel_send_close(PTInstVar p Line 7415  void ssh2_channel_send_close(PTInstVar p
7415    
7416    
7417  #define WM_SENDING_FILE (WM_USER + 1)  #define WM_SENDING_FILE (WM_USER + 1)
7418    #define WM_CHANNEL_CLOSE (WM_USER + 2)
7419    
7420  typedef struct scp_dlg_parm {  typedef struct scp_dlg_parm {
7421          Channel_t *c;          Channel_t *c;
# Line 7430  static LRESULT CALLBACK ssh_scp_dlg_proc Line 7431  static LRESULT CALLBACK ssh_scp_dlg_proc
7431                  case WM_INITDIALOG:                  case WM_INITDIALOG:
7432                          return FALSE;                          return FALSE;
7433    
7434                    // SCPファイル受信(remote-to-local)時、使用する。
7435                    case WM_CHANNEL_CLOSE:
7436                            {
7437                            scp_dlg_parm_t *parm = (scp_dlg_parm_t *)wp;
7438    
7439                            ssh2_channel_send_close(parm->pvar, parm->c);
7440                            }
7441                            return TRUE;
7442                            break;
7443    
7444                  case WM_SENDING_FILE:                  case WM_SENDING_FILE:
7445                          {                          {
7446                          scp_dlg_parm_t *parm = (scp_dlg_parm_t *)wp;                          scp_dlg_parm_t *parm = (scp_dlg_parm_t *)wp;
# Line 7668  static unsigned __stdcall ssh_scp_receiv Line 7679  static unsigned __stdcall ssh_scp_receiv
7679          int rate, ProgStat;          int rate, ProgStat;
7680          DWORD stime;          DWORD stime;
7681          int elapsed, prev_elapsed;          int elapsed, prev_elapsed;
7682            scp_dlg_parm_t parm;
7683    
7684          InitDlgProgress(hWnd, IDC_PROGBAR, &ProgStat);          InitDlgProgress(hWnd, IDC_PROGBAR, &ProgStat);
7685    
# Line 7748  done: Line 7760  done:
7760          ShowWindow(c->scp.progress_window, SW_HIDE);          ShowWindow(c->scp.progress_window, SW_HIDE);
7761    
7762  cancel_abort:  cancel_abort:
7763          ssh2_channel_send_close(pvar, c);          // チャネルのクローズを行いたいが、直接 ssh2_channel_send_close() を呼び出すと、
7764            // 当該関数がスレッドセーフではないため、SCP処理が正常に終了しない場合がある。
7765            // (2011.6.1 yutaka)
7766            parm.c = c;
7767            parm.pvar = pvar;
7768            SendMessage(hWnd, WM_CHANNEL_CLOSE, (WPARAM)&parm, 0);
7769    
7770          return 0;          return 0;
7771  }  }
7772    

Legend:
Removed from v.4477  
changed lines
  Added in v.4479

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