r238@brr: dpavlin | 2007-11-18 18:32:08 +0100
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 18 Nov 2007 17:32:22 +0000 (17:32 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 18 Nov 2007 17:32:22 +0000 (17:32 +0000)
 fix for firmware 5.3.3.4 which returns full path for .ExternalIPAddress

git-svn-id: https://perl-cwmp.googlecode.com/svn/trunk@212 836a5e1a-633d-0410-964b-294494ad4392

lib/CWMP/Vendor.pm

index cc055da..3d7a31b 100644 (file)
@@ -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;