Checkout Tools
  • last updated 7 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1838944 is being indexed.

comment change... no functional

Merge r1827362, r1828926, r1828927, r1829557, r1829573, r1829645, r1829657 from trunk:

core: ap_getline_core() reads nothing for n == 0.

PR62199: add worker parameter ResponseFieldSize to mod_proxy

Submitted By: Hank Ibell

Committed By: covener

add log id for r1828926

core: Add and handle AP_GETLINE_NOSPC_EOL flag in ap_rgetline_core().

This tells the ap_getline() family of functions to consume the end of line

when the buffer is exhausted.

PR 62198.

mod_proxy_http: make use of AP_GETLINE_NOSPC_EOL in ap_proxygetline().

Fixes response header thrown away after the previous one was considered too

large and truncated.

PR 62196.

core: forward flags to recursive/folding call to ap_rgetline_core().

We still need them when folding, other than AP_GETLINE_FOLD itself of course.

mod_proxy_http: follow up to r1829573: remain EBCDIC friendly.

Keep using ap_rgetline() as before r1829573, since ap_rgetline_core() is

EBCDIC agnostic.

Submitted by: ylavic, covener, covener, ylavic, ylavic, ylavic, ylavic

Reviewed by: ylavic, covener, rpluem

  1. … 8 more files in changeset.
Merge r1828890, r1832500 from trunk:

mod_proxy_balancer: Add hot spare member type and corresponding flag (R). Hot spare members are

used as drop-in replacements for unusable workers in the same load balancer set. This differs

from hot standbys which are only used when all workers in a set are unusable. PR 61140.

mod_proxy_balancer: follow up to r1828890: indentation and 80 col.

Submitted by: jhriggs, ylavic

Reviewed by: jhriggs, jim, ylavic

  1. … 11 more files in changeset.
Merge r1824176, r1824460, r1824482 from trunk:

mod_proxy: Provide an RFC1035 compliant version of the hostname in the

proxy_worker_shared structure. PR62085

Tone down the message that worker hostname is too long noting it only

affects legacy modules not yet using hostname_ex.

Set the notice when hostname is too long for legacy proxy modules to info level.

Submitted by: minfrin

Reviewed by: minfrin, jim, ylavic

  1. … 10 more files in changeset.
Merge r1667707, r1824332 from trunk:

* mod_proxy: Allow setting options to globally defined balancer from

ProxyPass used in VirtualHost. Balancers are now merged using the new

merge_balancers method which merges the balancers options.

mod_proxy: follow up to r1667707: MMN minor bump.

Submitted by: jkaluza, ylavic

Reviewed by: icing, jim, ylavic

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

Fix ProxyAddHeaders merging.

* modules/proxy/mod_proxy.h:

Add add_forwarded_headers_set field to proxy_dir_conf.

* modules/proxy/mod_proxy.c (create_proxy_dir_config):

Initialize add_forwarded_headers_set.

(add_proxy_http_headers): Set it.

(merge_proxy_dir_config): Merge add_forwarded_headers correctly.

Reviewed by: jorton, rpluem, jim

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

Add upgrade parameter to mod_proxy_wstunnel.

That allows to upgrade to jboss-remoting for example

or to run an HTTP/1.1 backend that needs to upgrade to


See also:

whitespace only

Submitted By: jfclere

Reviewed By: covener, jim, ylavic

  1. … 8 more files in changeset.
Merge of r1750392,r1750412,r1750416,r1750474,r1750494,r1750508 from trunk:

mod_proxy_{http,ajp,fcgi}: don't reuse backend connections with data

available before the request is sent. PR 57832.

  1. … 8 more files in changeset.
Merge r1756038 from trunk:

Fix spelling in comments and text files.

No functional change.

PR 59990

Submitted by: rjung

Reviewed/backported by: jim

  1. … 72 more files in changeset.
