X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy.pm;h=0a4614a00a226bb52435ed89eda781d757d1cbeb;hb=3a4d8054ad1bcb312d538158ff207f67623c1c3e;hp=8e6d3acdb6b56b75d3a2fde7747556e091341302;hpb=a872bfd36956697679ac33140503268b57d7aa07;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy.pm b/lib/ZOOM/IRSpy.pm index 8e6d3ac..0a4614a 100644 --- a/lib/ZOOM/IRSpy.pm +++ b/lib/ZOOM/IRSpy.pm @@ -1,4 +1,4 @@ -# $Id: IRSpy.pm,v 1.88 2007-09-18 16:57:37 mike Exp $ +# $Id: IRSpy.pm,v 1.90 2008-07-16 11:42:13 mike Exp $ package ZOOM::IRSpy; @@ -23,6 +23,7 @@ use ZOOM::IRSpy::Utils qw(cql_target render_record our @ISA = qw(); our $VERSION = '1.01'; our $irspy_to_zeerex_xsl = dirname(__FILE__) . '/../../xsl/irspy2zeerex.xsl'; +our $xslt_max_depth = 250; # Enumeration for callback functions to return @@ -77,6 +78,9 @@ sub new { my $xslt = new XML::LibXSLT; + # raise the maximum number of nested template calls and variables/params (default 250) + $xslt->max_depth($xslt_max_depth); + $xslt->register_function($ZOOM::IRSpy::Utils::IRSPY_NS, 'strcmp', \&ZOOM::IRSpy::Utils::xslt_strcmp); @@ -230,6 +234,7 @@ sub _next_connection { my $i = $this->{modi}; if (!defined $n) { $target = shift @{ $this->{queue} }; + return undef if !defined $target; } else { while (1) { $target = shift @{ $this->{queue} }; @@ -237,10 +242,11 @@ sub _next_connection { my $h = _hash($target); my $hmodn = $h % $n; last if $hmodn == $i; - $this->log("irspy", "'$target' hash $h % $n = $hmodn != $i"); + #$this->log("irspy", "'$target' hash $h % $n = $hmodn != $i"); } } + die "oops -- target is undefined" if !defined $target; return create ZOOM::IRSpy::Connection($this, $target, async => 1, timeout => $this->{timeout}); }