X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FCWMP%2FServer.pm;h=5a452c25114d76f01acc7d94d26980b7942c481a;hb=7a346eeec59e7415d184a0e76cc863863cc308f6;hp=76348065a958d8faf0fdf6ee7837527870a4a42e;hpb=94d44753b14c178db4c33388f88e59e1de81c016;p=perl-cwmp.git diff --git a/lib/CWMP/Server.pm b/lib/CWMP/Server.pm index 7634806..5a452c2 100644 --- a/lib/CWMP/Server.pm +++ b/lib/CWMP/Server.pm @@ -7,8 +7,7 @@ use warnings; use base qw/Class::Accessor/; __PACKAGE__->mk_accessors( qw/ port -store -default_queue +session background debug @@ -16,6 +15,7 @@ server / ); use CWMP::Session; +use CWMP::Queue; use Carp qw/confess/; use Data::Dump qw/dump/; @@ -30,8 +30,7 @@ CWMP::Server - description my $server = CWMP::Server->new({ port => 3333, - store => 'state.db', - default_queue => [ qw/GetRPCMethods GetParameterNames/ ], + session => { ... }, background => 1, debug => 1 }); @@ -44,15 +43,11 @@ Options: port to listen on -=item store +=item session hash with key C with value C if L is used. Other parametars are optional. -=item default_queue - -commands which will be issued to every CPE on connect - =back =cut @@ -72,8 +67,7 @@ sub new { CWMP::Server::Helper->new({ proto => 'tcp', port => $self->port, - default_queue => $self->default_queue, - store => $self->store, + session => $self->session, debug => $self->debug, background => $self->background, }) @@ -110,16 +104,16 @@ sub options { $self->SUPER::options($template); # new single-value options - foreach my $p ( qw/ store debug / ) { + foreach my $p ( qw/ session debug / ) { $prop->{ $p } ||= undef; $template->{ $p } = \$prop->{ $p }; } # new multi-value options - foreach my $p ( qw/ default_queue / ) { - $prop->{ $p } ||= []; - $template->{ $p } = $prop->{ $p }; - } +# foreach my $p ( qw/ default_queue / ) { +# $prop->{ $p } ||= []; +# $template->{ $p } = $prop->{ $p }; +# } } @@ -135,24 +129,20 @@ sub process_request { my $sock = $prop->{client}; confess "no sock in ", ref( $self ) unless $sock; - warn "default CPE queue ( " . join(",",@{$prop->{default_queue}}) . " )\n" if defined($prop->{default_queue}); + my $sess = $prop->{session} || confess "no session"; eval { - my $session = CWMP::Session->new({ - sock => $sock, - queue => $prop->{default_queue}, - store => $prop->{store}, - debug => $prop->{debug}, - }) || confess "can't create session"; + $sess->{sock} = $sock; + $sess->{debug} = $prop->{debug}; + + my $session = CWMP::Session->new( $sess ) || confess "can't create session from ",dump( $sess ); while ( $session->process_request ) { - warn "...another one bites the dust...\n"; + warn "...waiting for next request from CPE...\n"; } }; - if ($@) { - warn $@; - } + warn "ERROR: $@\n" if $@; warn "...returning to accepting new connections\n";