projects
/
perl-cwmp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
find all Parameters supported by CPE
[perl-cwmp.git]
/
lib
/
CWMP
/
Session.pm
diff --git
a/lib/CWMP/Session.pm
b/lib/CWMP/Session.pm
index
02ff046
..
9d2a7b1
100644
(file)
--- a/
lib/CWMP/Session.pm
+++ b/
lib/CWMP/Session.pm
@@
-70,14
+70,17
@@
my $vendor_data = {
'InternetGatewayDevice.DeviceInfo.ProvisioningCode' => 'test provision',
};
'InternetGatewayDevice.DeviceInfo.ProvisioningCode' => 'test provision',
};
+our $set_tried;
+
sub vendor_hook {
sub vendor_hook {
- my ( $self, $stored, $queue ) = @_;
- warn "# vendor_hook ",dump($stored) if $self->debug > 2;
+ my ( $self, $
uid, $
stored, $queue ) = @_;
+ warn "# vendor_hook
$uid
",dump($stored) if $self->debug > 2;
my @refresh;
foreach my $n ( keys %$vendor_data ) {
my @refresh;
foreach my $n ( keys %$vendor_data ) {
- if ( $vendor_data->{$n} ne $stored->{$n} ) {
+ if ( defined $stored->{$n} && $vendor_data->{$n} ne $stored->{$n} ) {
+ next if $set_tried->{$uid}->{$n}++;
push @refresh, $n;
$queue->enqueue( 'SetParameterValues', { $n => $vendor_data->{$n} } );
}
push @refresh, $n;
$queue->enqueue( 'SetParameterValues', { $n => $vendor_data->{$n} } );
}
@@
-85,7
+88,7
@@
sub vendor_hook {
if ( @refresh ) {
$queue->enqueue( 'GetParameterValues', [ @refresh ] );
if ( @refresh ) {
$queue->enqueue( 'GetParameterValues', [ @refresh ] );
- warn "vendor_hook SetParameterValues ", dump( @refresh );
+ warn "vendor_hook
$uid
SetParameterValues ", dump( @refresh );
return $self->dispatch( 'GetParameterValues', [ @refresh ] );
}
return $self->dispatch( 'GetParameterValues', [ @refresh ] );
}
@@
-169,7
+172,10
@@
sub process_request {
if ( ! defined $stored->{ParameterInfo} ) {
$xml = $self->dispatch( 'GetParameterNames', [ 'InternetGatewayDevice.', 1 ] );
} else {
if ( ! defined $stored->{ParameterInfo} ) {
$xml = $self->dispatch( 'GetParameterNames', [ 'InternetGatewayDevice.', 1 ] );
} else {
- my @params = grep { m/\.$/ } keys %{ $stored->{ParameterInfo} };
+ my @params =
+ grep { m/\.$/ }
+ keys %{ $stored->{ParameterInfo} }
+ ;
if ( @params ) {
warn "# GetParameterNames ", dump( @params );
my $first = shift @params;
if ( @params ) {
warn "# GetParameterNames ", dump( @params );
my $first = shift @params;
@@
-196,7
+202,7
@@
sub process_request {
$queue->enqueue( 'GetParameterValues', [ @chunk ] );
}
$queue->enqueue( 'GetParameterValues', [ @chunk ] );
}
- } elsif ( $xml = $self->vendor_hook( $stored, $queue ) ) {
+ } elsif ( $xml = $self->vendor_hook( $
uid, $
stored, $queue ) ) {
warn "vendor_hook triggered\n";
warn "vendor_hook triggered\n";