diff -N -urbB modules/dav/acl/Makefile.in modules/dav/acl/Makefile.in --- modules/dav/acl/Makefile.in 1969-12-31 19:00:00.000000000 -0500 +++ modules/dav/acl/Makefile.in 2009-08-16 15:40:38.000000000 -0400 @@ -0,0 +1,3 @@ +# a modules Makefile has no explicit targets -- they will be defined by +# whatever modules are enabled. just grab special.mk to deal with this. +include $(top_srcdir)/build/special.mk diff -N -urbB modules/dav/acl/config9.m4 modules/dav/acl/config9.m4 --- modules/dav/acl/config9.m4 1969-12-31 19:00:00.000000000 -0500 +++ modules/dav/acl/config9.m4 2009-08-16 23:56:40.000000000 -0400 @@ -0,0 +1,9 @@ +dnl modules enabled in this directory by default + +APACHE_MODPATH_INIT(dav/acl) + +dav_fs_objects="mod_dav_acl.lo" + +APACHE_MODULE(dav_acl, DAV provider for the ACL, $dav_acl_objects, , no) + +APACHE_MODPATH_FINISH diff -N -urbB modules/dav/acl/mod_dav_acl.c modules/dav/acl/mod_dav_acl.c --- modules/dav/acl/mod_dav_acl.c 1969-12-31 19:00:00.000000000 -0500 +++ modules/dav/acl/mod_dav_acl.c 2009-08-29 12:29:45.000000000 -0400 @@ -0,0 +1,86 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "httpd.h" +#include "http_config.h" + +#include "mod_dav.h" + +/* per-server configuration */ +typedef struct { + +} dav_acl_server_conf; + +extern module AP_MODULE_DECLARE_DATA dav_acl_module; + +static void *dav_acl_create_server_config(apr_pool_t *p, server_rec *s) +{ + return apr_pcalloc(p, sizeof(dav_acl_server_conf)); +} + +static void *dav_acl_merge_server_config(apr_pool_t *p, void *base, void *overrides) +{ + dav_acl_server_conf *parent = base; + dav_acl_server_conf *child = overrides; + dav_acl_server_conf *newconf; + + newconf = apr_pcalloc(p, sizeof(*newconf)); + + return newconf; +} + +/** options hooks */ +static dav_error *acl_options_dav_header(request_rec *r, + const dav_resource *resource, + apr_text_header *phdr) +{ + apr_text_append(r->pool, phdr, "access-control"); + return NULL; +} + +static dav_error *acl_options_dav_method(request_rec *r, + const dav_resource *resource, + apr_text_header *phdr) +{ + apr_text_append(r->pool, phdr, "REPORT"); + apr_text_append(r->pool, phdr, "ACL"); + return NULL; +} + +static dav_hooks_options options = { + acl_options_dav_header, + acl_options_dav_method, + NULL +}; + +static const command_rec dav_acl_cmds[] = { + { NULL } +}; + +static void register_hooks(apr_pool_t *p) +{ + dav_options_register_hooks (p, "acl", &options); +} + +module AP_MODULE_DECLARE_DATA dav_acl_module = { + STANDARD20_MODULE_STUFF, + NULL, /* dir config creater */ + NULL, /* dir merger --- default is to override */ + dav_acl_create_server_config, /* server config */ + dav_acl_merge_server_config, /* merge server config */ + dav_acl_cmds, /* command table */ + register_hooks, /* register hooks */ +};