Based on a cursory reading of the perldoc, it looks like the ALLO command
is only sent if you call the Net::FTP::alloc method.  If you aren't calling
it, can you provide a toy test case for us where the code sends ALLO.  I
will try to debug why it is sending a command you aren't asking for.

If you are calling Net::FTP::alloc (eg $ftp->alloc( -s $file_to_send )),
then stop calling it and you should not get anymore errors.  If the program
connects to multiple FTP servers and some want ALLO and some don't then
either wrap that code in an if statement, or if it is too much code and you
don't want to touch it all, you can always monkey patch the method.  You
could put something like this in your script and all calls to
Net::FTP::alloc in that script will run your version instead of the
original (warning untested code):

use Net::FTP
BEGIN {
    no warnings "redefine";
    my %bad_hosts = (
        bad_host_that_does_not_understand_allo => 1,
    );
    my $old_alloc = *Net::FTP::alloc{CODE};
    *Net::FTP::alloc = sub {
        return if $bad_hosts{ $_[0]->host };
        $old_alloc->(@_);
    }
}

That will cause it to do nothing when you call Net::FTP::alloc with on an
Net::FTP object that is connected to a host in the %bad_hosts hash.


On Fri, Aug 19, 2016 at 9:20 AM hw <h...@gc-24.de> wrote:

>
> Hi,
>
> is there some way to prevent Net::FTP from using the ALLO command or
> to make it ignore failures when this command is used?
>
> I have to deal with ftp servers that do not understand the ALLO command.
>
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
>
>
>

Reply via email to