X-Git-Url: http://git.rot13.org/?p=perl-cwmp.git;a=blobdiff_plain;f=lib%2FCWMP%2FVendor.pm;h=8b2693f69d591e1110554cd11606dbf73c5fad9b;hp=438c321f47e97b406d5b8b6a291cb1664e805ef0;hb=HEAD;hpb=28448dddeef3302cfd367158258670efa226ed5d diff --git a/lib/CWMP/Vendor.pm b/lib/CWMP/Vendor.pm index 438c321..8b2693f 100644 --- a/lib/CWMP/Vendor.pm +++ b/lib/CWMP/Vendor.pm @@ -83,13 +83,18 @@ sub vendor_config { if ( ! exists $stored->{$n} ) { warn "# $uid missing $n\n"; push @refresh, $n; - } elsif ( $vendor->{$n} ne $stored->{$n} && ! $tried->{$uid}->{$n}->{set} && $tried->{$uid}->{$n}->{set} ne $vendor->{$n} ) { + } elsif ( $vendor->{$n} ne $stored->{$n} + && ( ! $tried->{$uid}->{$n}->{set} || $tried->{$uid}->{$n}->{set} ne $vendor->{$n} ) + ) { $queue->enqueue( 'SetParameterValues', { $n => $vendor->{$n} } ); + $queue->enqueue( 'GetParameterValues', [ $n ] ); # refresh after change push @refresh, $n; $tried->{$uid}->{$n}->{set} = $vendor->{$n}; warn "# set $uid $n $stored->{$n} -> $vendor->{$n}\n"; + } elsif ( $tried->{$uid}->{$n}->{set} eq $vendor->{$n} && $vendor->{$n} ne $stored->{$n} ) { + warn "ERROR $uid $n $stored->{$n} != $vendor->{$n}\n"; } else { - warn "# ok $uid $n\n"; + warn "# ok $uid $n = $stored->{$n}\n"; } }