Merge r1722177, r1722195, r1722229, r1722320, r1722328, r1722334, r1722350, r1722351, r1722358, r1722377, r1723953, r1724879, r1724992, r1724993, r1724995, r1725018, r1725031, r1725120, r1725328, r1725387, r1725489, r1725498, r1725499, r1725523, r1725545, r1725567, r1725581, r1725602, r1725822, r1725967, r1726038, r1726049, r1726051, r1726052, r1726055, r1725090, r1728326, r1737020 from trunk:

Commit framework impl of health-check module plus

required changes. The actual health checking is

currently in progress, but wanted to add in at

this stage.

Make aware of new status: Failed Health Check.

Store the number of current passes/fails in shm

finish looping logic... place-holder for actual checking

Better check

move to per server conf, useful for adding HealthCheckCondition

Now implement the condition ruleset definition. The

actual checking will be done in the actual health check


just check watched servers... use 'hc' prefix for sub directives

Check that we have names for both templates and


command changes

Don't bother w/ methods that return bodies. We don't

handle them now anyway.

Use enums and structs to keep things better organized

1st cut of 'simple' tcp check... We reuse various proxy

function and so this *could* be more streamlined, but

use this to show how the other would work, since we need

brigades, SSL/TLS support, etc.

Since every check needs this, do this in the main

check loop. Allows some optimizations.

move scope

pull this out... large enough for a func

Move to a set of health check workers, mapping to

each worker itself, instead of a single reused generic


some ordering optimization

Make balancer manager health-check aware

And we now allow for health checks via OPTIONS *

Leverage the OPTIONS code for HEAD as well...

So we now support: TCP, OPTIONS and HEAD.

Right now, anything other than an error (even a 404)

is consider a PASS.

Fill in APLOGNO.

I hope that doesn't result in merge trouble

for Jim.

Open up hook/scar to allow for passes/fails and

method to be changed via bal-man...

OPTIONS/HEAD proxy function should be diff from simple TCP check

For OPTIONS and HEAD, only 2xx and 3xx are considered "passing"

(until I implement the conditions expr testing)... honor

the pass/fail count and LOG_INFO when the health check enables

or disables a backend worker.

Start impl of expr conditions for runtime checks

Adjust log levels

correct error string

Use worker status character defines taken

from mod_proxy.h instead of explicit characters.

Noted by rpluem.

With the updated ap_expr, we can now check for the

returned response body, stored in kept_body

Assign log message tags

Implement expr lookup in mod_proxy_hcheck for

variables whose names start with "HC_" and for

the new function hc().

Currently only HC_BODY and hc(body) are supported.

Both return the saved body of the health check

response to be used in an expr that decides about

success of a check.

Fix copy&paste error in new function.

Try fixing new proxy_hcheck expr extension.

Interestingly mod_ssl using NULL as well,

but some other module I wrote uses parms->name.


clash :)

Enabling a worker via health-check also moves them out of

ERROR more (which may have been set via the static

"health" check done via mod_proxy).

Some flow improvements...

Submitted by: jim, rjung, jim, jim, jim, jim, jim, jim, rjung, jim, jim, rjung, rjung, rjung, jim, jim, olegk, jim, jim

Reviewed/backported by: jim

  1. … 350 more files in changeset.
Document incompatible API change which happened

in 2.4.7. The change affects third party modules

using the mod_proxy shared memory structure

proxy_worker_shared. Examples are third party

balancer lbmethod modules.

  1. … 2 more files in changeset.
Merge r1729826, r1729847, r1732986, r1733056 from trunk:

mod_proxy: Play/restore the TLS-SNI on new backend connections which

had to be issued because the remote closed the previous/reusable one

during idle (keep-alive) time.

mod_proxy: follow up to r1729826: really copy conn->ssl_hostname.

mod_proxy: follow up to r1729826 + r1729847.

Adjust stacked ssl_hostname maximum size.

mod_proxy: follow up to r1729826 + r1729847 + r1732986.

Don't use magic constants.

Submitted by: ylavic

Reviewed/backported by: jim

  1. … 4 more files in changeset.
mod_proxy_wstunnel, mod_proxy_connect: Use the correct pool and allocator

