X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy.pm;h=16625d0a458c5b7b2d206116c36b52651cfb615a;hb=99b950809a7775874c83bf7a7a54bbf49952997a;hp=8e6d3acdb6b56b75d3a2fde7747556e091341302;hpb=a872bfd36956697679ac33140503268b57d7aa07;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy.pm b/lib/ZOOM/IRSpy.pm index 8e6d3ac..16625d0 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; @@ -21,8 +21,10 @@ use ZOOM::IRSpy::Utils qw(cql_target render_record irspy_record2identifier); our @ISA = qw(); -our $VERSION = '1.01'; +our $VERSION = '1.02'; our $irspy_to_zeerex_xsl = dirname(__FILE__) . '/../../xsl/irspy2zeerex.xsl'; +our $debug = 0; +our $xslt_max_depth = 250; # Enumeration for callback functions to return @@ -68,6 +70,7 @@ sub new { my $class = shift(); my($dbname, $user, $password, $activeSetSize) = @_; + my @options; push @options, (user => $user, password => $password) if defined $user; @@ -77,10 +80,15 @@ sub new { my $xslt = new XML::LibXSLT; + # raise the maximum number of nested template calls and variables/params (default 250) + warn "raise the maximum number of nested template calls: $xslt_max_depth\n" if $debug; + $xslt->max_depth($xslt_max_depth); + $xslt->register_function($ZOOM::IRSpy::Utils::IRSPY_NS, 'strcmp', \&ZOOM::IRSpy::Utils::xslt_strcmp); my $libxml = new XML::LibXML; + warn "use irspy_to_zeerex_xsl xslt sheet: $irspy_to_zeerex_xsl\n" if $debug; my $xsl_doc = $libxml->parse_file($irspy_to_zeerex_xsl); my $irspy_to_zeerex_style = $xslt->parse_stylesheet($xsl_doc); @@ -230,6 +238,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 +246,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}); }