Bart,

the session you are creating needs an alias set to "try" since you're
telling the ftp client to use "try" to send its events...

you can do it like this:

sub start {
        $_[KERNEL]->alias_set("try");
        print "*** test\n";
        }

dngnand was going to add an arg to the session create function so you could
name it at creation time... but I don't know if that's released yet.

- e

-----Original Message-----
From: Bart [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, September 17, 2002 3:04 AM
To: [EMAIL PROTECTED]
Subject: POE::Component::Client::FTP problem


Hi

I'm trying to run Poco::Client::FTP in a self-made module file, but somehow,
it's going wrong.
I execute the function "try::try($kernel, $1, $who);" somewhere in the main
..pl file. The try function searches for $adname ($1) in the database, and if
it can find it, it logs into the ftp with the host/ip user/pass for that
ftp. Everything is going fine, POE connects to the server, executes the
start function as it should ("*** test" gets printed) and logs in. Then, it
should execute the inline authenticated() function, but it doesn't. I have
absolutely no idea why this is. The other 2 functions won't get executed
either, when they should.
Does anyone have an idea of what's going wrong ?
Thanks
Bart

----------------------------------------------------------------------

use strict;
use warnings;

sub POE::Component::Client::FTP::DEBUG         () { 1 };

use POE qw (Session Component::Client::FTP);

package try;

return 1;

sub login_error {
        print "*** no login\n";
}
sub authenticated {
        print "*** yes\n";
}
sub connect_error {
        print "*** no connection\n";
}

sub start {
        print "*** test\n";
}

sub try {
        my ($kernel, $adname, $who) = @_;
        my $number = -1;
        my $counter = 0;
        my $ftp = main::getAdByName($adname);
        while ($number < 0) {
                if (!$main::leeches[$counter]) {
                        $number = $counter;
                }
                $counter ++;
        }

        POE::Component::Client::FTP->spawn(
                Alias => "try",
                Username => $main::database[$ftp][4],
                Password => $main::database[$ftp][5],
                RemoteAddr => $main::database[$ftp][2],
                RemotePort => $main::database[$ftp][3],
                Timeout => 5,
                Events => [qw (authenticated login_error connect_error
cmd_connected) ]
        );

        POE::Session->create(
                inline_states => {
                        authenticated => sub { print "test"; }, #DOES NOT
GET EXECUTED
                        _start => \&start, #>>> GETS EXECUTED <<<
                        login_error => \&login_error, #DOES NOT GET EXECUTED
                        cmd_connected => sub { print "CONNECTED
!!!!!!!!\n"; }, #DOES NOT GET EXECUTED
                        connect_error => \&connect_error, #DOES NOT GET
EXECUTED
                }
        );
}

Reply via email to