Checkout Tools
  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge r1842010, r1841225, r1862039, r1862040, r1862042 from trunk:

* dav_stream_response processes data that has been allocated from the propdb

pool. Hence close the propdb *after* dav_stream_response which clears thei

probdb pool.

* Doing a PROPFIND on a large collection e.g. 50.000 elements can easily

consume 1 GB of memory as the subrequests and propdb pools are not

destroyed and cleared after each element was handled.

Do this now. There is one case in dav_get_props where elem->priv

lives longer then the propdb pool. In this case allocate from r->pool.

Furthermore also recycle propdb's which allows to clear the propdb's

pools instead of destroying them and creating them again.

Simplify handling of short-lived pool for dav_propdb in mod_dav. No

functional change.

* modules/dav/main/props.c (dav_popen_propdb): Rename from

dav_open_propdb, take a pool argument.

(dav_open_propdb): Reimplement in terms of above, using

r->pool.

(dav_propfind_walker): Switch to using dav_open_propdb

with scratchpool.

* modules/dav/main/props.c (dav_do_prop_subreq): Allocate escaped URI

out of propdb pool, fixing small per-resource leak during a PROPFIND

walk.

Submitted by: jorton, rpluem

* modules/dav/main/mod_dav.c (dav_send_multistatus): Tag the pool.

Reviewed by: rpluem, jorton, jim

  1. … 6 more files in changeset.
Merge r1842010 from trunk:

* dav_stream_response processes data that has been allocated from the propdb

pool. Hence close the propdb *after* dav_stream_response which clears thei

probdb pool.

Submitted by: rpluem

Reviewed by: jailletc36, icing, ylavic

  1. … 1 more file in changeset.
Merge r1486027, r1828909, r1839249, r1842888, r1844343, r1846651 from trunk:

Clarify the existing behavior.

* modules/generators/mod_info.c: Constify fixed tables and mark

module-private global variables static. No functional change.

Axe an old and apparently out-dated comment.

There is a typo in the comment.

HN_UPDATE_SEC has been renamed HM_UPDATE_SEC.

The TODO seems to have been taken into account in r759862.

* modules/filters/mod_deflate.c

(deflate_out_filter): Fix typo setting output note. (Coverity warning)

(deflate_in_filter): Fix redundant assignment. (clang warning)

* modules/md/md_acme_authz.c (md_acme_authz_update): Fix typo in log

message.

* modules/dav/main/mod_dav.c (dav_method_propfind): Tag the scratchpool.

Submitted by: minfrin, jorton, jailletc36

Reviewed by: jailletc36, icing, jorton

  1. … 6 more files in changeset.
*) mod_dav: Fix invalid Location header when a resource is created by passing

an absolute URI on the request line

+1: jailletc36, jim, minfrin

  1. … 3 more files in changeset.
Merge r1766998 from trunk:

Follow up to r1739201.

These APR_TIMEUP special cases are now handled by ap_map_http_request_error().

Reviewed by: jailletc36, jim, covener

  1. … 4 more files in changeset.
Merge r1764040 from trunk:

mod_dav: Fix a potential cause of unbounded memory usage or incorrect

behavior in a routine that sends <DAV:response>'s to the output filters.

The dav_send_one_response() function accepts the current head of the output

filter list as an argument, but the actual head can change between calls to

ap_pass_brigade(). This can happen with self-removing filters, e.g., with

the filter from mod_headers or mod_deflate. Consequently, executing an

already removed filter can either cause unwanted memory usage or incorrect

behavior.

This patch changes the signature of the existing mod_dav's public API,

dav_send_one_response(), because this API is not yet a part of any 2.4.x

release.

* modules/dav/main/mod_dav.c

(dav_send_one_response): Accept a request_rec instead of an ap_filter_t.

Write the response to r->output_filters.

(dav_send_multistatus, dav_stream_response): Update these calling sites

of dav_send_one_response().

* modules/dav/main/mod_dav.h

(dav_send_one_response): Adjust definition.

Submitted by: kotkov

Reviewed/backported by: jim

  1. … 3 more files in changeset.
Merge r1756611, r1748155 from trunk:

mod_dav: follow up to r1746207: fix typo (missing '/') for closing tag.

mod_dav: making mod_dav.h compile with clang again

Submitted by: ylavic, icing

Reviewed/backported by: jim

  1. … 3 more files in changeset.
* Revert errornous r1757659
  1. … 3 more files in changeset.
* Vote and promote
  1. … 3 more files in changeset.
Merge r1748047 from trunk:

mod_dav: Add dav_begin_multistatus, dav_send_one_response,

dav_finish_multistatus, dav_send_multistatus, dav_handle_err,

dav_failed_proppatch, dav_success_proppatch to mod_dav.h.

Submitted by: minfrin

Reviewed by: minfrin, jim, ylavic

  1. … 5 more files in changeset.
Merge r1746207 from trunk:

mod_dav: Add support for childtags to dav_error.

Submitted by: minfrin

Reviewed by: minfrin, jim, ylavic

  1. … 5 more files in changeset.
Merge r1747946 from trunk:

mod_dav: Add dav_get_provider_name() function to obtain the name

of the provider from mod_dav.

Submitted by: minfrin

Reviewed/backported by: jim

  1. … 5 more files in changeset.
Merge r1725485 from trunk:

Added many log numbers to log statements that

had none.

Those were not detected by the coccinelle script.

Submitted by: rjung

Reviewed/backported by: jim

  1. … 34 more files in changeset.
Merge r1602978, r1683044, r1683884, r1673368, r1701717, r1683047 from trunk:

Core filters do not need mod_proxy.h

Small speed optimization when parsing <Limit>, <LimitExcept> and environment variables

Save a few bytes in conf pool

Remove some spaces between some return statements and ';' + fix a strange formating in a 'for' loop

In order to save a few cycles, delay a hash table lookup which is not necessary needed

Constify + save a few bytes in conf pool

Submitted by: ylavic, jailletc36, jailletc36, jailletc36, jailletc36, jailletc36

Reviewed/backported by: jim

  1. … 7 more files in changeset.
core, modules: Avoid error response/document handling by the core if some

handler or input filter already did it while reading the request (causing

a double response body).

Submitted by: ylavic

Backports: r1482522 (partial, ap_map_http_request_error() things only!),

r1529988, r1529991, r1643537, r1643543, r1657897, r1665625,

r1665721, r1674056

Reviewed by: ylavic, minfrin, wrowe

  1. … 26 more files in changeset.
Merge r1633031, r1633522, r1633529, r1633530 from trunk

Style fix

Submitted by: jailletc36

Reviewed by: jailletc36, jim, ylavic

Backported by: jailletc36

  1. … 4 more files in changeset.
Merge r1527509 from trunk:

mod_dav: set r->status_line in dav_error_response.

It's used as argument in next ap_rvputs call. PR 55426.

Submitted by: jkaluza

Reviewed/backported by: jim

  1. … 3 more files in changeset.
Merge r1602338 from trunk:

Fix PR 56480: PROPFIND walker doesn't encode hrefs properly

Reverts r1529559 partially (specifically the dav_xml_escape_uri) bit.

Reverts r1531505 entirely.

* modules/dav/main/mod_dav.c

(dav_xml_escape_uri): Revert the piece of r1529559 that removes the URI

escaping from this function.

* modules/dav/main/props.c

(dav_do_prop_subreq): Escape the URI before doing a sub request with it.

This resolves some properties like getcontenttype from failing to be

returned for files that contain characters that require encoding in their

path.

* modules/dav/main/mod_dav.h

(dav_resource): Note the inconsistency in the documentation.

* modules/dav/fs/repos.c

(dav_fs_get_resource): Don't use the unparsed_uri to set the uri field of

the resource. This is the correct fix for the double encoding in mod_dav_fs

that led to the dav_xml_escape_uri() change and r1531505.

(dav_fs_walker, dav_fs_append_uri): Revert r1531505 changes.

Submitted by: breser

Reviewed by: ylavic, covener

  1. … 6 more files in changeset.
Merge r1529559, r1531505 from trunk:

Fix PR 55397: dav_resource->uri treated as an unparsed uri.

The change made for PR 54611 caused this field to be treated as

unescaped. mod_dav_svn however, provided escaped URIs. Essentially

breaking support for paths with non-URI safe characters in SVN.

Adjust the code so that dav_resource->uri is assumed to be escaped and

adjust mod_dav_fs so that it uses escaped URIs in this field.

* modules/dav/fs/repos.c

(dav_fs_get_resource): Use the unparsed_uri to contruct the resource uri.

* modules/dav/main/mod_dav.c

(dav_xml_escape_uri): Do not uri escape, just handle xml escaping.

(dav_created): Assume that locn if provided is escaped.

(dav_method_copymove, dav_method_bind): Use the unparsed_uri on the request

when calling dav_created() to adjust to locn assuming it is escaped.

* modules/dav/main/mod_dav.h

(dav_resource): Document that uri is escaped.

Followup to r1529559: mod_dav_fs: Fix encoding of hrefs in PROPFIND response.

Previous commit missed encoding the names of the children of the PROPFIND

request when the depth wasn't 0.

* modules/dav/fs/repos.c

(dav_fs_append_uri): New function

(dav_fs_walker): Use dav_fs_append_uri() and adjust length calculations to

use the encoded length.

Submitted by: breser

Reviewed/backported by: jim

  1. … 5 more files in changeset.
Merge r1528718 from trunk:

mod_dav: Fix PR 55306.

Makes mod_dav no longer require that the lock token be provided when the

source of a COPY is locked. The prior behavior was in violating of

RFC 4918 which says that the lock token is only required on resources

that may be modified by the method.

* modules/dav/main/mod_dav.h

(DAV_VALIDATE_NO_MODIFY): New flag to be passed to dav_validate_* functions.

* modules/dav/main/mod_dav.c

(dav_method_copymove): Use the new flag when calling dav_validate_request()

on the COPY source.

* modules/dav/main/util.c

(dav_validate_resource_state): Use the flag to decide to ignore if the lock

token is not provided.

Submitted by: breser

Reviewed/backported by: jim

  1. … 5 more files in changeset.
Merge r1506714 from trunk:

Fix bug #55304 with the provided patch, slightly reformatted.

In short: do not validate conditions of a COPY source's parent since

it is not modified during the operation.

* modules/dav/main/mod_dav.c:

(dav_method_copymove): adjust params to dav_validate_request()

Submitted by: gstein

Reviewed/backported by: jim

  1. … 2 more files in changeset.
mod_dav: Improve error handling in dav_method_put(), add new

dav_join_error() function. PR 54145.

trunk patch: http://svn.apache.org/r1464241

2.4.x patch: http://people.apache.org/~minfrin/httpd-mod_dav-errorhandling.patch

Submitted by: Ben Reser <ben reser.org>

Reviewed by: minfrin, jim, jorton

  1. … 5 more files in changeset.
mod_dav: Sending a MERGE request against a URI handled by mod_dav_svn with

the source href (sent as part of the request body as XML) pointing to a

URI that is not configured for DAV will trigger a segfault.

trunk patch: http://svn.apache.org/r1485668

Submitted by: Ben Reser <ben reser.org>

Reviewed by: minfrin, covener, jorton

  1. … 3 more files in changeset.
mod_dav: Sending an If or If-Match header with an invalid ETag doesn't

result in a 412 Precondition Failed for a COPY operation. PR54610

trunk patch: http://svn.apache.org/r1476604

Submitted by: Timothy Wood <tjw omnigroup.com>

Reviewed by: minfrin, jim, jorton

  1. … 3 more files in changeset.
mod_dav: Ensure URI is correctly uriencoded on return. PR 54611

trunk patch: http://svn.apache.org/r1476621

Submitted by: Timothy Wood <tjw omnigroup.com>

Reviewed by: minfrin, jim, covener

  1. … 3 more files in changeset.
Backport r1209766, r1210252, r1210284:

Add lots of unique tags to error log messages

ssl_util.c: Downgrade some dynamic locking messages from level DEBUG

to TRACE1-3

  1. … 164 more files in changeset.