lifetime when sending brigades and buckets down the filter chain

  1. … 5 more files in changeset.
mod_proxy_http: Use the "Connection: close" header for requests to

backends not recycling connections (disablereuse), including the default

reverse and forward proxies.

Submitted by: ylavic (and trawick for an old helper function)

Reviewed by: rjung, covener

  1. … 7 more files in changeset.
Merge the following revisions from trunk:

trunk patch: (rewrite+UDS) ('using default worker' msg tweak) (tcp reuse) (uds reuse) (uds reuse fix)

+ 1 additional de_socketfy call in mod_proxy

  1. … 9 more files in changeset.
Merge r1598946, r1602989 from trunk:

Fix computation of the size of 'struct sockaddr_un' when passed to 'connect()'.

Use the same logic as the one in ' in 'proxy_util.c'.

mod_proxy: Don't limit the size of the connectable Unix Domain Socket paths.

Since connect() to UDS path is used at several places, introduce

ap_proxy_connect_uds() in proxy_util.

Submitted by: jailletc36, ylavic

Reviewed/backported by: jim

  1. … 7 more files in changeset.
Merge r1592511, r1592514 from trunk:

reformat only (get rid of unnecessary block scope)

Clarify an existing requirement of the server_portstr parameter

to ap_proxy_determine_connection(): it must be a buffer of at

least one byte in size.

(And don't bother with using strcpy in order to zap a string.)

Submitted by: trawick

Reviewed/backported by: jim

  1. … 3 more files in changeset.
Merge r1543174, r1560367, r1560546, r1560689, r1560979, r1561137, r1561660 from trunk:

Correct logic... if this is a UDS socket, then bypass all


make mod_rewrite and mod_proxy UDS work together...

Adjust url as required, following what we did to r->filename.

Save some cycles when searching...

Tuck away UDS path in request-rec, since worker isn't

thread-safe. Protect from NULL refs.

Reflow logic... pull UDS stuff out

handle leak. thx to Y^2

r->filename should maintain the proxy: prefix for PHP-FPM

Reviewed/backported by: jim

  1. … 5 more files in changeset.
Merge r1572630, r1572611, r1572967, r1573229 from trunk:

Redo what was reverted in r1572627.

Don't reuse a SSL backend connection whose SNI differs. PR 55782.

This may happen when ProxyPreserveHost is on and the proxy-worker

handles connections to different Hosts.

Follows up r1572606.

MMN minor bump required by proxy_conn_rec change.

mod_proxy: follows up r1572630.

Don't reuse a SSL backend connection with no SNI for a request requiring SNI.

mod_proxy: Add comment and avoid ternary operator as condition (no functional change).

Submitted by: ylavic

Reviewed/backported by: jim

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

We were not being consistent between http and others

if we added the default port or not during the canonizing

phase... Baseline the http method (don't add unless the

port provided isn't the default).

Reviewed/backported by: jim

  1. … 12 more files in changeset.
Merge r1451633, r1451905, r1451921, r1452259, r1453981, r1501913, r1513508, r1531340, r1531370, r1531962, r1533065, r1540052 from trunk:

Add in rough uds support (Bugx 54101) from Blaise Tarr <>

Make AF_UNIX aware... fix Windows/Netware??

Follow-up to r1451905 to fix NetWare/Windows compilation.

apr trunk-able

message tag for dom sock

Note about new UDS support

UDS subsequent request on a connection fix

Reformat the UDS support inline with a new naming structure.

Use a flag for speed for testing.

syntax sugar... if the worker is associated w/ a UDS,

then make sure the log reporting has a visual clue.

Ensure that userland format of UDS is the same as how it is

configured, no matter how we store and use it internally.

Eclipse code analysis warning

UDS urls need to be desockified when configuring...

Submitted by: jim, fuankg, jim, jim, druggeri, druggeri, jim, jim, jim, jim, jim

Reviewed/backported by: jim

  1. … 13 more files in changeset.
Merge r1554300, r1554301, r1554994, r1555266 from trunk:

core: Support named groups and backreferences within the LocationMatch,

DirectoryMatch, FilesMatch and ProxyMatch directives.

Documentation for the support of named groups and backreferences.

c89 fix

Add a "MATCH_" prefix to variables set within


Submitted by: minfrin, covener, minfrin

Reviewed/backported by: jim

  1. … 17 more files in changeset.
Fix comment (was r1513458 in trunk)
Merge r1481891, r1482075, r1482170, r1482555 from trunk:

mod_proxy: Ensure we don't attempt to amend a table we are iterating

through, ensuring that all headers listed by Connection are removed.

mod_proxy, mod_proxy_http: Connection headers must be stripped on the way

in and out, support an optional function to handle this.

hunk 1: C89 please;

hunk 2: optional functions are usually declared static.

mod_proxy: Make sure we skip empty tokens when parsing the Connection


Submitted by: minfrin, fuankg, minfrin

Reviewed/backported by: jim

  1. … 6 more files in changeset.
Merge r1480627, r1482859, r1483190, r1484343, r1500437 from trunk:

Mod_proxy used the global pool w/o mutex. fix.

mod_proxy: Use a global mutex for handling workers.

add in child_init which is needed

Add in logno's

conf->mutex is not used... Also, ensure that pool

use is protected

Submitted by: jim, minfrin, jim, jim, jim

Reviewed/backported by: jim

  1. … 6 more files in changeset.
Merge r1452911, r1452949, r1452954, r1453022, r1453574, r1453875, r1453876, r1453963, r1454386, r1454414, r1454415, r1458285, r1458447 from trunk:

Rough start for simple, tunneling websocket proxy support.

Compiles at this stage and that's all I know :)

force correct scheme info

We need to ensure a conn_rec

Work around blocking issues...

And now pass the initial request to the backend...

I dislike this duplication of code from mod_proxy_http()

but maybe it's inevitable. I may create ap_proxy_create_headerb()

to create a header brigade that both modules can use.

Pull out duplicated code to proxy_util...

rename extension module... tunnel is more accurate

log nums

"final" rename :)

don't strip these, ensure that they exist.


bypass reqtimeout for websockets

Keep mod_req clear. Simply scan thru input filters and

remove it within the ws submodule. Nasty, but it keeps

mod_req untouched (for now ;) )

