File Coverage

blib/lib/Apache/MagicPOST.pm
Criterion Covered Total %
statement 13 15 86.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 18 20 90.0


line stmt bran cond sub pod time code
1             package Apache::MagicPOST;
2            
3             require 5.005_62;
4 1     1   24311 use strict;
  1         3  
  1         44  
5 1     1   7 use vars qw($VERSION @EXPORTER @ISA);
  1         1  
  1         84  
6 1     1   5 use warnings;
  1         6  
  1         45  
7            
8             require Exporter;
9 1     1   1832 use AutoLoader qw(AUTOLOAD);
  1         1684  
  1         6  
10            
11             our @ISA = qw(Exporter);
12            
13             our @EXPORT = qw();
14             our $VERSION = '1.2';
15            
16 1     1   701 use Apache::Constants qw(:common );
  0            
  0            
17              
18             use Apache::Request;
19              
20             # ********************************************
21             # This module isn't usable, it destroys POST
22             # data for subsequent handlers ;-(
23             # ********************************************
24             sub _handler {
25             my $r = shift;
26             return DECLINED unless $r->method() eq 'POST' ;
27             return DECLINED unless ($r->header_in('Content-type') eq 'application/x-www-form-urlencoded');
28              
29             my $method_param_name = $r->dir_config('MagicPOSTMethodParamName');
30             $method_param_name = 'method' unless ( $method_param_name );
31              
32             my %params = $r->content;
33             return DECLINED unless ( exists ( $params{$method_param_name} ));
34             $r->method( $params{$method_param_name} );
35             delete $params{$method_param_name};
36              
37             foreach(keys %params)
38             {
39             $r->header_in( $_ => $params{$_} );
40             delete $params{$_};
41             }
42             $r->header_in( 'Content-length' => undef );
43             $r->header_in( 'Content-type' => undef );
44              
45             return OK;
46             }
47            
48             1;
49             __END__