X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXXml.pm;h=b990410127167ac19f8339126fb215be371888df;hb=1470c53c6c47c690261cb096d638c8f82ed7772d;hp=a9072d467d4fcc3ea8e3ea150be2174c3cd749af;hpb=bc67e4afa9b3c9fcf0e537e04a743ad5852356e6;p=spider.git diff --git a/perl/DXXml.pm b/perl/DXXml.pm index a9072d46..b9904101 100644 --- a/perl/DXXml.pm +++ b/perl/DXXml.pm @@ -39,7 +39,7 @@ sub new { my $pkg = shift; my $class = ref $pkg || $pkg; - my $self = bless{@_}, $class; + my $self = bless{}, $class; while (@_) { my $key = shift; my $val = shift; @@ -64,7 +64,7 @@ sub init $XML::Simple::PREFERRED_PARSER = 'XML::Parser'; import XML::Simple; $DXProt::handle_xml = 1; - $xs = new XML::Simple(Cache=>[]); + $xs = new XML::Simple(ContentKey=>'content', ForceArray=>1); } undef $@; } @@ -125,9 +125,9 @@ sub normal $xref->{'-timet'} = $t; return if DXDupe::check("xml,$o,$t,$id", $dupeage); - $xref = bless $xref, $pkg; - $xref->{'-xml'} = $line; - $xref->handle_input($dxchan); + my $r = bless $xref, $pkg; + $r->{'-xml'} = $line; + $r->handle_input($dxchan); } # @@ -156,7 +156,6 @@ sub process DXXml::Ping::add($main::me, $dxchan->call); $dxchan->{nopings} -= 1; $dxchan->{lastping} = $t; - $dxchan->{lastping} += $dxchan->{pingint} / 2 unless @{$dxchan->{pingtime}}; } } } @@ -269,24 +268,12 @@ sub route if ($dxchan->handle_xml) { $dxchan->send($self->toxml); - } elsif ($dxchan->isnode) { + } elsif ($dxchan->is_node) { my $ref = $self->topcxx($dxchan); - if (ref $ref) { - for (@$ref) { - $dxchan->send($_); - } - } else { - $dxchan->send($ref); - } + $dxchan->send($ref); } else { my $ref = $self->tocmd($dxchan); - if (ref $ref) { - for (@$ref) { - $dxchan->send($_); - } - } else { - $dxchan->send($ref); - } + $dxchan->send($ref); } }