projects
/
perl-cwmp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r266@brr: dpavlin | 2007-11-25 19:50:35 +0100
[perl-cwmp.git]
/
lib
/
CWMP
/
Request.pm
diff --git
a/lib/CWMP/Request.pm
b/lib/CWMP/Request.pm
index
d4817b0
..
51f70f3
100644
(file)
--- a/
lib/CWMP/Request.pm
+++ b/
lib/CWMP/Request.pm
@@
-4,11
+4,12
@@
use warnings;
use strict;
use XML::Rules;
use strict;
use XML::Rules;
-use CWMP::Tree;
use Data::Dump qw/dump/;
use Carp qw/confess cluck/;
use Class::Trigger;
use Data::Dump qw/dump/;
use Carp qw/confess cluck/;
use Class::Trigger;
+#use Devel::LeakTrace::Fast;
+
=head1 NAME
CWMP::Request - parse SOAP request metods
=head1 NAME
CWMP::Request - parse SOAP request metods
@@
-21,7
+22,7
@@
All methods described below call triggers with same name
our $state; # FIXME check this!
our $state; # FIXME check this!
-
my
$rules = [
+
our
$rules = [
#_default => 'content trim',
x_default => sub {
my ($tag_name, $tag_hash, $context, $parent_data) = @_;
#_default => 'content trim',
x_default => sub {
my ($tag_name, $tag_hash, $context, $parent_data) = @_;
@@
-130,6
+131,8
@@
sub parse {
my $xml = shift || confess "no xml?";
my $xml = shift || confess "no xml?";
+ $state = {};
+
my $parser = XML::Rules->new(
# start_rules => [
# '^division_name,fax' => 'skip',
my $parser = XML::Rules->new(
# start_rules => [
# '^division_name,fax' => 'skip',
@@
-144,9
+147,12
@@
sub parse {
rules => $rules,
);
rules => $rules,
);
-
$state = {}
;
+
warn "## created $parser\n"
;
$parser->parsestring( $xml );
$parser->parsestring( $xml );
+
+ undef $parser;
+
if ( my $trigger = $state->{_trigger} ) {
warn "### call_trigger( $trigger )\n";
$self->call_trigger( $trigger, $state );
if ( my $trigger = $state->{_trigger} ) {
warn "### call_trigger( $trigger )\n";
$self->call_trigger( $trigger, $state );