]> xenbits.xensource.com Git - people/dariof/osstest.git/commitdiff
DhcpWatch::leases: Check errors
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 31 Oct 2014 11:20:04 +0000 (11:20 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 6 Nov 2014 16:20:29 +0000 (16:20 +0000)
Check error returns from connect() et al (which present as an undef
return from IO::Socket::INET), and from read() (which can be detected
via IO::Handle::error).

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Osstest/DhcpWatch/leases.pm

index 6f142e759070ded546a031236f3adce139e33a0a..9a74c4084406849e1c6fa56ba1564396b8e013da 100644 (file)
@@ -58,6 +58,7 @@ sub check_ip ($$) {
        if (!defined $leases) { return "open $leasesfn: $!"; }
     } else {
        $leases= new IO::Socket::INET(PeerAddr => $leasesfn);
+       if (!defined $leases) { return "connect to $leasesfn: $!"; }
     }
 
     my $lstash= "dhcpleases-$gho->{Guest}";
@@ -163,6 +164,9 @@ sub check_ip ($$) {
 
     if (!$best) {
         $saveas->("$lstash.nolease", 3);
+       if ($leases->error) {
+           return "error reading $leasesfn";
+       }
         return "no active lease";
     }
     $gho->{Ip}= $best->{' addr'};