Hello!
This is my Net::Daemon::SSL module. In fact, this is an IO::Socket::SSL
based extension for Net::Daemon.
It was uploaded to the PAUSE server (my id is MKUL). The DSLI formatted
description for this module follows:
Name DSLI Description Info
------------- ---- --------------------------------------------
-----
Net::Daemon::SSL RdpO SSL extension for Net::Daemon MKUL
This is a documentation of this module:
-------------------------
NAME
Net::Daemon::SSL - perl extensions for portable ssl daemons
SYNOPSIS
use Net::Daemon::SSL;
package MyDaemon;
@MyDaemon::ISA = qw (Net::Daemon::SSL);
sub Run
{
my $this = shift;
my $buffer;
$this->{socket}->print ( "vasja was here\n" );
$this->{socket}->sysread ( $buffer, 100 );
# Attention! getline() method
# do not work with IO::Socket::SSL
# version 0.73 see perldoc IO::Socket::SSL
# for more details
}
package main;
my $daemon = new MyDaemon ( {}, \ @ARGV ); # you can use --help
command line key
$daemon || die "error create daemon instance: $!\n";
$daemon->Bind();
DESCRIPTION
This class implements an IO::Socket::SSL functionality for
Net::Daemon class. See perldoc Net::Daemon for more information
about Net::Daemon usage.
Options
This method add IO::Socket::SSL specific options ( SSL_use_cert,
SSL_verify_mode, SSL_key_file, SSL_cert_file, SSL_ca_path,
SSL_ca_file ) to generic Net::Daemon options. See perldoc
IO::Socket::SSL for description of this options
Bind
This method creates an IO::Socket::SSL::SafeAccept socket,
stores this socket into $this->{socket} and passes control to
parent Net::Daemon::Bind. The IO::Socket::SSL::SafeAccept is a
class inherited from IO::Socket::SSL with the only difference
from parent class - the accept() method of this class returns
EINTR on *any* error. This trick is needed to "hack"
Net::Daemon::Bind functionality: if this method gets an error
from accept() ( Net::Daemon::SSL auth error, for example ) it
will call Fatal() method and die unless this is a EINTR error.
-------------------------
What is my next actions for register this module at CPAN?
With best regards,
Michael Kulakov