Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

修正 FileZilla 在傳檔給 GeeXbox 的 bftpd 時, 不會建立目錄的問題
post by tommy @ 05 七月, 2006 23:13
今天試著傳一些檔案到前幾天弄幾來的 GeeXbox 主機, 結果, 發現在使用 FileZilla 時, 如果傳的是一整個目錄的檔案時, 會全部失敗. 後來才發現, 是因為 GeeXbox 所使用的 bftpd 程式, 在 CWD 指令到不存在的目錄時, 並不是傳回 5xx 的錯誤碼, 而是 421 的錯誤碼. 而 4xx 的錯誤碼, 在一般的協定當中, 並不是一個嚴重錯誤, 所以 FileZilla 會認為這個錯誤是可修正的, 所以持續一直嘗試 CWD 指令, 而不是使用 MKD 指令來建立新的目錄.
diff -Nur source/FtpControlSocket.cpp source.patch/FtpControlSocket.cpp
--- source/FtpControlSocket.cpp Sat Jun 17 10:53:10 2006
+++ source.patch/FtpControlSocket.cpp Wed Jul 5 22:50:57 2006
@@ -2452,10 +2452,12 @@
break;
case FILETRANSFER_CWD:
if (code!=2 && code!=3)
- if (code==4)
- nReplyError=FZ_REPLY_ERROR;
- else if (pData->transferfile.get)
+ if (pData->transferfile.get)
{
+ if (code==4) {
+ nReplyError=FZ_REPLY_ERROR;
+ break;
+ }
pData->bUseAbsolutePaths = TRUE;
m_Operation.nOpState = FILETRANSFER_NOLIST_SIZE;
}
 

這個 patch 應該可以解決這個問題. 可以到這兒抓這個 patch, 與使用這個 patch 加上其他之前我所做的 patch 的版本:
http://www.teatime.com.tw/~tommy/mypatch/filezilla_2.2.25_geexbox_cwd.patch
http://www.teatime.com.tw/~tommy/filezilla.zip   

或者到 SourceForge 的 FileZillaPV project 去抓也可以.


2006/07/07: 這個 patch 被修改後放到 CVS 中了.

 

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

  

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