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 4987 by maya, Wed Aug 22 11:01:58 2012 UTC revision 5037 by maya, Sat Oct 13 15:19:32 2012 UTC
# Line 7664  static unsigned __stdcall ssh_scp_thread Line 7664  static unsigned __stdcall ssh_scp_thread
7664          DWORD stime;          DWORD stime;
7665          int elapsed, prev_elapsed;          int elapsed, prev_elapsed;
7666    
7667          buflen = 8192*4;          buflen = min(c->remote_window, 8192*4); // max 32KB
7668          buf = malloc(buflen);          buf = malloc(buflen);
7669    
7670          //SendMessage(GetDlgItem(hWnd, IDC_FILENAME), WM_SETTEXT, 0, (LPARAM)c->scp.localfile);          //SendMessage(GetDlgItem(hWnd, IDC_FILENAME), WM_SETTEXT, 0, (LPARAM)c->scp.localfile);
# Line 7676  static unsigned __stdcall ssh_scp_thread Line 7676  static unsigned __stdcall ssh_scp_thread
7676          prev_elapsed = 0;          prev_elapsed = 0;
7677    
7678          do {          do {
7679                    int readlen, count=0;
7680    
7681                  // Cancelボタンが押下されたらウィンドウが消える。                  // Cancelボタンが押下されたらウィンドウが消える。
7682                  if (is_canceled_window(hWnd))                  if (is_canceled_window(hWnd))
7683                          goto cancel_abort;                          goto cancel_abort;
7684    
7685                  // ファイルから読み込んだデータはかならずサーバへ送信する。                  // ファイルから読み込んだデータはかならずサーバへ送信する。
7686                  ret = fread(buf, 1, buflen, c->scp.localfp);                  readlen = max(4096, min(buflen, c->remote_window)); // min 4KB
7687                    ret = fread(buf, 1, readlen, c->scp.localfp);
7688                  if (ret == 0)                  if (ret == 0)
7689                          break;                          break;
7690    
7691                    // remote_window が回復するまで待つ
7692                  do {                  do {
7693                          // socket or channelがクローズされたらスレッドを終わる                          // socket or channelがクローズされたらスレッドを終わる
7694                          if (pvar->socket == INVALID_SOCKET || c->scp.state == SCP_CLOSING || c->used == 0)                          if (pvar->socket == INVALID_SOCKET || c->scp.state == SCP_CLOSING || c->used == 0)
# Line 7694  static unsigned __stdcall ssh_scp_thread Line 7698  static unsigned __stdcall ssh_scp_thread
7698                                  Sleep(100);                                  Sleep(100);
7699                          }                          }
7700    
7701                            // 100回抜けられなかったら抜けてしまう
7702                            count++;
7703                            if (count > 100) {
7704                                    break;
7705                            }
7706    
7707                  } while (ret > c->remote_window);                  } while (ret > c->remote_window);
7708    
7709                  // sending data                  // sending data

Legend:
Removed from v.4987  
changed lines
  Added in v.5037

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