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