package Mogstored::HTTPServer;
use strict;
sub new {
my ($class, %opts) = @_;
my $self = bless {}, $class;
$self->{docroot} = delete $opts{docroot};
$self->{listen} = delete $opts{listen};
$self->{maxconns} = delete $opts{maxconns};
$self->{bin} = delete $opts{bin};
$self->{include} = delete $opts{include};
die "unknown opts" if %opts;
return $self;
}
sub start {
my $self = shift;
die "start not implemented for $self";
}
sub pre_daemonize {
my $self = shift;
}
sub post_daemonize {
my $self = shift;
}
sub listen_port {
my $self = shift;
my $port = $self->{listen};
$port =~ s/^.+://;
die "not numeric port?" unless $port =~ /^\d+$/;
return $port;
}
sub bind_ip {
my $self = shift;
if ($self->{listen} =~ /^(.+):\d+$/) {
return $1;
} elsif ($self->{listen} =~ /^\d+$/) {
return "0.0.0.0";
} else {
die "Bogus listen value?";
}
}
1;