Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

修正 FileZilla 在傳檔時, 如果檔案已經存在, 有時候並不會詢問要如何處理, 而直接續傳的問題
post by tommy @ 29 六月, 2006 14:45
最近常常碰到我在把自己產生的 FileZilla 執行檔的壓縮檔, 傳到我家的伺服器時, 發現 FileZilla 並不會問我是否要覆蓋, 而是直接就用續傳的方式來傳送. 結果... 當然會把原來的檔案給破壞掉, 也沒有傳新的檔案過去, 就有人在我這兒反應壓縮檔抓回去會有問題.

不過, 在我的經驗上頭, 使用原本作者放出來的執行檔, 似乎沒有碰過這個問題 (不很確定, 也許作者的版本真的不會有問題, 也許是我的 compiler 編出來的 code 有問題吧).

在 source code 中來看, 的確在我修正的地方, 以機率來看, 是應該有可能碰到同樣的問題才對. 不管如何, 反正經過修正的版本, 可以確定避免這個問題的發生才對.

diff -Nur source/SftpControlSocket.cpp source.patch/SftpControlSocket.cpp
--- source/SftpControlSocket.cpp Wed Jun 28 11:10:40 2006
+++ source.patch/SftpControlSocket.cpp Thu Jun 29 14:14:28 2006
@@ -2882,7 +2882,6 @@
int elapsed=static_cast<int>(timespan.GetTotalSeconds());

t_ffam_transferstatus *status=new t_ffam_transferstatus;
- status->bFileTransfer = TRUE;
status->timeelapsed=elapsed;
status->bytes=transferdata.transfersize-transferdata.transferleft;
if (transferdata.transfersize>0)
@@ -2902,11 +2901,13 @@
if (left < 0)
left = -1;
status->timeleft = left;
+ status->bFileTransfer=TRUE;
}
else
{
status->percent=-1;
status->timeleft=-1;
+ status->bFileTransfer=FALSE;
}

status->transferrate=(elapsed&&(transferdata.transfersize-transferdata.transferleft-transferdata.nTransferStart))?
diff -Nur source/TransferSocket.cpp source.patch/TransferSocket.cpp
--- source/TransferSocket.cpp Wed Jun 28 11:09:34 2006
+++ source.patch/TransferSocket.cpp Thu Jun 29 14:14:12 2006
@@ -943,7 +943,6 @@
int elapsed=(int)timespan.GetTotalSeconds();

t_ffam_transferstatus *status=new t_ffam_transferstatus;
- status->bFileTransfer=TRUE;
status->timeelapsed=elapsed;
status->bytes=m_transferdata.transfersize-m_transferdata.transferleft;
if (m_transferdata.transfersize>0 && !(m_nMode&CSMODE_LIST))
@@ -967,11 +966,13 @@
if (left < 0)
left = -1;
status->timeleft=left;
+ status->bFileTransfer=TRUE;
}
else
{
status->percent=-1;
status->timeleft=-1;
+ status->bFileTransfer=FALSE;
}

int count = 0;

 

這個 patch 應該可以解決這個問題. 可以到這兒抓這個 patch, 與使用這個 patch 加上其他之前我所做的 patch 的版本:

http://www.teatime.com.tw/~tommy/mypatch/fz2225_set_bFileTransfer_flag.patch
http://www.teatime.com.tw/~tommy/filezilla.zip   


2006/07/04: 作者在今天的 CVS 中修正了這個問題, 用了一個比較正確的方式來判斷是否要把 bFileTransfer 設為 true.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 233 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS