Server now starts, and uses the config
authorChris Cormack <chrisc@catalyst.net.nz>
Wed, 28 Aug 2013 00:07:09 +0000 (12:07 +1200)
committerJason Stephenson <jstephenson@mvlc.org>
Thu, 29 Aug 2013 20:17:26 +0000 (16:17 -0400)
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
lib/NCIPServer.pm
t/NCIPServer.t
t/config_sample/NCIP.xml

index 6cfab2a..d8928ed 100644 (file)
@@ -1,14 +1,31 @@
 package NCIPServer;
 
 use Modern::Perl;
+use NCIP::Configuration;
 
-require Net::Server::PreFork;;
-
-our @ISA = qw(Net::Server::PreFork);
+use base qw(Net::Server::PreFork);
 
 our $VERSION = '0.01';
 
+sub configure_hook {
+    my ($self)        = @_;
+    my $server        = $self->{'server'};
+    my $config        = NCIP::Configuration->new( $server->{'config_dir'} );
+    my $server_params = $config->('NCIP.server-params');
+    while ( my ( $key, $val ) = each %$server_params ) {
+        $server->{$key} = $val;
+    }
+    my $listeners = $config->('NCIP.listeners');
+    foreach my $svc ( keys %$listeners ) {
+        $server->{'port'} = $listeners->{$svc}->{'port'};
+    }
+}
 
+sub post_configure_hook {
+    my $self = shift;
+    use Data::Dumper;
+    print Dumper $self;
+}
 
 1;
 __END__
index dd270dc..22ca4e0 100644 (file)
@@ -3,7 +3,13 @@
 use strict;
 use warnings;
 
-use Test::More tests => 1;
+use Test::More tests => 2;
 BEGIN { use_ok('NCIPServer') };
 
+ok(my $server = NCIPServer->new({config_dir => '../t/config_sample'}));
+use Data::Dumper;
 
+print Dumper $server;
+$server->run();
+
+print Dumper $server;
index 7fc02e2..04d6b05 100644 (file)
@@ -3,13 +3,18 @@
 
   <server-params
     min_servers='1'
-    min_spare_servers='0' 
+    min_spare_servers='0'
     log_file='Sys::Syslog'
     syslog_ident='ncip_server'
     syslog_facility='local6'
   />
   
   <listeners>
+    <service
+      port="127.0.0.1:6001/tcp"
+      transport="RAW"
+      protocol="NCIP/2.00"
+      timeout="60" />
   </listeners>
 
   <agencies>