Net::Server 0.93 review

Download
by rbytes.net on

Net::Server is an extensible, general Perl server engine. SYNOPSIS #!/usr/bin/perl -w -T package MyPackage; use Net::

License: Perl Artistic License
File size: 79K
Developer: Paul Seamons
0 stars award from rbytes.net

Net::Server is an extensible, general Perl server engine.

SYNOPSIS

#!/usr/bin/perl -w -T
package MyPackage;

use Net::Server;
@ISA = qw(Net::Server);

sub process_request {
#...code...
}

MyPackage->run(port => 160);
exit;

Here are some key features of "Net Server":
Single Server Mode
Inetd Server Mode
Preforking Simple Mode (PreForkSimple)
Preforking Managed Mode (PreFork)
Forking Mode
Multiplexing Mode using a single process
Multi port accepts on Single, Preforking, and Forking modes
Simultaneous accept/recv on tcp, udp, and unix sockets
Safe signal handling in Fork/PreFork avoids perl signal trouble
User customizable hooks
Chroot ability after bind
Change of user and group after bind
Basic allow/deny access control
Customized logging (choose Syslog, log_file, or STDERR)
HUP able server (clean restarts via sig HUP)
Dequeue ability in all Fork and PreFork modes.
Taint clean
Written in Perl
Protection against buffer overflow
Clean process flow
Extensibility

Net::Server is an extensible, generic Perl server engine. Net::Server combines the good properties from Net::Daemon (0.34), NetServer::Generic (1.03), and Net::FTPServer (1.0), and also from various concepts in the Apache Webserver.

Net::Server attempts to be a generic server as in Net::Daemon and NetServer::Generic. It includes with it the ability to run as an inetd process (Net::Server::INET), a single connection server (Net::Server or Net::Server::Single), a forking server (Net::Server::Fork), a preforking server which maintains a constant number of preforked children (Net::Server::PreForkSimple), or as a managed preforking server which maintains the number of children based on server load (Net::Server::PreFork). In all but the inetd type, the server provides the ability to connect to one or to multiple server ports.

Net::Server uses ideologies of Net::FTPServer in order to provide extensibility. The additional server types are made possible via "personalities" or sub classes of the Net::Server. By moving the multiple types of servers out of the main Net::Server class, the Net::Server concept is easily extended to other types (in the near future, we would like to add a "Thread" personality).

Net::Server borrows several concepts from the Apache Webserver. Net::Server uses "hooks" to allow custom servers such as SMTP, HTTP, POP3, etc. to be layered over the base Net::Server class. In addition the Net::Server::PreFork class borrows concepts of min_start_servers, max_servers, and min_waiting servers.

Net::Server::PreFork also uses the concept of an flock serialized accept when accepting on multiple ports (PreFork can choose between flock, IPC::Semaphore, and pipe to control serialization).

Requirements:
Perl

Net::Server 0.93 keywords