call set if vendor.yaml changes
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 8 Mar 2010 21:24:31 +0000 (22:24 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 8 Mar 2010 21:24:31 +0000 (22:24 +0100)
lib/CWMP/Vendor.pm

index 827c69b..438c321 100644 (file)
@@ -83,20 +83,17 @@ sub vendor_config {
                if ( ! exists $stored->{$n} ) {
                        warn "# $uid missing $n\n";
                        push @refresh, $n;
                if ( ! exists $stored->{$n} ) {
                        warn "# $uid missing $n\n";
                        push @refresh, $n;
-               } elsif ( $vendor->{$n} ne $stored->{$n} ) {
-                       $queue->enqueue( 'SetParameterValues', { $n => $vendor->{$n} } )
-                               unless $tried->{$uid}->{$n}->{set}++;
+               } elsif ( $vendor->{$n} ne $stored->{$n} && ! $tried->{$uid}->{$n}->{set} && $tried->{$uid}->{$n}->{set} ne $vendor->{$n} ) {
+                       $queue->enqueue( 'SetParameterValues', { $n => $vendor->{$n} } );
+                       push @refresh, $n;
+                       $tried->{$uid}->{$n}->{set} = $vendor->{$n};
                        warn "# set $uid $n $stored->{$n} -> $vendor->{$n}\n";
                } else {
                        warn "# ok $uid $n\n";
                }
        }
 
                        warn "# set $uid $n $stored->{$n} -> $vendor->{$n}\n";
                } else {
                        warn "# ok $uid $n\n";
                }
        }
 
-       if ( @refresh ) {
-               $queue->enqueue( 'GetParameterValues', [ @refresh ] );
-               warn "vendor_hook $uid SetParameterValues ", dump( @refresh );
-               return ( 'GetParameterValues', [ @refresh ] );
-       }
+       return ( 'GetParameterValues', [ @refresh ] ) if @refresh;
 
        warn "# tried ",dump $tried;
 
 
        warn "# tried ",dump $tried;