Reviewed/backported by: jim

  1. … 20 more files in changeset.
Merge r1387603, r1388029, r1420124, r1421288, r1421912, r1422943, r1422980, r1430575, r1439404 from trunk:

wtf are we doing merging in these from the parent??

These are server specific!

OK, enable/allow previous broken, bad behavior iff the user

really, really wants it. And warn that b-m isn't recommended

in those cases.

rjung's suggestions...

inherit inherit

Use inherit_set to let the global server set

the default for all vhosts.

Otherwise inherit would need to be disabled

redundantly in each vhost.

restrict inherit control to those fields that "require" it...

Redfine - we are just worried about balancers and workers, so have the directive clear about that.


ProxyPassInherit directive

Submitted by: jim, rjung, jim, jim, jim, jim

Reviewed/backported by: jim

  1. … 9 more files in changeset.
mod_proxy_balancer: Add failontimeout parameter. Timeout will put worker

in error state if an IO timeout is detected.

trunk patch:

2.4.x patch:

Submitted by: druggeri

Reviewed by: jim, minfrin

  1. … 6 more files in changeset.
Merge r1387110, r1387444, r1387979, r1387607, r1387693, r1407085, r1421953 from trunk:

Persist local balancer-manager changes across restart/graceful.

Use identifying server_rec info when we know we have

unique and useful data :)

fix clang warning (dead initialization)

Log whether or not the restore from shm actually

resulted in a match of shm data, or whether it

was stale.

and this one as well... persist isn't inherited

better logging for re-use/use of shm

Allow for searching w/i shm slots for a specific worker and balancer

Reviewed/backported by: jim

  1. … 10 more files in changeset.