PDA

View Full Version : BUG: ioNINJA CWD Post FTP Command Breaks Most Clients


r4nd0m
10-07-2010, 03:28 PM
Hello,

ioFTPD Version: ioFTPD-v7.5.9
ioNINJA Version: ioNiNJA.BETA.Stable.v0.8.9.6-2009-06-29

When a dir is completed, racestats are generated which are displayed when you enter that dir. This works fine in FlashFXP:

FlashFXP Log:

[07:02:59] [R] CWD Blah.S01E01.Pilot.DVDRip.XviD-BLAH
[07:02:59] [R] .-----------------====--------------------------== ioNiNJA v0.8 ===--.
[07:02:59] [R] | |
[07:02:59] [R] |-=[ R A C E N F O ]=---------------. |
[07:02:59] [R] | `-----------------====----------|
[07:02:59] [R] | Release: Blah.S01E01.Pilot.DVDRip.XviD-BLAH |
[07:02:59] [R] | RaceNfo: 175MB in 13F @ 19.5MB/s in 9s |
[07:02:59] [R] | Fastest: r4nd0m/ARCHIVER @ 35.9MB/s |
[07:02:59] [R] | Slowest: r4nd0m/ARCHIVER @ 13.8MB/s |
[07:02:59] [R] | |
[07:02:59] [R] |-=[ U S E R T O P ]=---------------. |
[07:02:59] [R] | `-----------------====----------|
[07:02:59] [R] | 1. r4nd0m 175MB 13F 100% 24.1MB/s |
[07:02:59] [R] |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
[07:02:59] [R] | 1. Total 175MB 13F 100% 19.5MB/s |
[07:02:59] [R] | |
[07:02:59] [R] |-=[ G R O U P T O P ]=-------------. |
[07:02:59] [R] | `--------------===--------------|
[07:02:59] [R] | 1. ARCHIVER 175MB 13F 100% 24.1MB/s |
[07:02:59] [R] |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
[07:02:59] [R] | 1. Total 175MB 13F 100% 19.5MB/s |
[07:02:59] [R] | |
[07:02:59] [R] |-=[ S A M P L E ]=-----------------. |
[07:02:59] [R] | `-----==-------------===--------|
[07:02:59] [R] | Type : XVID |
[07:02:59] [R] | Bitrate: 1 138 Kbps |
[07:02:59] [R] | AR : 16/9 @ 624x352 |
[07:02:59] [R] | FPS : 23.976 fps |
[07:02:59] [R] | Audio : MPEG Audio AudioBR: 149 Kbps |
[07:02:59] [R] | Mode : Variable Chans : 2 channels |
[07:02:59] [R] | Rate : 48.0 KHz Res : 16 bits |
[07:02:59] [R] `-----================---------------------------==------------------'
[07:02:59] [R] 250 CWD command successful.
[07:02:59] [R] PWD
[07:02:59] [R] 257 "/TV/Community/Season.01/Blah.S01E01.Pilot.DVDRip.XviD-BLAH" is current directory.


Notice how [R] 250 CWD command successful comes after all the racestats? This causes problems with non FlashFXP/FTPRush clients.

Transmit on Mac errors with Error -157: Invalid reply from server after the racestats have been generated for a directory, browsing the dir tree up to that directory works fine is fine - for example:

/TV/ - works
/TV/Blah/ - works
/TV/Blah/Season.01/ - works
/TV/Blah/Season.01/Blah.S01E01.Pilot.DVDRip.XviD-BLAH/ - FAIL - Error -157: Invalid reply from server

Filezilla displays the racestats but then locks up because it can't enter the directory as it didn't receive [R] 250 CWD command successful BEFORE the racestats.

I can resolve the problem by commenting out the following:
ioFTPD.ini

[FTP_Post-Command_Events]
# These are called after the real command successfully completed.
#ioNINJA
#cwd = TCL ..\scripts\ioNiNJA\ioNiNJA.itcl
dele = TCL ..\scripts\ioNiNJA\ioNiNJA.itcl


If we look at how glftpd+pzs-ng does it:

FlashFXP Log:
[R] CWD Blah-BLAH-2007-BLAH
[R] 250- .-----------------====---------------------------== PZS-NG v1.0 ===--.
[R] 250- |-=[ U S E R T O P ]=---------------. |
[R] 250- | `-----------------====----------|
[R] 250- | 1 BLAHBLAH/SiteOPs 80.6M 13F 100.0% 117KBs |
[R] 250- |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
[R] 250- | 1 Total 80.6M 13F 100.0% 117KBs |
[R] 250- | |
[R] 250- |-=[ G R O U P T O P ]=-------------. |
[R] 250- | `--------------===--------------|
[R] 250- | 1 SiteOPs 80.6M 13F 100.0% 117KBs |
[R] 250- |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
[R] 250- | 1 Total 80.6M 13F 100.0% 117KBs |
[R] 250- | |
[R] 250- |-=[ I D 3 - T A G ]=---------------. |
[R] 250- | `-----==-------------===--------|
[R] 250- | Artist : blasdasdas |
[R] 250- | Album : asdasdasdasd |
[R] 250- | Genre : Rap Rate : 203kbit/s |
[R] 250- | Tracks : 13 Year : 2007 |
[R] 250- | Encoder: LAME3.97 Preset: V2 |
[R] 250- `-----================---------------------------==------------------'
[R] 250 CWD command successful.

Notice how its sending 250 on each line so the FTP client knows directory list was successful?

It would be great if this function could be added to the NiNJALiB.tcl

r4nd0m
10-07-2010, 03:48 PM
I have fixed the problem myself by editing the C:\ioFTPD\scripts\ioNINJA\MiSC\NiNJALiB.tcl

Go to line 1832 and change from:

set message [string map [list "%fm$1$2\{$replacing\}" [format %${1}${2}s "$replace"]] $message]
}

output $message


To:

set message [string map [list "%fm$1$2\{$replacing\}" [format %${1}${2}s "$replace"]] $message]
set propercwd "250-"
append propercwd $message
}

output $propercwd



If you like the full file can be grabbed here: http://pastebin.com/m1itjW4V