| 7839 |
do { |
do { |
| 7840 |
// Cancelボタンが押下されたらウィンドウが消える。 |
// Cancelボタンが押下されたらウィンドウが消える。 |
| 7841 |
if (IsWindowVisible(hWnd) == 0) |
if (IsWindowVisible(hWnd) == 0) |
| 7842 |
goto scp_thread_cancel_abort; |
goto cancel_abort; |
| 7843 |
|
|
| 7844 |
// ファイルから読み込んだデータはかならずサーバへ送信する。 |
// ファイルから読み込んだデータはかならずサーバへ送信する。 |
| 7845 |
ret = fread(buf, 1, sizeof(buf), c->scp.localfp); |
ret = fread(buf, 1, sizeof(buf), c->scp.localfp); |
| 7849 |
do { |
do { |
| 7850 |
// socket or channelがクローズされたらスレッドを終わる |
// socket or channelがクローズされたらスレッドを終わる |
| 7851 |
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) |
| 7852 |
goto scp_thread_abort; |
goto abort; |
| 7853 |
|
|
| 7854 |
if (ret > c->remote_window) { |
if (ret > c->remote_window) { |
| 7855 |
Sleep(100); |
Sleep(100); |
| 7886 |
|
|
| 7887 |
return 0; |
return 0; |
| 7888 |
|
|
| 7889 |
scp_thread_cancel_abort: |
cancel_abort: |
| 7890 |
ssh2_channel_send_close(pvar, c); |
ssh2_channel_send_close(pvar, c); |
| 7891 |
|
|
| 7892 |
scp_thread_abort: |
abort: |
| 7893 |
|
|
| 7894 |
return 0; |
return 0; |
| 7895 |
} |
} |
| 7963 |
for (;;) { |
for (;;) { |
| 7964 |
// Cancelボタンが押下されたらウィンドウが消える。 |
// Cancelボタンが押下されたらウィンドウが消える。 |
| 7965 |
if (IsWindowVisible(hWnd) == 0) |
if (IsWindowVisible(hWnd) == 0) |
| 7966 |
goto scp_receive_cancel_abort; |
goto cancel_abort; |
| 7967 |
|
|
| 7968 |
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) != 0) { |
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) != 0) { |
| 7969 |
switch (msg.message) { |
switch (msg.message) { |
| 7974 |
|
|
| 7975 |
if (c->scp.filercvsize >= c->scp.filetotalsize) { // EOF |
if (c->scp.filercvsize >= c->scp.filetotalsize) { // EOF |
| 7976 |
free(data); // free! |
free(data); // free! |
| 7977 |
goto scp_receive_done; |
goto done; |
| 7978 |
} |
} |
| 7979 |
|
|
| 7980 |
if (c->scp.filercvsize + buflen > c->scp.filetotalsize) { // overflow (include EOF) |
if (c->scp.filercvsize + buflen > c->scp.filetotalsize) { // overflow (include EOF) |
| 7995 |
SendMessage(GetDlgItem(c->scp.progress_window, IDC_PROGRESS), WM_SETTEXT, 0, (LPARAM)s); |
SendMessage(GetDlgItem(c->scp.progress_window, IDC_PROGRESS), WM_SETTEXT, 0, (LPARAM)s); |
| 7996 |
|
|
| 7997 |
if (eof) |
if (eof) |
| 7998 |
goto scp_receive_done; |
goto done; |
| 7999 |
|
|
| 8000 |
break; |
break; |
| 8001 |
} |
} |
| 8003 |
Sleep(0); |
Sleep(0); |
| 8004 |
} |
} |
| 8005 |
|
|
| 8006 |
scp_receive_done: |
done: |
| 8007 |
c->scp.state = SCP_CLOSING; |
c->scp.state = SCP_CLOSING; |
| 8008 |
ShowWindow(c->scp.progress_window, SW_HIDE); |
ShowWindow(c->scp.progress_window, SW_HIDE); |
| 8009 |
|
|
| 8010 |
scp_receive_cancel_abort: |
cancel_abort: |
| 8011 |
ssh2_channel_send_close(pvar, c); |
ssh2_channel_send_close(pvar, c); |
| 8012 |
return 0; |
return 0; |
| 8013 |
} |
} |