X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FCWMP%2FVendor.pm;h=fdbdc1ede7259b5664511731d330f470a00f22e1;hb=df6a32df87becf896cccaae4b24cb88461391ffe;hp=cc055da9925bebe44aa2b6849dfdfef5e45346b1;hpb=73114373a890391990bba21f0b4eadb18a4a859b;p=perl-cwmp.git diff --git a/lib/CWMP/Vendor.pm b/lib/CWMP/Vendor.pm index cc055da..fdbdc1e 100644 --- a/lib/CWMP/Vendor.pm +++ b/lib/CWMP/Vendor.pm @@ -39,7 +39,7 @@ sub new { return $self; } -my $cpe_faulty; +our $cpe_faulty; my $serial2ip = { 'CP0636JT3SH' => '10.0.0.1', @@ -58,8 +58,15 @@ my ( $last_ip, $last_serial ); sub state2serial { my $state = shift; - my $serial = $state->{DeviceID}->{SerialNumber} || die "no serial?"; - my $ip = $state->{Parameter}->{'.ExternalIPAddress'} || die "no ip?"; + my $serial = $state->{DeviceID}->{SerialNumber} || die "no DeviceID.SerialNumber in ",dump($state); + chomp($serial); + my $ip = + $state->{Parameter}->{'.ExternalIPAddress'} || + $state->{Parameter}->{ + # fix for firmware 5.3.3.4 which returns full path + ( grep { m/\.ExternalIPAddress/ } keys %{ $state->{Parameter} } )[0] + } || + die "no .ExternalIPAddress in ",dump($state); warn "## state2serial $serial $ip\n" if $debug;