--- google/lib/CWMP/Request.pm 2007/06/20 21:37:52 62 +++ google/lib/CWMP/Request.pm 2007/06/20 23:07:48 65 @@ -73,7 +73,7 @@ 'Inform' => sub { $state->{_dispatch} = 'Inform'; # what reponse to call }, - qr/DeviceId/ => sub { + 'DeviceId' => sub { my ($tag_name, $tag_hash, $context, $parent_data) = @_; foreach my $name ( keys %$tag_hash ) { next if $name eq '_content'; @@ -82,7 +82,7 @@ $state->{DeviceID}->{ $key } = _tag( $tag_hash, $name, '_content' ); } }, - qr/EventStruct/ => sub { + 'EventStruct' => sub { my ($tag_name, $tag_hash, $context, $parent_data) = @_; push @{ $state->{EventStruct} }, $tag_hash->{EventCode}->{_content}; }, @@ -90,7 +90,7 @@ my ($tag_name, $tag_hash, $context, $parent_data) = @_; $state->{$tag_name} = $tag_hash->{_content}; }, - qr/ParameterValueStruct/ => sub { + 'ParameterValueStruct' => sub { my ($tag_name, $tag_hash, $context, $parent_data) = @_; # Name/Value tags must be case insnesitive my $value = (grep( /value/i, keys %$tag_hash ))[0]; @@ -100,14 +100,22 @@ # GetRPCMethodsResponse # qr/^(?:^\w+:)*string$/ => 'content array', - qr/MethodList/ => sub { + 'MethodList' => sub { my ($tag_name, $tag_hash, $context, $parent_data) = @_; $state->{MethodList} = _tag( $tag_hash, 'string' ); - }, + }, + # + # GetParameterNamesResponse + # + 'ParameterInfoStruct' => sub { + my ($tag_name, $tag_hash, $context, $parent_data) = @_; + $state->{ParameterInfo}->{ _tag($tag_hash, 'Name', '_content') } = _tag($tag_hash, 'Writable', '_content' ); + #warn dump( $tag_name, $tag_hash, $context ); + }, # # Fault # - qr/^Fault$/ => sub { + 'Fault' => sub { my ($tag_name, $tag_hash, $context, $parent_data) = @_; $state->{Fault} = { FaultCode => _tag( $tag_hash, 'FaultCode', '_content' ),