Code

Imported upstream version 1.3rc4.
[pkg-rrdtool.git] / bindings / perl-piped / RRDp.pm
index bc95a1289918d923243a89b394d6755b58b4146c..e37104bd78f88fb351a9a06919122b2d724a760a 100644 (file)
@@ -120,7 +120,7 @@ sub cmd (@);
 sub end ();
 sub read ();
 
-$VERSION=1.2027;
+$VERSION=1.299908051800;
 
 sub start ($){
   croak "rrdtool is already running"
@@ -146,7 +146,6 @@ sub read () {
   my $buffer;
   my $nfound;
   my $timeleft;
-  my $ERR = 0;
   vec($inmask,fileno(RRDreadHand),1) = 1; # setup select mask for Reader
   while (1) {
     my $rout;    
@@ -163,11 +162,14 @@ sub read () {
       $RRDp::error = undef;
       if ($line =~  m|^ERROR|) {       
        $RRDp::error_mode eq 'catch' ? $RRDp::error = $line : croak $line;
-       $ERR = 1;
+        $RRDp::sys = undef;
+        $RRDp::user = undef;
+        $RRDp::real = undef;
+       return undef;
       } 
-      elsif ($line =~ m|^OK u:([\d\.]+) s:([\d\.]+) r:([\d\.]+)|){
+      elsif ($line =~ m|^OK(?: u:([\d\.]+) s:([\d\.]+) r:([\d\.]+))?|){
        ($RRDp::sys,$RRDp::user,$RRDp::real)=($1,$2,$3);
-       return $ERR == 1 ? undef : \$buffer;
+       return \$buffer;
       } else {
        $buffer .= $line. "\n";
       }