Agent-TCLI-Package-Net
view release on metacpan or search on metacpan
lib/Agent/TCLI/Package/Net/HTTPD.pm view on Meta::CPAN
{
$self->Verbose("_shutdown: $port");
$kernel->post( 'HTTPD'.$port , 'SHUTDOWN' );
}
return ('_shutdown '.$self->name )
}
sub _stop {
my ($kernel, $self,) =
@_[KERNEL, OBJECT,];
$self->Verbose("_stop: ".$self->name." stopping",2);
}
=item spawn
This POE event handler executes the spawn command to start a new HTTPD listener.
=cut
sub spawn {
my ($kernel, $self, $sender, $request, ) =
@_[KERNEL, OBJECT, SENDER, ARG0, ];
my $txt = '';
my $param;
my $command = $request->command->[0];
my $cmd = $self->commands->{$command};
return unless ( $param = $cmd->Validate($kernel, $request, $self) );
$self->Verbose("spawn: param dump",4,$param);
# is one running already?
if (exists( $self->ports->{ $param->{'port'} } ))
{
$self->Verbose("spawn: ".$param->{'port'}." already running");
$request->Respond($kernel,"HTTPD server on port ".
$param->{'port'}." already running",400);
return;
}
# Start the server!
$self->ports->{ $param->{'port'} } =
POE::Component::Server::SimpleHTTP->new(
'ALIAS' => 'HTTPD'.$param->{'port'},
'ADDRESS' => defined($param->{'address'})
? $param->{'address'}
: $sender->get_heap->local_address,
'PORT' => $param->{'port'},
'HOSTNAME' => defined($param->{'hostname'})
? $param->{'hostname'}
: '',
'HANDLERS' => $self->handlers,
# 'LOGHANDLER' => {
# 'SESSION' => $self->name,
# 'EVENT' => 'Log',
# },
# In the testing phase...
# 'SSLKEYCERT' => [ 'public-key.pem', 'public-cert.pem' ],
);
unless (defined( $self->ports->{ $param->{'port'} } ) )
{
$request->Respond($kernel,'Unable to create the HTTPD Server',400);
return;
}
# store the $sender for later use.
$self->SetWheelKey($param->{'port'}, 'control' => $sender );
$request->Respond($kernel,'HTTPD Started on port '.$param->{'port'},200);
}
=item stop
This POE Event handler executes the stop command to shutdown a HTTPD listener.
=cut
sub stop {
my ($kernel, $self, $sender, $request, ) =
@_[KERNEL, OBJECT, SENDER, ARG0, ];
my $txt = '';
my $param;
my $command = $request->command->[0];
my $cmd = $self->commands->{$command};
return unless ( $param = $cmd->Validate($kernel, $request, $self) );
$self->Verbose("spawn: param dump",4,$param);
unless (defined( $self->ports->{ $param->{'port'} } ) )
{
$request->Respond($kernel,'Unable to locate the HTTPD Server',404);
return;
}
$kernel->post( 'HTTPD'.$param->{'port'} , 'SHUTDOWN' );
# remove the stored control for this server
$self->SetWheelKey( $param->{'port'} , 'control' );
delete( $self->ports->{ $param->{'port'} } );
$request->Respond($kernel,'HTTPD Stopped on port '.$param->{'port'},200);
}
=item uri
This POE Event handler excecutes the uri add and uri delete commands.
=cut
sub uri {
my ($kernel, $self, $sender, $request, ) =
@_[KERNEL, OBJECT, SENDER, ARG0, ];
my $txt = '';
( run in 1.063 second using v1.01-cache-2.11-cpan-39bf76dae61 )