> On Oct. 1, 2012, 8:30 a.m., David Faure wrote:
> > kioslave/ftp/ftp.cpp, line 2639
> > <http://git.reviewboard.kde.org/r/106636/diff/2/?file=87785#file87785line2639>
> >
> >     Does this really work? This method is being called in the middle of the 
> > parsing of "list" command output, so the output of the "SIZE" command 
> > issued by ftpFileExists will only come after the end of the directory 
> > listing, won't it?
> >     
> >     Did you test this with a non-trivial folder? (10 elements should be 
> > enough, unless I'm missing some buffering somewhere).
> >     
> >     It sounds to me like the filename fixing up should come *after* the 
> > full directory listing.
> >     
> >     Also, this looks very slow. On a "normal" FTP directory without 
> > whitespace to be fixed up, this is going to issue one SIZE command per file 
> > and one CWD command per subdirectory (and a lot more in case of whitespace 
> > issues). Maybe we can do the fixing up only when retrieving a single file 
> > or entering a subdir later on, to avoid slowing down directory listing so 
> > much. On a large folder and a slow FTP server, this must be unbearably 
> > slower...
> 
> Dawit Alemayehu wrote:
>     Well, I did test it on my own machine using vsftpd. I created 300 folders 
> and text files (150 each) whose name starts with a space and accessed that 
> directory. The listing worked just fine and I did not see any lag. However, 
> that is on a local machine. I do not have a remote ftp server with which to 
> test this at the moment. However, I see your point. I too am now curious how 
> this works at all and it does work for me as I have stated. Perhaps the Qt 
> socket classes do some buffering ?
>     
>     As far as "normal" FTP directory without whitespace being fixed up, the 
> very first if statement in the fixupEntryName function prevents it so that 
> should be a not be an issue.
>     
>     My original inclination was to fix it as you suggested here. That is if 
> listing the directory or retrieving a file fails, do the fixup and try again 
> before returning an error to the client. However, that would mean fixing it 
> in a lot of places, e.g. when deleting, renaming, moving, etc. That is in 
> addition to the listing and retrieving. But that is not even the worst of it. 
> The potential to trick the user is the biggest issue. For example, a user 
> sees the whitespace in a file or folder name and wants to remove it. 
> Unfortunately any attempt to do so through rename will simply fail because 
> there is no whitespace in the name to begin with. :( 
>     
>     I wonder how other clients deal with such issues ? Perhaps they do not 
> and simply trim all whitespaces and ignore servers that allow such things ? 
>     
>

The "very first if statement in fixupEntryName" is still an FTP operation (SIZE 
or CWD), that's my point (about hurting performance).

I see your point, we have to show a correct filename to the user in the first 
place, so forget my idea of on-demand fixup.

As to other clients, well, you have the perfect setup for testing this...

Personnally I would just trim whitespace and not allow people to store files 
that start with a space on FTP. It just doesn't make sense, given that FTP is a 
text-based whitespace-separated protocol.

Thanks.


- David


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/106636/#review19675
-----------------------------------------------------------


On Oct. 2, 2012, 4:08 a.m., Dawit Alemayehu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/106636/
> -----------------------------------------------------------
> 
> (Updated Oct. 2, 2012, 4:08 a.m.)
> 
> 
> Review request for kdelibs and David Faure.
> 
> 
> Description
> -------
> 
> The attached patch fixes a regression caused by a commit to fix bug# 88575. 
> Namely, it fixed a problem where filenames with whitespaces in them were not 
> handled correctly by kio_ftp. That is because the filenames were 
> automatically trimmed when read from the directory. However, the fix then 
> re-introduced the original bug and the reason why names were automatically 
> trimmed in the first place. Some ftp servers add bogus whitespace between the 
> date and filename in their listings. Hence, we need need to fix both of these 
> opposing issues without breaking the other. This patch tries to do just that 
> by actually validating each name entry that starts with a whitespace. That 
> way the correct name is sent to the client.
> 
> 
> This addresses bug 300988.
>     http://bugs.kde.org/show_bug.cgi?id=300988
> 
> 
> Diffs
> -----
> 
>   kioslave/ftp/ftp.h 2465a4b 
>   kioslave/ftp/ftp.cpp 26be283 
> 
> Diff: http://git.reviewboard.kde.org/r/106636/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Dawit Alemayehu
> 
>

Reply via email to