X-Git-Url: http://git.rot13.org/?p=perl-cwmp.git;a=blobdiff_plain;f=lib%2FCWMP%2FVendor.pm;h=3d7a31b39b14cc0ea0037ac272e7c4effb48376d;hp=cc055da9925bebe44aa2b6849dfdfef5e45346b1;hb=7f358e7af381390ec9f4c727a0a9e8aac94f8d59;hpb=7be6369d2f8ce2bedd88f1012fd1f8a9754e1515 diff --git a/lib/CWMP/Vendor.pm b/lib/CWMP/Vendor.pm index cc055da..3d7a31b 100644 --- a/lib/CWMP/Vendor.pm +++ b/lib/CWMP/Vendor.pm @@ -58,8 +58,14 @@ 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); + 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;