SG(rfc1867_uploaded_files) = NULL;
if (SG(server_context)) {
- if (SG(request_info).request_method
- && !strcmp(SG(request_info).request_method, "POST")) {
+ if ( SG(request_info).request_method
+ && (!strcmp(SG(request_info).request_method, "POST")
+ || (PG(allow_webdav_methods)
+ && (!strcmp(SG(request_info).request_method, "PROPFIND")
+ || !strcmp(SG(request_info).request_method, "PROPPATCH")
+ || !strcmp(SG(request_info).request_method, "PUT")
+ || !strcmp(SG(request_info).request_method, "MOVE")
+ || !strcmp(SG(request_info).request_method, "POST")
+ || !strcmp(SG(request_info).request_method, "COPY")
+ || !strcmp(SG(request_info).request_method, "LOCK"))))) {
if (!SG(request_info).content_type) {
SG(request_info).content_type_dup = NULL;
if(PG(always_populate_raw_post_data)) {
STD_PHP_INI_BOOLEAN("allow_url_fopen", "1", PHP_INI_ALL, OnUpdateBool, allow_url_fopen, php_core_globals, core_globals)
STD_PHP_INI_BOOLEAN("always_populate_raw_post_data", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, always_populate_raw_post_data, php_core_globals, core_globals)
+ STD_PHP_INI_BOOLEAN("allow_webdav_methods", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, allow_webdav_methods, php_core_globals, core_globals)
PHP_INI_END()
/* }}} */
zend_bool allow_url_fopen;
zend_bool always_populate_raw_post_data;
-
+
+ zend_bool allow_webdav_methods;
};
}
zend_first_try {
- /* We don't accept OPTIONS requests, but take everything else */
- if (r->method_number == M_OPTIONS) {
- r->allowed |= (1 << METHODS) - 1;
- return DECLINED;
- }
/* Make sure file exists */
if (filename == NULL && r->finfo.st_mode == 0) {
if (per_dir_conf) {
zend_hash_apply((HashTable *) per_dir_conf, (apply_func_t) php_apache_alter_ini_entries TSRMLS_CC);
}
+
+ /* We don't accept OPTIONS requests, but take everything else */
+ if (!PG(allow_webdav_methods)) {
+ if (r->method_number == M_OPTIONS) {
+ r->allowed |= (1 << METHODS) - 1;
+ return DECLINED;
+ }
+ }
/* If PHP parser engine has been turned off with an "engine off"
* directive, then decline to handle this request