Hi, this is the second try to get feedback and to make a fix to ftp_size() function. After bringing that issue up a few days back, I got response from Derick only with some concerns, which I'll address here. Please, respond or I'll just apply the patch because it makes sense to me and see what happens.
First of all, ftp_size() function is broken. It will return different results for the same file depending on what function was called before it. To fix it, we have to set the mode of the ftp server session to BINARY rather than ASCII. It is a one-liner patch. Derick was concerned that this will change the state of the session without the user explicitly requesting it and we do not restore it. However, this is irrelevant since all the functions that depend on that state will set it for themselves: - ftp_nlist() and ftp_rawlist() already do just that - they just set the type to ASCII and do not restore it. - ftp_get(), ftp_fget(), ftp_put() and ftp_fput() require you to set the type explicitly - other functions do not depend on transfer type (except for ftp_size() ). It was an obvious oversight not to make ftp_size() set the mode before requesting the size of a file (I would have never imagined that the size of the file differs depending on whether we do 'dir' in text mode or binary mode... duh!) So, to wrap it up. Making that change will not affect *any* other functionality of the ftp extension (you are welcome to read through the source - I just did that) and will fix ftp_size() to consistently return correct results. Question: Does anybody object to putting that change in, *and* also merging it into the release branch? This is an obvious bug, and the fix doesn't affect anything else. Vlad -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php