Apache-WebDAV
view release on metacpan or search on metacpan
lib/Apache/WebDAV.pm view on Meta::CPAN
#
# Perl implementation of a WebDAV server running under apache.
#
package Apache::WebDAV;
use strict;
use warnings;
our $VERSION = '0.01';
use Apache;
use Apache::Constants qw(:response :http);
use Apache::Util qw(unescape_uri escape_uri);
use Data::Dumper;
use Encode;
use File::Spec;
use File::Find::Rule::Filesys::Virtual;
use URI;
use URI::Escape;
use XML::Simple qw(:strict);
use XML::LibXML;
#
# This module implements an abstract WebDAV server layer. Like
# Net::DAV::Server, which it was sort of modelled after, this module interacts
# with instances of Filesys::Virtual child classes.
#
# Wherever possible, I have used the response constants from Apache::Constants,
# but sometimes there isn't one, and the code has been used directly.
#
# A list of implemented methods.
my %implemented = (
copy => 1,
delete => 1,
get => 1,
head => 1,
mkcol => 1,
move => 1,
options => 1,
propfind => 1,
put => 1,
#proppatch => 1,
#post => 1,
#trace => 1,
#lock => 1,
#unlock => 1,
);
#
# Constructor. Does nothing.
#
sub new
{
my $class = shift;
bless {}, $class;
}
#
# Specify which modules will handle which paths.
#
sub register_handlers
{
my ($self, @handlers) = @_;
$self->{'handlers'} = \@handlers;
}
#
# Process the request. The $r is the apache object passed in from the mod_perl
# handler.
#
sub process
( run in 1.653 second using v1.01-cache-2.11-cpan-39bf76dae61 )