Sorry to open a new thread just after registering, hope you'll forgive.
(Some) SMC Barricade routers have the nice 'feature' of translating incoming PASV commands to P@SW, thus making passive-mode transfers between an ftp server inside the LAN and a client connecting from the WAN impossible [edit] causing my forum status to appear on the screen [/edit]. My problem is that some friends are sitting behind a NAT, so they can't use active mode.
The (ugly but rather simple) solution is treating P@SW commands just like PASV ones; raidenftpd does have this option but I really prefer FileZilla. I'd love to not have to reapply the fix and recompile everytime a new version of FileZilla comes out, so if someone of you would get around to add that fix/option to the next patch/nightly build that would be absolutely wonderful
Thanks in advance; again, hope I'm not being a d!ck here.
P@SW bug in SMC Barricade
Moderator: Project members
Unfortunately there is neither a fix for the router nor official specifications of the P@SW command, but I'm confident it is the same as PASV. This site details the problem: http://www.gbnetwork.co.uk/smcftpd/
[edit] I think it's static const t_command commands[] in ControlSocket.cpp, adding just below should do it, at least I hope so. Though I'm afraid I will now have to install all the stuff necessary to compile FZ on w32 to test this theory, anyway... [/edit]
I was under the impression it's only a matter of a few lines of code/changes, like, if there's a P@SW cmd coming in, do the same as if it were PASV, instead of not recognizing it. Maybe I'm thinking too simple here, will be looking at the code now.... The intention of this feature was to make the client think that the server does not support the PASV mode and resort back to using active mode instead. In reality virtually no ftp client software will do this so all this feature accomplishes is to stop FTP server software from working even if it does have the features to support PASV from behind a firewall.
[edit] I think it's static const t_command commands[] in ControlSocket.cpp, adding
Code: Select all
COMMAND_PASV, "P@SW", FALSE, FALSE,
Code: Select all
COMMAND_PASV, "PASV", FALSE, FALSE,