projects
/
irspy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stop testing a target if we got to many timeouts (>= 3). See bug #3382
[irspy-moved-to-github.git]
/
lib
/
ZOOM
/
IRSpy
/
Record.pm
diff --git
a/lib/ZOOM/IRSpy/Record.pm
b/lib/ZOOM/IRSpy/Record.pm
index
3a5c5f5
..
c5b6c1b
100644
(file)
--- a/
lib/ZOOM/IRSpy/Record.pm
+++ b/
lib/ZOOM/IRSpy/Record.pm
@@
-1,4
+1,3
@@
-# $Id: Record.pm,v 1.27 2007-08-02 11:28:38 mike Exp $
package ZOOM::IRSpy::Record;
### I don't think there's any reason for this to be separate from
package ZOOM::IRSpy::Record;
### I don't think there's any reason for this to be separate from
@@
-8,6
+7,7
@@
use 5.008;
use strict;
use warnings;
use strict;
use warnings;
+use Scalar::Util;
use XML::LibXML;
use XML::LibXML::XPathContext;
use ZOOM::IRSpy::Utils qw(xml_encode isodate irspy_xpath_context);
use XML::LibXML;
use XML::LibXML::XPathContext;
use ZOOM::IRSpy::Utils qw(xml_encode isodate irspy_xpath_context);
@@
-36,14
+36,21
@@
sub new {
### Parser should be in the IRSpy object
my $parser = new XML::LibXML();
### Parser should be in the IRSpy object
my $parser = new XML::LibXML();
- return bless {
+ my $this = bless {
irspy => $irspy,
target => $target,
parser => $parser,
zeerex => $parser->parse_string($zeerex)->documentElement(),
irspy => $irspy,
target => $target,
parser => $parser,
zeerex => $parser->parse_string($zeerex)->documentElement(),
+ zoom_error => { TIMEOUT => 0 },
}, $class;
}, $class;
+
+ #Scalar::Util::weaken($this->{irspy});
+ #Scalar::Util::weaken($this->{parser});
+
+ return $this;
}
}
+sub zoom_error { return shift->{'zoom_error'} }
sub _empty_zeerex_record {
my($target) = @_;
sub _empty_zeerex_record {
my($target) = @_;
@@
-147,7
+154,12
@@
sub _half_decent_appendWellBalancedChunk {
if (1) {
$frag =~ s,>, xmlns:irspy="$ZOOM::IRSpy::Utils::IRSPY_NS">,;
if (1) {
$frag =~ s,>, xmlns:irspy="$ZOOM::IRSpy::Utils::IRSPY_NS">,;
- $node->appendWellBalancedChunk($frag);
+ eval {
+ $node->appendWellBalancedChunk($frag);
+ }; if ($@) {
+ print STDERR "died while trying to appendWellBalancedChunk(), probably due to bad XML:\n$frag";
+ die $@;
+ }
return;
}
return;
}