94b0a92282504886d107b198d8d861115a2451d0 1674056 |
|
16-Apr-2015 |
ylavic |
mod_proxy_ajp: Rename output_failed to client_failed in ap_proxy_ajp_request().
Since any read/write error is caught by this flag, it really means "dialog with
client <ip:port> failed" (as per the associated log message), whereas write to
client (output) errors need not be handled differently than any error occuring
after some bytes have already been sent to the client, which is the purpose of
the data_sent flag. |
1715880355ef7f574cae2e8f973411b51acedede 1665625 |
|
10-Mar-2015 |
ylavic |
core, modules: like r1657897 but for core and other modules than mod_proxy.
More uses of ap_map_http_request_error() and AP_FILTER_ERROR so that we never
return an HTTP error status from a handler if some filter generated a response
already.
That is, from a handler, either ap_get_brigade() (an input filter) returned
AP_FILTER_ERROR and we must forward it to ap_die(), or ap_pass_brigade() (an
output filter) failed with any status and we must return AP_FILTER_ERROR in
any case for ap_die() to determine whether a response is needed or not. |
7a1dee936d2bd3e4e70dd8a6e0090f8582ee2a8b 1657897 |
|
06-Feb-2015 |
ylavic |
mod_proxy(es): Avoid error response/document handling by the core if some
input filter already did it while reading client's payload.
When an input filter returns AP_FILTER_ERROR, it has already called ap_die()
or at least already responded to the client.
Here we don't want to lose AP_FILTER_ERROR when returning from proxy handlers,
so we use ap_map_http_request_error() to forward any AP_FILTER_ERROR to
ap_die() which knows whether a response needs to be completed or not.
Before this commit, returning an HTTP error code in this case caused a double
response to be generated.
Depends on r1657881 to preserve r->status (for logging) when nothing is to be
done by ap_die() when handling AP_FILTER_ERROR. |
da70b2c3070ef22d1d244f453737c804722ec2f8 1649043 |
|
02-Jan-2015 |
rjung |
mod_proxy_ajp: Fix get_content_length().
clength in request_rec is for response sizes,
not request body size. It is initialized to 0,
so the "if" branch was never taken. |
355c2c77716e43d7b5a3a01067da889d614b9a3f 1643543 |
|
06-Dec-2014 |
ylavic |
mod_proxy_ajp: follow up to r1643537.
Log aborted client connections with level DEBUG only (no more noise than other proxy modules). |
1e2d421a36999d292042a5539971070d54aa6c63 1643537 |
|
06-Dec-2014 |
ylavic |
* mod_proxy_ajp: Fix client connection errors handling and logged status
when it occurs. PR 56823. |
27377e1dbd7b70c526d2af8f44f5074adc34fb0c 1578759 |
|
18-Mar-2014 |
jailletc36 |
Use 'apr_table_setn' instead of 'apr_table_set' when possible in order to save memory. |
f9735f3777a7a1f779d3aa2390beecca57058899 1560269 |
|
22-Jan-2014 |
jkaluza |
mod_proxy_ajp: remove AJP_EBAD_METHOD, it is not used since r1435178 |
63b4d380728397be955beae19d9ecccf00d438a8 1542562 |
|
16-Nov-2013 |
jim |
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). |
709b5c8ea3d5e283717d0bd2ec1dadfc7c34e683 1530603 |
|
09-Oct-2013 |
jim |
ping tuning via Yann Ylavic <ylavic.dev@gmail.com> |
66b11c4eeff6be73bec7ceaf5957f79ab5270c79 1524018 |
|
17-Sep-2013 |
trawick |
fill in missing message numbers in APLOGNO() invocations |
a5432a773d657e510b58e310b543d6cca568e7ff 1516965 |
|
23-Aug-2013 |
jim |
typo |
56c721887b9c93721a7fe3afc45c89a94e3f07c1 1516930 |
|
23-Aug-2013 |
jim |
Allow for a simple socket check in addition to the
higher level protocol-level checks for backends...
Not sure if it makes sense to do both or not... Comments? |
fb5e4869b57545ff534add0a4b0ded84cc68212b 1465839 |
|
09-Apr-2013 |
druggeri |
Add failontimeout to allow server admin to mark balancer member in err if IO timeout occurs. |
1683f1f23137738ce352808911642cb1e19e2ea0 1398307 |
|
15-Oct-2012 |
rpluem |
* If we face a timeout during receiving the response from the backend and if
we pinged it successfully before don't assume the whole backend has failed.
Assume that only the request has failed and return a gateway timeout then. |
e57968eccf3a9b218f96a9f8909e3ca413887819 1373955 |
|
16-Aug-2012 |
rjung |
Fix closing the back end connection in case of error.
The field "closed" was changed from an int to a bit
field of size one in 2.4.x.
For historical reasons a close instruction was coded
as an increment on the field, which in 2.4.x flips
the field each time. There were mutliple code paths
that would flip it several times for a single error,
so effectively the connection was no longer closed
in these cases.
Especially in the case of an aborted client connection
this lead to a non consumed back end buffer and thus to
response mixup between users.
PR 53727
CVE-2012-3052 |
424b4e796cde9df955948c354cb4df6080a92d4e 1334343 |
|
05-May-2012 |
sf |
Use short lived pool to avoid memory leaks
Remove the comment about binding upstream and downstream connections. It
seems to be obsolete since r104604, r104605, r105108.
Also avoid allocating memory if we are not handling the connection.
PR: 52275
Submitted by: Naohiro Ooiwa <naohiro ooiwa miraclelinux com>, Stefan Fritsch |
185aa71728867671e105178b4c66fbc22b65ae26 1209766 |
|
03-Dec-2011 |
sf |
Add lots of unique tags to error log messages |
e6061cf1962bb4bcce89c2bdce375398d614be6a 1203878 |
|
18-Nov-2011 |
sf |
More ap_log_rerror() usage and axe some more AJP: prefixes |
994ced9dca1b824d03a44187f09d264215cd490c 1203859 |
|
18-Nov-2011 |
sf |
great proxy logging cleanup:
* remove "proxy:", "FCGI", etc. prefixes and pid which are now
included in the error log format
* propagate frontend request's logconfig to backend request
* use ap_log_rerror where possible
* remove obsolete APLOG_NOERRNO |
5bfaaf573bacb45c1cf290ce85ecc676587e8a64 1174751 |
|
23-Sep-2011 |
jim |
Cleanup effort in prep for GA push:
Trim trailing whitespace... no func change |
f29962c31e9a75c133903a2ae4c52fc2b416570f 1166657 |
|
08-Sep-2011 |
jfclere |
Use HTTP_NOT_IMPLEMENTED instead of HTTP_BAD_REQUEST. |
3d68c2d89535e66860f55ed9373d09b99761623c 1166551 |
|
08-Sep-2011 |
jfclere |
AJP_EBAD_METHOD is also a bad request so return HTTP_BAD_REQUEST |
34367ffbc83b43541f275fcefe4f3acdbf83d5af 1153531 |
|
03-Aug-2011 |
rpluem |
* Do not even sent an empty brigade down the filter chain if the headers
have not been sent by the AJP server so far. Even an empty brigade
will trigger the headers filter to create the (in this case incomplete)
HTTP headers of the response. |
3e13c3c3e6517a04c8c20ffb8e62aadb3b13f8df 1152452 |
|
30-Jul-2011 |
rjung |
Improve logging for mod_proxy_ajp. |
b8c9229249804470a885a1a43f7f2dad15fb06a3 1152379 |
|
29-Jul-2011 |
rjung |
mod_proxy_ajp: Respect "reuse" flag in END_REPONSE
packets. |
c8d3523e5579e5ba0073f24909279b0b9e9b4bd3 1100513 |
|
07-May-2011 |
covener |
replace recent AJP direct comparisons to APR_TIMEUP with APR_STATUS_IS_TIMEUP. |
eeee4ad3ec20ebade9d4a67072b8b0798fd58f3b 1092212 |
|
14-Apr-2011 |
fuankg |
Fixed missing struct member error introduced with r1092076. |
617fdbb16e8dcb172f2d5e423bc5420ef70f7a2a 1092076 |
|
14-Apr-2011 |
jfclere |
try to prevent a single long request marking a worker in error. |
03502de2853fcebaf853ed3bcfd5033894c238bb 1087864 |
|
01-Apr-2011 |
jim |
*) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945.
[Peter Pramberger <peter pramberger.at>, Jim Jagielski] |
23a31b10f869a72c9197b5f153f4f3e1a4c68f28 1058623 |
|
13-Jan-2011 |
jim |
More movement to shared stuff... |
a04700f62fbb6520de63d04f7ae8c863a99f06de 986591 |
|
18-Aug-2010 |
jfclere |
Don't log errors when we can't send to client, just debug. |
5e9d58721eaf8957323a4d88a3e5e3ced2c2efc7 983056 |
|
06-Aug-2010 |
trawick |
comment fixes for "send" vs. "sent" |
6c7e8ddfa05b1f160da4b2b0e85c2a6ea40b61e1 955966 |
|
18-Jun-2010 |
rpluem |
* Ensure that we only return a non fatal error if the request is idempotent
and if we did not sent any request body so far. |
3ccd32fa0cabe48785497e239e0e30bec6bdf10b 953385 |
|
10-Jun-2010 |
rpluem |
* Use APR_STATUS_IS_TIMEUP instead of direct compare to APR_TIMEUP to
be more safe on different platforms.
Pointed out by: rjung |
c6cf638d68b4cfff4f74ebc360abca97ad38cd71 951900 |
|
06-Jun-2010 |
sf |
- Be less verbose at levels INFO and DEBUG in mod_proxy* and mod_ssl
- Add some trace logging to core and http |
36ef8f77bffe75d1aa327882be1b5bdbe2ff567a 951895 |
|
06-Jun-2010 |
sf |
Use the new APLOG_USE_MODULE/AP_DECLARE_MODULE macros everywhere to take
advantage of per-module loglevels |
db9143eba1badc5e5ddf5fac58d705d332f1873d 917875 |
|
02-Mar-2010 |
wrowe |
SECURITY: CVE-2010-0408 (cve.mitre.org)
mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent after
request headers indicate a request body is incoming; this is not a case of
HTTP_INTERNAL_SERVER_ERROR.
Submitted by: Niku Toivola <niku.toivola sulake.com>
Reviewed by: rpluem, jim, wrowe |
1da922ebb5f25105d4118e0157049a8e108ee796 911466 |
|
18-Feb-2010 |
rpluem |
* Really regard the operation a success, when the client aborted the connection.
In addition adjust the log message if the client aborted the connection. |
06ae890bba0af0f686650f46aa9c637d1c1edc62 820036 |
|
29-Sep-2009 |
poirier |
Make comment agree with code. |
d0cd62f11bcd8fa9bf758c5125f55cea5d9038df 764239 |
|
11-Apr-2009 |
rpluem |
* Check more strictly that the backend follows the AJP protocol.
Submitted by: mturk |
4e08c8c1a91e2887b41d8cacd3aa532355d0237d 763394 |
|
08-Apr-2009 |
rpluem |
* Avoid delivering content from a previous request which failed to send a request
body by closing the connection to the backend in this case instead of reusing it.
CVE: CVE-2008-5519
PR: 46949
Reviewed by: jim, wrowe |
e0b3b0308e9dc8e8aa9c1ebb8cc75d96bb0e8baf 709666 |
|
01-Nov-2008 |
rpluem |
* Use distinct char pointers for sending and receiving buffers to avoid
destroying the pointer to the sending buffer in the ajp message if
data is received from the backend before all data is sent to the
backend.
PR: 45911 |
219a04bb962962852f278e94e610102b56adb535 707027 |
|
22-Oct-2008 |
rpluem |
* There are no subrequests which have itself as parent. |
16114047d9429c3eebe37ed6666fd10cf716b5e1 706318 |
|
20-Oct-2008 |
jfclere |
ap_proxy_determine_connection modifies the url if we are retrying the result we should retry using the orginal url. |
bffa28e219ea053efd779f9b25259e4936110cdd 696614 |
|
18-Sep-2008 |
mturk |
Always send body (zero size at least) whenever C-L is present in the request |
a18eeda400deba505a8a5238c6459fc527b04f4b 693392 |
|
09-Sep-2008 |
rpluem |
* If CPING fails retry once more with a fresh TCP connection. If this fails
as well give up. |
ada2f893d526f694f46039618f06e9c826421621 660207 |
|
26-May-2008 |
rpluem |
* Introduce a flag to decide whether we sent an body to the backend or not. |
f6940effe0545e646003932940b1eb636344bf06 649922 |
|
20-Apr-2008 |
jim |
Set at init time, and combine comments |
0f1e6e90cf575408293a9cf4276c2c5ec9171c3d 649840 |
|
19-Apr-2008 |
rpluem |
* Do not add the query string again in the case that we are using the
unparsed uri.
PR: 44803 |
638f1e58d1cab42397613af5155264832e3365d8 649239 |
|
17-Apr-2008 |
jim |
handle ? in cases where nocanon is in effect |
8beb817d5daa6a312d52bd6ced640681f7352ea6 649169 |
|
17-Apr-2008 |
jim |
Make mod_proxy_ajp aware of the nocanon envvar |
53cccc00e5daaeb34451788aa51ac029058b1c04 641837 |
|
27-Mar-2008 |
jfclere |
Remove useless test. |
bbd6b1f445ed5e8e7fde215b974e1d47ac72a832 627097 |
|
12-Feb-2008 |
rpluem |
* As per niq's comment, better destinct the types of idempotence. |
edb2ad8387e30473e5be09714189441ef94d7f29 617822 |
|
02-Feb-2008 |
rpluem |
* Do not retry a request in the case that we either failed to sent a part of the
request body or if the request is not idempotent.
PR: 44334 |
b814595300b7e42fe1752c249cfe35a9865e48d6 579707 |
|
26-Sep-2007 |
jim |
Ignore any ajp13 flush messages which we may mistakenly
rec' before we send the response headers. See
Tomcat PR 43478. |
f7538929683265dc05250db97c7125e47b470de2 572919 |
|
05-Sep-2007 |
jfclere |
Add support for proxy-nokeepalive (for testings). |
369c662e74c2ef09a62df91c9ac9a53b86c917aa 534031 |
|
01-May-2007 |
rpluem |
* Rework the error handling logic to make it more readable. |
8c73ad8aaa79575525f8cc8199fa1c9d3f0f47b7 518938 |
|
16-Mar-2007 |
jfclere |
Make sure that we are not resending if we have received something from Tomcat. |
3d2c4628947372d668cf904dc3310532a6e5b814 468941 |
|
29-Oct-2006 |
mturk |
When Servlet container sends AJP body message with size 0, this means that Servlet container has asked for an explicit flush.
Create flush bucket in that case. |
57981020d31da7ce40a0b287a0d1cca5d0f33f08 467257 |
|
24-Oct-2006 |
mturk |
Make sure the AJP message is between 8 and 64K.
Use the provided message size when using get_brigade. |
c15fa5962b05ae863a86a1f859ade216e7713ce7 467017 |
|
23-Oct-2006 |
trawick |
fix typo that breaks compilation |
6121ba973fff0ef0b2d9ff6ef2a50188ab2dce34 467014 |
|
23-Oct-2006 |
jfclere |
At support for ProxyIOBufferSize in AJP. |
c3c8103039e36494987aff50451896459826a361 434483 |
|
24-Aug-2006 |
rpluem |
* Close connection to backend if reading of request body fails.
PR: 40310
Submitted by: Ian Abel <ianabel mxtelecom.com>
Reviewed by: rpluem |
c1b34185c08311a96e54251f7d9a2df1009e3dc6 427959 |
|
02-Aug-2006 |
mturk |
Cleanup: Remove close_on_recycle from proxy_conn_rec.
It behaves the same as close. |
188befd3a49e3a126bd801d7dc5a7f6e63ad4332 425454 |
|
25-Jul-2006 |
mturk |
Added cping/cpong support for the AJP protocol. |
842ae4bd224140319ae7feec1872b93dfd491143 420983 |
|
11-Jul-2006 |
fielding |
update license header text |
3d81f57512275ca06a60a9bcbd23c1f8b429fdf2 395228 |
|
19-Apr-2006 |
colm |
Update the copyright year in all .c, .h and .xml files |
07ac837c886b356dc96e83cf82fb348eb56406d9 390210 |
|
30-Mar-2006 |
jim |
Document the removal of the flushing bandaid to a
runtime param. Since other protocols might benefit
from this, remove the ajp_ prefixes, to make it
more generic looking. |
5d392744e2077f71f34ce098ab49d2c0ddcf4ea3 384580 |
|
09-Mar-2006 |
jim |
Make AJP flushing admin configurable. |
9db7dc2304497f532a69853c5abd40983d9b4ffb 366558 |
|
06-Jan-2006 |
jim |
Explain how we're checking to see if ap_proxy_backend_broke()
has been called or not. |
cfaddd01e7b021261a1682d0265894b40834f4cb 365374 |
|
02-Jan-2006 |
rpluem |
* Correctly signal broken backend connections up the chain also for the ajp
backend (see also r357461). Furthermore move common code in mod_proxy_http.c
and mod_proxy_ajp.c into a new function (ap_proxy_backend_broke) in
proxy_util.c.
modules/proxy/mod_proxy_ajp.c : Signal broken backend connection for ajp backend
modules/proxy/proxy_util.c : Add ap_proxy_backend_broke
modules/proxy/mod_proxy_http.c: - Use ap_proxy_backend_broke
- Return DONE also if backend broke
modules/proxy/mod_proxy.h : Add declaration of ap_proxy_backend_broke |
62c48ce0fc62af721a6ee30a74cfc664c9714583 355853 |
|
11-Dec-2005 |
rpluem |
* revert r355823 and r355837 |
421dbb349049c34ae716b1dfeb140df881eb8335 355837 |
|
11-Dec-2005 |
rpluem |
* Let the proxy handler know that the backend connection broke after we have
sent the headers. |
e8f95a682820a599fe41b22977010636be5c2717 332306 |
|
10-Nov-2005 |
jim |
No functional Change: Removing trailing whitespace. This also
means that "blank" lines consisting of just spaces or
tabs are now really blank lines |
347c9301068524042be654db3b2b055a9ec20633 327185 |
|
21-Oct-2005 |
rpluem |
* Fix PR37100 (SEGV in mod_proxy_ajp), by sending the data up the filter
chain immediately instead of spooling it completely before passing it
to the filter chain. It contains a bandaid to handle intentional
flushes from Tomcat side. Further explanation in code and report.
ajp.h: Add ajp_msg_reuse prototype
mod_proxy_ajp.c: Adjust logic of ap_proxy_ajp_request
ajp_msg.c: Add ajp_msg_reuse
ajp_header.c: Adjusting logic of ajp_read_header |
ee6301784ec111f1a47f8b7499696731f104caf3 325879 |
|
17-Oct-2005 |
rpluem |
* Style fixes: Add line breaks for lines that are too long. No functional change. |
d184a78990e280a6b1a57e2cea7ac8ae2a379318 322467 |
|
16-Oct-2005 |
rpluem |
* Style fixes: Spaces, comments, typos. No functional change. |
30fcd4fa77a99e452c579b90c1c66f25def229f9 322464 |
|
16-Oct-2005 |
rpluem |
* Cleanup: Remove dead code. No functional change. |
5cd4f796d242bd32ff29a924cf0a608eea1e464f 232247 |
|
12-Aug-2005 |
niq |
Fix mess left by incompleteness of previous ProxyPassReverse fix |
a9f7f2c5add20e597ec68746ff26cf06bba7b2b1 160693 |
|
09-Apr-2005 |
mturk |
Simplify canon_handler. There is no thing like ajps:
protocol. |
8f18e3c344445404dc4f359b53582b2caf2377f4 160677 |
|
09-Apr-2005 |
mturk |
Return correct status codes in case of bad request, that
is probably too large for AJP protocol. |
79e21525012fbf99a5b062ea934e3c72de2a9e39 160661 |
|
09-Apr-2005 |
mturk |
Remove useless loging of something that is not an error. |
1071cfd45f63ad7e9053ab79d862b135961ac75d 152966 |
|
09-Feb-2005 |
striker |
* modules/proxy/mod_proxy_ajp.c
(proxy_ajp_handler): Log error when a backend connection could not
be made. |
08cb74ca432a8c24e39f17dedce527e6a47b8001 151408 |
|
04-Feb-2005 |
jerenkrantz |
Update copyright year to 2005 and standardize on current copyright owner line. |
bf1e7c075ccc3e6597d17de7641332ff6ff92e8a 151238 |
|
03-Feb-2005 |
striker |
Rename proxy modules.
* modules\proxy\mod_proxy_ajp.c
* modules\proxy\mod_proxy_balancer.c
* modules\proxy\mod_proxy_connect.c
* modules\proxy\mod_proxy_ftp.c
* modules\proxy\mod_proxy_http.c
Renamed from proxy_{ajp,balancer,connect,ftp,http}.c
* modules\proxy\mod_proxy_ajp.dsp
* modules\proxy\mod_proxy_balancer.dsp
* modules\proxy\mod_proxy_connect.dsp
* modules\proxy\mod_proxy_ftp.dsp
* modules\proxy\mod_proxy_http.dsp
Update references to renamed files.
* modules\proxy\NWGNUproxyajp
* modules\proxy\NWGNUproxybalancer
* modules\proxy\NWGNUproxycon
* modules\proxy\NWGNUproxyftp
* modules\proxy\NWGNUproxyhtp
Update references to renamed files. |