Agent-TCLI-Package-Net
view release on metacpan or search on metacpan
bin/agent_net.pl view on Meta::CPAN
# Optional Packages, without some, a bot is useless
use Agent::TCLI::Package::XMPP; # Not required, but very useful to manage Transport::XMPP
# especially if you want a graceful shutdown. :)
use Agent::TCLI::Package::Net::SMTP;
use Agent::TCLI::Package::Net::HTTP;
use Agent::TCLI::Package::Net::HTTPD;
use Agent::TCLI::Package::Net::Ping;
use Agent::TCLI::Package::Net::Traceroute;
use Agent::TCLI::Package::Tail;
# An alias is mostly useful when debugging, and must be unique within
# active POE::Sessions
my $alias = 'agent.net';
# Create new package objects to load for each package.
# Some packages may require extra parameters.
my @packages = (
Agent::TCLI::Package::XMPP->new(
'verbose' => \$verbose , # Optionally set verbosity for the package
# by using a reference, we can later
# change globally while running
),
Agent::TCLI::Package::Net::Ping->new(
'verbose' => \$verbose ,
),
Agent::TCLI::Package::Net::Traceroute->new(
'verbose' => \$verbose ,
),
Agent::TCLI::Package::Tail->new(
'verbose' => \$verbose ,
),
Agent::TCLI::Package::Net::HTTP->new(
'verbose' => \$verbose ,
),
Agent::TCLI::Package::Net::HTTPD->new(
'verbose' => \$verbose ,
),
Agent::TCLI::Package::Net::SMTP->new(
'verbose' => \$verbose ,
),
);
# Define the authorized users of the Agent.
my @users = (
# If the Tail agent is to be controlled by a test script, then the user the
# test script will be run as has to be a user here.
# It is OK to use the same XMPP user as long as the resource is different.
Agent::TCLI::User->new(
'id' => $username.'@'.$domain,
'protocol' => 'xmpp',
'auth' => 'master',
),
defined ($opt->get_master) ?
Agent::TCLI::User->new(
'id' => $opt->get_master,
'protocol' => 'xmpp',
'auth' => 'master',
) : undef,
# Agent::TCLI::User->new(
# 'id' => 'user2@'.$domain,
# 'protocol' => 'xmpp',
# 'auth' => 'master',
# ),
# xmpp_groupchat users will cause an Agent to join the groupchat MUC
# Agent::TCLI::User->new(
# 'id' => 'conference_room@conference'.$domain,
# 'protocol' => 'xmpp_groupchat',
# 'auth' => 'master',
# ),
);
Agent::TCLI::Transport::XMPP->new(
'jid' => Net::XMPP::JID->new($username.'@'.$domain.'/'.$resource),
'jserver' => $host,
'jpassword'=> $password,
'peers' => \@users,
'verbose' => \$verbose, # Verbose sets level or warnings
'control_options' => {
'packages' => \@packages,
},
);
print "Starting ".$alias unless $verbose;
# Required to start the Agent
POE::Kernel->run();
print" FINISHED\n";
exit;
( run in 1.022 second using v1.01-cache-2.11-cpan-d80b1682f3f )