Net::Server::MultiType(3p)

NAME
Net::Server::MultiType - Net::Server personality

SYNOPSIS
    use base qw(Net::Server::MultiType);

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

    my @types = qw(PreFork Fork Single);

    Net::Server::MultiType->run(server_type => \@types);

DESCRIPTION
Please read the pod on Net::Server first. This module is a personality, or extension, or sub class, of the Net::Server module.

This personality is intended to allow for easy use of multiple Net::Server personalities. Given a list of server types, Net::Server::MultiType will require one at a time until it finds one that is installed on the system. It then adds that package to its @ISA, thus inheriting the methods of that personality.

ARGUMENTS
In addition to the command line arguments of the Net::Server base class, Net::Server::MultiType contains one other configurable parameter.

    Key               Value            Default
    server_type       'server_type'    'Single'

server_type
    May be called many times to build up an array or possible server_types. At execution, Net::Server::MultiType will find the first available one and then inherit the methods of that personality

CONFIGURATION FILE
"Net::Server::MultiType" allows for the use of a configuration file to read in server parameters. The format of this conf file is simple key value pairs. Comments and white space are ignored.

    #-------------- file test.conf --------------

    ### multi type info
    ### try PreFork first, then go to Single
    server_type PreFork
    server_type Single

    ### server information
    min_servers   20
    max_servers   80
    spare_servers 10

    max_requests  1000

    ### user and group to become
    user        somebody
    group       everybody

    ### logging ?
    log_file    /var/log/server.log
    log_level   3
    pid_file    /tmp/server.pid

    ### access control
    allow       .+\.(net|com)
    allow       domain\.com
    deny        a.+

    ### background the process?
    background  1

    ### ports to bind
    host        127.0.0.1
    port        localhost:20204
    port        20205

    ### reverse lookups ?
    # reverse_lookups on

    #-------------- file test.conf --------------

PROCESS FLOW
See Net::Server

HOOKS
There are no additional hooks in Net::Server::MultiType.

TO DO
See Net::Server

AUTHOR
Paul T. Seamons paul@seamons.com

SEE ALSO
Please see also Net::Server::Fork, Net::Server::INET, Net::Server::PreFork, Net::Server::MultiType, Net::Server::Single