[PHP-users 5088] Re: ftp_nlist の動きがおかしいです。
Youichi Iwakiri
php-users@php.gr.jp
Tue, 29 Jan 2002 22:50:49 +0900
いわきりです
Takeya wrote in <200201290606.AA00551@JC.Takeya>:
>コマンドライン版のPHPで
>ftp関数を使ってディレクトリ内の
>全てのファイルを別ディレクトリに
>移動させるプログラムを作っている
>のですが、ファイル一覧取得(ftp_nlist)
>のところでプログラムが止まってしまい、
>"FILE NOT FOUND!!"が返ってきます。
>でも、何回か起動してると、たまに正常に
>流れる場合もあります。
ftpサーバのresponseが良過ぎるとその現象に出会うようです。
ftpのコマンドポートからレスポンスコードを取得する際に
複数のレスポンスコードが返ってきている場合に発生する
バグだと思われます。
以下のpatchで恐らく問題は解消されると思います。
--- ftp_orig/ftp.c Sat Nov 4 06:53:24 2000
+++ ftp/ftp.c Tue Jan 29 22:30:19 2002
@@ -841,6 +841,8 @@
(ftp->inbuf[2] - '0');
memmove(ftp->inbuf, ftp->inbuf + 4, FTP_BUFSIZE - 4);
+ if (ftp->extra)
+ ftp->extra -= 4;
return 1;
}