b1de4d11181d00bd6a3bf45b4b5a7a5f30b2714e 1458456 |
|
19-Mar-2013 |
jim |
Useful extensions... |
4c6374798c9e6c0fc3b42dbc5a7225f67d27cb9f 1418556 |
|
08-Dec-2012 |
jailletc36 |
Add some __attribute__ for automatic format checking.
Correct one catch in sed0.c. |
5008d6f7f93079b4e95ffd605979de930f8cd657 1409437 |
|
14-Nov-2012 |
jailletc36 |
Give the opportunity to the compiler to compute at compile time the strlen of the given
string. Most of the calls to ap_fputs are done with constant strings. |
a054609255eb3b10ed30e5471b18ea0e7d5f735e 1229134 |
|
09-Jan-2012 |
sf |
Rename ap_func_attr_* macros to AP_FN_ATTR_*
Add macro for attribute alloc_size on newer gcc's |
eed23c0ffbac879e3502737c44070dc1212daeb0 1205894 |
|
24-Nov-2011 |
jim |
Use varargs... |
5fcee27172ebd5529ba056deaf01a3755fc4ae05 1205419 |
|
23-Nov-2011 |
jim |
Add ap_pass_brigade_fchk() which does a Filter CHecK on the
brigade pass. |
742318b93e89c311f66b55f426c4d9cf2c14628b 1174748 |
|
23-Sep-2011 |
jim |
Cleanup effort in prep for GA push:
Trim trailing whitespace... no func change |
5043abfdca708cb5acb2e43ec4d63b0a68e2012a 1134906 |
|
12-Jun-2011 |
sf |
Avoid "`sentinel' attribute directive ignored" warning with gcc 3.x |
3bd0e50248c06f4a61404a93f9e1acc7f26c8464 1043710 |
|
08-Dec-2010 |
sf |
Fix some doxygen warnings |
8c2acc2f875e661fd34f233553d90c58894d5b1b 1032275 |
|
07-Nov-2010 |
poirier |
Tweak some doxygen comments to get these functions to show up in
the right places in the generated doc. |
78b8e4dd910f03af0a602bc4b63ad7bc69868ee3 959464 |
|
01-Jul-2010 |
sf |
re-order many struct members for better alignment on 64bit |
f55c048e33a905f9f771b3aed309373bdf547944 953311 |
|
10-Jun-2010 |
jorton |
Run filter "init" functions exactly once per request. No longer run
init functions for connection filters (doing an "init" once per
handler invocation makes no sense for a connection filter). No longer
run init functions multiple times per request if a subrequest is used.
* include/util_filter.h (ap_filter_rec_t): Clarify use of the init
function pointer.
* server/config.c (invoke_filter_init): Drop ap_ prefix for private
function; take a request_rec pointer and only invoke filters with
matching request.
(ap_invoke_handler): Adjust accordingly.
PR: 49328
Reviewed by: rpluem |
c779aea0c9b7c47c2e4fd258e3f54835a849625d 830527 |
|
28-Oct-2009 |
poirier |
Fix a lot of doxygen warnings. Thanks to Brad Hards for the patch.
I added a few more fixes, and there are still more that might
need a doxygen expert.
PR: 48061
Submitted by: Brad Hards
Reviewed by: poirier |
08cbd6e24e1253e030bd7a29f95f98f8d4164c14 822870 |
|
07-Oct-2009 |
sf |
Update comments in util_filter.h about bucket and brigade ownership to reflect
current practice and the advice from manual/developer/output-filters.xml.
Submitted by: Rici Lake <rici ricilake.net>
Reviewed by: Stefan Fritsch, Joe Orton |
737e3a0da69952cf2eedef43b703d8c2b62ea09f 726060 |
|
12-Dec-2008 |
jorton |
* include/util_filter.h (ap_fputstrs): Mark with sentinel attribute
for gcc >= 4. |
ceb14f8ba57a8086c9a68ad264efbe2433134382 721677 |
|
29-Nov-2008 |
covener |
Prevent AP_FILTER_ERROR from being misinterpreted as SUSPENDED when checking
the status code returned by a handler by updating the values of the filter
error macros and consolidating them in httpd.h |
bc0ebf8a6b6f96df7f05ced975fc5fd4f5846607 600473 |
|
03-Dec-2007 |
jorton |
Further to r599711; document new API guarantee for handling non-NULL
request_rec pointer when adding connection filters; minor MMN bump:
* server/util_filter.c (add_any_filter_handle): Set f->r for
connection filters even if passed-in r is non-NULL. Style nit fix
also.
* include/util_filter.h (ap_add_output_filter,
ap_add_output_filter_handle): Document new API guarantee.
* include/ap_mmn.h: Minor MMN bump. |
842ae4bd224140319ae7feec1872b93dfd491143 420983 |
|
11-Jul-2006 |
fielding |
update license header text |
a48b22d9c123cf19ee68a5023d3906e197ff50a8 412721 |
|
08-Jun-2006 |
niq |
Fix comment |
3d81f57512275ca06a60a9bcbd23c1f8b429fdf2 395228 |
|
19-Apr-2006 |
colm |
Update the copyright year in all .c, .h and .xml files |
d6f31486d449475eb8656f3f6dc874cac70a12ea 315041 |
|
12-Oct-2005 |
niq |
Make ap_register_output_filter back into a function (*sigh*)
but update its API doc |
4a5f5bd7682803a0c29ebb0f44f436f0c8193b69 315024 |
|
12-Oct-2005 |
niq |
Make ap_register_output_filter a #define |
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8 263931 |
|
29-Aug-2005 |
ianh |
Doxygen fixup / cleanup
submited by: Neale Ranns neale ranns.org
reviewed by: Ian Holsman |
08cb74ca432a8c24e39f17dedce527e6a47b8001 151408 |
|
04-Feb-2005 |
jerenkrantz |
Update copyright year to 2005 and standardize on current copyright owner line. |
18a7c68326aa2442b6eefcffd350963ca02ba169 105646 |
|
31-Oct-2004 |
niq |
Change FilterDeclare/FilterProvider semantics as discussed in
http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=109899588616670&w=2 |
4e6c606ef906fbee485f15520564703ada9237f5 105613 |
|
28-Oct-2004 |
niq |
Fixup broken handling of range header. |
1a9a0c4cb9779605230cac9fb065c8fcbe043523 105603 |
|
27-Oct-2004 |
niq |
Move ap_filter_provider_t back out of public API
(suggested by nd; makes sense to niq) |
07d9a1f9365112556a984c5b4374ab67ebf1e04f 105507 |
|
17-Oct-2004 |
nd |
allow <= and >= for filter dispatcher |
5b62e16ecd64c64cc5e288524d2cfe6b9b7df572 105501 |
|
17-Oct-2004 |
nd |
use more speaking names |
db1334a42ea7f699b7bcc5e3ef07ee2cde9a6fe7 105500 |
|
17-Oct-2004 |
nd |
more style |
52778e46cc370ef8b054674c1176dd3a6d4f25d8 105499 |
|
17-Oct-2004 |
nd |
save spaces! Soon in future we're going to run out of spaces!!! |
ae3dea49b7dbd3cdf991225881cf01e62689af2b 105226 |
|
21-Sep-2004 |
niq |
Merge mod_filter with util_filter structs; add API for protocol stuff.
Rename FilterDebug directive to FilterTrace. |
20cd21b6e63b2e3ac3df0626367ea36e84ff6a2f 105089 |
|
12-Sep-2004 |
niq |
PR: 19688
Fix incorrect (and important) comments |
6de8046f8f7e07cd83895a528df25d977e502c76 102619 |
|
09-Feb-2004 |
nd |
fix name of The Apache Software Foundation |
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dc 102525 |
|
06-Feb-2004 |
nd |
apply Apache License, Version 2.0 |
26a4456dd6f1a5d7d7fff766551461a578687c4a 102135 |
|
01-Jan-2004 |
nd |
update license to 2004. |
4b52f9a062d865c6f20d8971696a52d2f0081fbb 101895 |
|
26-Nov-2003 |
trawick |
The caller of ap_pass_brigade() relinquishes ownership of the brigade. |
e4811543d38dda0c7f8ab375cd0d11e7a73c119e 101059 |
|
22-Aug-2003 |
stas |
clarify that filter_init_func is used only in the http protocol filters
PR:
Obtained from:
Submitted by:
Reviewed by: |
4d8204ebc873f65aa26f36f3285b1581d22242bb 100646 |
|
16-Jul-2003 |
gstein |
* util_filter.h (ap_filter_flush): clarify that this function has
nothing to do with FLUSH buckets. It is simply a cover function
for ap_pass_brigade for use with the apr_brigade_* writing
functions. |
a80bebbcea891b0c9c73a49872c64a137f84fffa 100249 |
|
15-Jun-2003 |
brianp |
Clarified comment on arg constraints for ap_get_brigade()
Submitted by: Joe Schaefer <joe+gmane@sunstarsys.com>
Reviewed by: Brian Pane |
33bdcae1f7a1a65e351dda2a766a0cf28b1e695d 98573 |
|
03-Feb-2003 |
nd |
finished that boring job:
update license to 2003.
Happy New Year! ;-)) |
d035ac1624529ffe2b40d3e4d59c8fe731e4f396 98244 |
|
12-Jan-2003 |
jerenkrantz |
Update documentation to match prototype for ap_register_input_filter and
ap_register_output_filter.
Submitted by: Stas Bekman <stas@stason.org>,
Joe Schaefer <joe+apache@sunstarsys.com>
Reviewed by: Justin Erenkrantz |
0fdf8c342123fde84405b885fb1720ebc652e10d 95906 |
|
28-Jun-2002 |
jerenkrantz |
Add a filter_init function to the filters so that a filter can execute
arbitrary code before the handlers are invoked.
This resolves an issue with incorrect 304s on If-Modified-Since mod_include
requests since ap_meets_conditions() is not aware that this is a dynamic
request and it is not possible to satisfy 304 for these requests (unless
xbithack full is on, of course). When mod_include runs as a filter, it is
too late to set any flag since the handler is responsible for calling
ap_meets_conditions(), which it should do before generating any data.
If a module doesn't need to run such arbitrary code, it can just pass NULL
as the argument and all is well.
PR: 9673
Reviewed by: Ryan Bloom and others |
637cc23fb69802467f54ab3a3cc3b9d96df66471 95898 |
|
27-Jun-2002 |
jerenkrantz |
Fix doxygen comments and add a missing line-feed. |
aa8acb43aef774a5669edf897ccb782a3f667cb8 95582 |
|
08-Jun-2002 |
jerenkrantz |
Style cleanups before contemplating adding init filter hook.
(No functional changes) |
bc8fd1b0b1afdf89b8d28eefa8cd74e26ba97986 93918 |
|
13-Mar-2002 |
fielding |
Update our copyright for this year. |
8262e4bc77385e421302dd4d719e1182a910de1d 93783 |
|
07-Mar-2002 |
aaron |
Comments like this help keep the sanity of module authors. |
1f863242c3901a633082bab8a34e8cb7422ab421 93756 |
|
07-Mar-2002 |
jerenkrantz |
As hinted on dev@httpd, change filter naming schemes to match our
expectations of their usage.
The reason that we should make this change now is that we have changed
the implied meaning of AP_FTYPE_HTTP_HEADER - some users of this should
be PROTOCOL while others should be CONTENT_SET. In order to clarify it,
toss all of the bogus names and force the filter writers to make sure
they understand what they are doing.
CONTENT_SET is new (horrible name - change if you have better idea), but
it indicates that it should run between RESOURCE and PROTOCOL.
mod_deflate is the ideal CONTENT_SET filter.
The changed type names are:
CONTENT is now RESOURCE.
HTTP_HEADER is now PROTOCOL. However, most filters that used HTTP_HEADER
may want CONTENT_SET. (Only things like POP and HTTP belong as PROTOCOL.)
MMN bump since all filters need to be recompiled due to filter reordering. |
b02d7873a18d729ee1bdca1e218ed305fa39447b 93745 |
|
07-Mar-2002 |
rbb |
Remove the prev pointer from the filter chain. This removes
the complexity of trying to set the filter chain correctly, with the
side-effect of forcing us to walk the entire chain whenever we add
a filter. Since the filter chains are small, the decrease in
complexity is worth it.
Reviewed by: Allan Edwards |
fc0ec1015978e3923ba0473efa14316df82195c3 93683 |
|
03-Mar-2002 |
rbb |
This finishes the mod_dir/mod_negotiation bug. This final part of the
solution ensures that we don't lose filters if they are added later than
we expect. The problem could be seen if a connection filter was added
after a request-based filter was added in the past. The problem was that
the request-based filters pointed to the first filter in the connection
record, so the new connection filter was never called. Now, all filters
are put on their correct filter lists, and we are sure to always update
all pointers when adding a filter. |
555821af769fb8ba20263265e9ea631037fc129b 93596 |
|
27-Feb-2002 |
trawick |
document the ctx parameter to the add-input-filter functions |
7a8a0744e378f2343c3ee6787fac0f8f959d2141 93544 |
|
23-Feb-2002 |
brianp |
Added ap_get_input_filter_handle() and ap_get_output_filter_handle()
Submitted by: Ryan Morgan
Reviewed by: Brian Pane |
435c423bdcfa61ff871a9e289d1140f2bac839b8 93039 |
|
27-Jan-2002 |
brianp |
Added new functions ap_add_input_filter_handle() and
ap_add_output_filter_handle()
There are many places in the core modules where we do
ap_add_input_filter() or ap_add_output_filter() on a
hardcoded filter name (e.g., "CORE" or "BYTERANGE").
This requires a string-to-filter mapping that wastes
CPU time. (Even though the string lookup uses a trie
for speed, it still ranks as a big consumer of CPU time
because of the large number of filters added per request.)
The new ap_add_*_filter_handle() functions will allow
us to skip the string-to-filter mapping in cases where
the module adding the filter happens to have the
ap_filter_rec_t* for the registered filter (e.g., because
it's the same module that registered the filter in the
first place). |
7727f4c9a1ac856edd057f21c4b8dbf63c6c9eef 93014 |
|
25-Jan-2002 |
jerenkrantz |
Change ap_get_brigade prototype to remove *readbytes in favor of readbytes.
If you need the length, you should be using apr_brigade_length. This is
much more consistent. Of all the places that call ap_get_brigade, only
one (ap_http_filter) needs the length. This makes it now possible to
pass constants down without assigning them to a temporary variable first.
Also:
- Change proxy_ftp to use EXHAUSTIVE mode (didn't catch its -1 before)
- Fix buglet in mod_ssl that would cause it to return too much data in
some circumstances |
3fde4c273ea649d1320ec9c51e7d096cd9340a94 92928 |
|
19-Jan-2002 |
jerenkrantz |
Input filtering prototype change: Socket blocking type should be
separate from the input filter mode type.
We also no longer look at readbytes to determine the method of
filter operation. This makes the use of filters more obvious and
allows a wider range of options for input filters modes.
To start with, the new input filter modes are:
AP_MODE_READBYTES (no more than *readbytes returned)
AP_MODE_GETLINE (old *readbytes == 0 case)
AP_MODE_EATCRLF (old AP_MODE_PEEK)
AP_MODE_SPECULATIVE (will be used in a future ap_getline rewrite)
AP_MODE_EXHAUSTIVE (old *readbytes == -1 case)
AP_MODE_INIT (special case for NNTP over SSL)
The block parameter is an apr_read_type_e: APR_BLOCK_READ, APR_NONBLOCK_READ
This also allows cleanup of mod_ssl's handling in the getline case.
Reviewed by: Ryan Bloom (concept), Greg Stein (concept) |
549e2baf2aacee81cef45f4684520691bacf35f9 92042 |
|
19-Nov-2001 |
dougm |
add new input filter mode AP_MODE_INIT:
allows filters such as mod_ssl to initialize a client connection
(ie handshake) before reading request data from the client.
PR:
Obtained from:
Submitted by: dougm
Reviewed by: wrowe |
778f64d5286aec7d63f91a8d6143daba9f713f9c 91354 |
|
08-Oct-2001 |
ianh |
Correct Verbage in comments.
Submitted by: Aarron Bannert <aaron@clove.org>
Reviewed by: Ian Holsman <IanH@apache.org> |
fd492f9543f14fb5bae78e04b135c3448eb9cc56 91006 |
|
11-Sep-2001 |
rbb |
A very small optimization to the OLD_WRITE logic. This just makes us store
a pointer to the OLD_WRITE frec, and instead of using strcmp or strcasecmp,
we can just do a simple pointer comparison. This optimization is also
available to other modules. |
13bac43a0f21d8c6401debc1baa76be984474074 90724 |
|
27-Aug-2001 |
rbb |
Allow mod_ssl to send back an error message if an HTTP request is sent
over an HTTPS connection. This also adds an ap_remove_input_filter
function, which should be used to remove the SSL input filter in this
case, as soon as this code is stressed a bit more.
For right now, we are sending the same message that we used to send in
mod_ssl for Apache 1.3. |
b7bda9f8637282c2f46bf6e2768a911ac23e4e3a 89987 |
|
07-Aug-2001 |
rbb |
Remove all warnings from the input filtering stack. |
077bd73226e47d055d23b46efa960670fc19f574 89671 |
|
24-Jul-2001 |
jwoolley |
Document and future-proof the dependency between apr_read_type_e and
ap_input_mode_t. It's now safe(r) to cast from ap_read_type_e to
ap_input_mode_t.
Submitted by: Justin Erenkrantz, Sander Striker |
9ce0a03f13db4815dd3e554409d672caa1a4671d 89362 |
|
13-Jun-2001 |
rbb |
Add a pool to the ap_save_brigade prototype. This removes a todo from
the comments that is really necessary before the setaside stuff will
work properly. |
7928dad64ccfb725ff5a76c4dfd15ddc5d5d439f 89305 |
|
08-Jun-2001 |
gstein |
Convert the filter and brigade writing functions to return status values,
not byte counts. |
6af61679f5d25e77f0d34112d714f9ae4cc666e3 89041 |
|
07-May-2001 |
rbb |
Back out the recent change to ap_get_brigade, to make it use indirection
again. The problem is that the amount of data read from the network,
is not necessarily the amount of data returned from the filters. It is
possible for input filters to add bytes to the data read from the network.
To fix the original bug, I just removed the line from ap_get_client_block
that decremented r->remaining, we allow the http_filter to do that for
us.
I have also removed an incorrect comment. |
b1ed4c9098a3c73d140abd3c1f42312e7be3021f 89008 |
|
05-May-2001 |
gstein |
Fix a bug in the input handling. ap_http_filter() was modifying *readbytes
which corresponded to r->remaining (in ap_get_client_block). However,
ap_get_client_block was *also* adjusting r->remaining. Net result was that
PUT (and probably POST) was broken. (at least on large inputs)
To fix it, I simply removed the indirection on "readbytes" for input
filters. There is no reason for them to return data (the brigade length is
the return length). This also simplifies a number of calls where people
needed to do &zero just to pass zero.
I also added a number of comments about operations and where things could be
improved, or are (semi) broken. |
f6d6718e4556ac585e4edc0bcefe93f9c04eb8c8 88919 |
|
23-Apr-2001 |
rbb |
Document the new argument to ap_get_brigade() |
a3a9ceac1bc30598c594c89e1382609496b7752b 88912 |
|
23-Apr-2001 |
rbb |
At the hack-athon we decided to change the way that input filters
determine how much data is returned to the previous filter. Prior to this
change, we used a field in the conn_rec to determine how much to return.
After this change, we use an argument to ap_get_brigade. This makes it
much more obvious how things work at all levels, so that module authors
can easily determine how much data is supposed to be returned to them. |
d353d275978f11f5221110e8f954d09d03ec5e3a 88832 |
|
12-Apr-2001 |
rbb |
The ap_f* functions should flush data to the filter that is passed in,
not to the filter after the one passed in. The fixes a bug, where one
filter is skipped when using ap_f*.
Submitted by: Ryan Morgan <rmorgan@covalent.net> |
0e26447b7de129241ee60331f51b17f0cdf19825 88531 |
|
17-Mar-2001 |
ben |
More doxygenation. |
82d2eed8f2152aff3f7554951c133a9d404ebbc5 88271 |
|
22-Feb-2001 |
rbb |
Add a couple of GCC attribute tags to printf style functions. This also
fixes a couple of mismatched parameters highlighted revealed by the
attribute.
Submitted by: Jon Travis <jtravis@covalent.net> |
b99dbaab171d91e1b664397cc40e039d0c087c65 88184 |
|
16-Feb-2001 |
fielding |
Update copyright to 2001 |
2a0c3663b66c9af764267ac3c4e140e659598474 88090 |
|
11-Feb-2001 |
ben |
First cut of TLS support. |
1b21d7b3d97def358b2e923655edeb16613a1c31 88060 |
|
10-Feb-2001 |
gstein |
Clean up some of the includes:
- explicitly include apr_lib.h since ap_config.h doesn't
- use apr_want.h where possible
- use APR_HAVE_ where possible
- remove some unneeded includes |
ba8ce98db465ada8e436fbfd50b46b5b1480c826 88041 |
|
09-Feb-2001 |
gstein |
"v" in the name has come to mean that a va_arg is in the parameter list.
putstrs is clearer in this case. |
14aba6b9ed66d26c494b98116761818a6388e5e8 88038 |
|
09-Feb-2001 |
stoddard |
Fix another windows compile break. |
1e778f12c67b18c85678d6f4cf05eaf45c37eebb 88034 |
|
09-Feb-2001 |
rbb |
A few small docs changes (there were ';' in the ScanDoc), and remove some
very cool but totally unportable macros. :-( |
39d25d098171c176443e752773a644c429e88394 88031 |
|
09-Feb-2001 |
gstein |
*) namespace protect the filter_flush() function
*) don't toss the status value from ap_pass_brigade in ap_fflush; return it
*) doc/macro nits |
2d87d8f191175a0683f430d790d81a5604b74ec6 88028 |
|
09-Feb-2001 |
rbb |
Allow filters to buffer data in a brigade using the ap_f* functions.
These have become simple macros that just wrap the apr_brigade functions,
allowing filter writers to ignore the flush function and the ctx pointer. |
3956c8e2379e6e93304feb84c68aadb77ffed7c1 87968 |
|
03-Feb-2001 |
ben |
Improved(?) docco. |
fcc25eda7b150e226d3c1cdaea66a943d3fdee4e 87863 |
|
27-Jan-2001 |
rbb |
filters can now report an HTTP error to the server. This is done
by sending a brigade where the first bucket is an error_bucket.
This bucket is a simple bucket that stores an HTTP error and
a string. Currently the string is not used, but it may be needed
to output an error log. The http_header_filter will find this
bucket, and output the error text, and then return
AP_FILTER_ERROR, which informs the server that the error web page
has already been sent. |
c55f2de29f1d64b1268fd42672a85748006bd813 87788 |
|
22-Jan-2001 |
rbb |
AP_REQUEST_DONE is bogus and a bad idea. This had the http_header filter
return -3 for every HEAD request, which in turn made us call ap_die. Of
course, if we didn't have a 200 status (say we had a 206), then we would
seg fault, because we would end up sending down a second EOS bucket, which
would in turn make us call the byterange filter again, but at this point,
we hadn't cleaned up the byterange ctx structure, because it was never
supposed to be called again.
This was biting us on apache.org, where we had a HEAD request for
bytes=100- for a file. This was a major seg fault. We are better off
just returning OK is much safer. |
b980ad7fdc218b4855cde9f75a747527f50c554d 87731 |
|
19-Jan-2001 |
wrowe |
The big change. This is part 3 of the apr-util symbols rename, please
see the first commit of srclib/apr-util/include (cvs apr-util/include)
for the quick glance at symbols changed. |
28a78e701246ca1fd94c22aae3a4a12f22f5b2bb 87548 |
|
29-Dec-2000 |
trawick |
ap_save_brigade() can fail, so report what happened via an apr_status_t
return code. |
0ca251592a795b15ed6011f1e22e6e2e1e4d1273 86955 |
|
14-Nov-2000 |
rbb |
Stop the default_handler from trying to deal with HEAD requests. By doing
this, the content-length filter can determine the C-L before we send the
response, and we get a better response. |
79da9666e920ffb81411c3b804e5dd0f52359b19 86746 |
|
25-Oct-2000 |
trawick |
Fix a typo in a comment.
Submitted by: Chris Pepper <pepper@mail.reppep.com>
Reviewed by: Jeff Trawick |
9e7c59085313aeb82ec659df8fae84f1a7c7426c 86741 |
|
25-Oct-2000 |
trawick |
Provide a bit of doc for the hackish^H^H^H^H^H^H^Hwonderful filter
types I introduced yesterday. |
6200a47d781fa5913c60429edaacf1cd556f2454 86739 |
|
25-Oct-2000 |
trawick |
Introduce more filter types. This gets chunking of output working
again by ensuring that the chunk filter gets added after the http
headers filter. |
bffadf7ad3d13f1141c0d681d033d2eaf55562e8 86690 |
|
21-Oct-2000 |
rbb |
Add a way to remove output filters. This is used by http_header_filter to
remove itself once it has actually sent the headers. |
adf7d02333af28c448efc203c1d2edbc8f38a27b 86684 |
|
21-Oct-2000 |
trawick |
Input filters and ap_get_brigade() now have a input mode parameter
(blocking, non-blocking, peek) instead of a length parameter. |
3d96ee83babeec32482c9082c9426340cee8c44d 86609 |
|
16-Oct-2000 |
wrowe |
Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
All _VAR_ flavors changes to _DATA to be absolutely clear.
Thank you Greg, for the most obvious suggestion. |
013e8c4167a1557177aaa4cf01cb22b0e3868fad 86572 |
|
13-Oct-2000 |
rbb |
Fix a typo from earlier today. The filters accept apr_ssize_t's, so the
get_brigade code should also use apr_ssize_t.
Submitted by: Greg Stein |
3515be87ebb5aa9a49f8a782d0d657d0d064be08 86567 |
|
12-Oct-2000 |
rbb |
Implement a length argument on input filters. There are three possible
values for the length, -1, 0, and a positive number. -1 means that the
next filter should return all the data it has, the current filter will
take care to ensure that the protocol is followed. Most filters will
never use this, because it implies they are implementing a conn_based
input filter. 0 means give me exactly one line of data. A positive
number means give me a maximum of n bytes. |
c2f4bd3b12fe92382859209dbf4981ce24e6d10f 86478 |
|
09-Oct-2000 |
trawick |
Remove stray semicolon from AP_NOBODY_READ and AP_NOBODY_WROTE decls.
Remove some out-of-date ap_pass_brigade() doc.
Tweak the ap_get_brigade() doc a little. |
5fac642ef2ee110540c3a391e4cf1d166ba57d0f 86403 |
|
05-Oct-2000 |
trawick |
Add a bit of infrastructure which will be needed for input filtering:
1) separate filter lists hanging off the r and the c
requests start off with the same filter list as the connection
the input filter list is not initialized for subrequests
internal redirects start off with the same filter list as the
connection
2) AddInputFilter directive (blatant rip-off of Ryan's AddOutputFilter
directive); as with AddOutputFilter, the network is implicitly to the
right of the specified filter list; this may not be the most
intuitive way to specify the filters; not sure yet |
d025a1bfef81af5c3a1e784762bf27971114b6e3 86401 |
|
05-Oct-2000 |
trawick |
Now that we have ap_add_input_filter(), rename ap_add_filter() to
ap_add_output_filter(). |
c43223fef00e5fa98a54c37a21175ff788b76f43 86392 |
|
05-Oct-2000 |
rbb |
Connection oriented filters are now stored in the conn_rec instead of the
request_rec. This means that a conn_rec must be supplied when calling
ap_add_filter. The reason for this change is that we need to be able to
add the core_filter (whether or SSL or not) before we try to read the
request. This way, if a request fails, we can actually send the error
page back to the client. With this change, we add the core filter to the
conn_rec during the pre-connection phase.
Submitted by: Ryan Bloom, Jeff Trawick, and Greg Ames |
d5c441f3a1b7ba48984481b8e29427f7edefbfb4 86370 |
|
03-Oct-2000 |
rbb |
Replace ap_get_data_from_filter and ap_save_data_to_filter with
ap_save_brigade. This function does not try to save the actual brigade to
a specific location. If just traverses the brigade, calls setaside if
it is available and concatenates it with a previously setaside brigade.
The resulting brigade is returned to the caller for them to save it to
the appropriate location. |
91f8fecd254fcdfcde4607b28ee192276c29c1a2 86359 |
|
02-Oct-2000 |
rbb |
Implement input filtering. This is definately not completely correct, but
it is a good first step. It is possible to add filters when reading from
the client with this change. |
dddcaef56e65bdada3dde770f59c1838320f362e 86255 |
|
20-Sep-2000 |
trawick |
Fix filter registration so that the appropriate list of
registrations is actually modified. This allows Apache to server
pages again. (Before this, every ap_add_filter() silently failed
and so output content went to the bit bucket.)
Also, repair some comments and un-namespace-protect a now-static
function. |
1296b2d30150ccb4ae9f6d690846b4e8f8571fd2 86251 |
|
19-Sep-2000 |
rbb |
tart getting things setup for input filtering. All this basically does
is add part of the infrastructure. Namely:
1) filter list in the conn_rec, which is where the input filter list
must live
2) Split the register_filter into multiple functions, one to register
input filters the other to register output filters.
3) Modify existing modules so they still work. |
a58fa2c644b339b91f9bebcce5adf6f289c18c1f 86224 |
|
14-Sep-2000 |
dougm |
put ctx back in ap_add_filter() |
018c3674550f6780e0cebce1f4ffeb9c7674a5c5 86221 |
|
14-Sep-2000 |
rbb |
Add a pointer to the filter_rec_t from the filter_t. This allows modules
to get to the filter name from the filter itself. This is useful for
modules like mod_perl, which have one filter function that does different
things based on the name used when the filter was inserted. |
8c664b071856c6aa5ed0ff16e0dcd2428acaf97a 86220 |
|
14-Sep-2000 |
rbb |
Add the AddFilter directive. This directive takes a list of filter names
that have been previously registered with the server. Currently the
directive is only valid inside the config file, but once the Options
directive is tweaked a bit, I would feel more comfortable exposing this
directive to htaccess files.
As a part of making adding this filter, I removed the ctx pointer from the
ap_add_filter prototype. The problem is that the core is the thing that
is actually inserting the filter into the filter stack, but the core doesn't
know how to allocate memory for each filter. The solution is to have the
filters themselves be responsible for allocating the ctx memory whenever
it is required. |
2960eb12428663adcf10ae5b21fcc2b7d85267b9 86162 |
|
30-Aug-2000 |
gstein |
reversing the latest commit; it was vetoed a while back. |
f37e48f88440559a2e73b03f294b9ddc0ee22e40 86161 |
|
30-Aug-2000 |
rbb |
Modify the way filters are added to the server. Instead of using a FIFO,
we use a modified LIFO. It is modified, because if we add a filter while
in the middle of another filter, the added filter gets put in after the
current filter. This requires that the server is smart about which filters
are added when. This should be handled by the HTTP protocol, but we will
want to keep and eye on things for a little while.
This change is necessary, because currently when we add a filter it goes
after the last filter of the same type. This is broken whenever we want
to add a filter that has a dependancy. Think about the core and chunking
filters. They are of the same type, and core is always added first. When
we go to insert chunking, it gets added, but it is never called. |
e485880d90245d55fd2f6808fd81819a31feef89 86160 |
|
29-Aug-2000 |
trawick |
Filters (and thus ap_pass_brigade()) now return an apr_status_t as their
return value. |
c4f8ee4c431e4ed7119c1ea0f73e9e04e025637c 86091 |
|
17-Aug-2000 |
gstein |
this shouldn't have gone in yet. there is still pending discussion. |
4d419cbf5e43b351f3c3153efe82b51aba681c33 86089 |
|
17-Aug-2000 |
rbb |
Make ap_add_filter use a LIFO stack instead of a FIFO queue to add filters
to the filter stack. This makes the chunking filter work. Without this,
the core_filter is installed in the insert_filters hook, when we get
to the ap_send_http_headers function, we insert the chunking filter, but
it has been installed after the core_filter. This means the chunk_filter
is never called.
This reverses this. The core_filter is installed in the insert_filters
hook, and we put the chunk_filter in during ap_send_http_headers. This
time, the chunking filter is installed before the core_filter, and it
gets called correctly. |
39ea23a6f1e9f16523562766f568d039b1bd9224 86076 |
|
15-Aug-2000 |
gstein |
a filter's context is to be used however the filter likes. it is a void*,
not necessarily a bucket brigade. |
202c633165f350489d9636eb4ef13382d4a63a37 86075 |
|
15-Aug-2000 |
trawick |
Fix some typos in the comments. |
c286a073ee4a1cd2cb145094520a3a1af6c9c736 86062 |
|
13-Aug-2000 |
rbb |
Add an error condition to the filter code. Basically, if somehow we get
to the very bottom of the filter stack and nobody has written anything to
the network, then we need to return an error. |
b48e8c04bf8b674b2b355c11aeef7f84d609fb85 86061 |
|
13-Aug-2000 |
rbb |
document util_filter.h using Scandoc |
bfb62a96023822c56c9120e4ee627d4091cc59c2 86059 |
|
12-Aug-2000 |
rbb |
Initial Filtering code. This uses a bucket brigade scheme to allow modules
to add and modify data while processing a request. The docs still need
to be updated, and a simple html page needs to be created explaining all
of this.
The only filter currently in the code is the core filter. This filter
takes a bucket brigade and writes it to the network through the buff
structure. In time, the buff will go away completely.
More filters will need to be written.
Submitted by: The Apache Community
Reviewed by: The Apache Community |
5ec83c51991ec074c58c0bc68f5842628a9179da 85994 |
|
05-Aug-2000 |
rbb |
Fix a small name mix-up. Filters are part of Apache, and should have the
ap_ prefix, not apr_ |
1ccd992d37d62c8cb2056126f2234f64ec189bfd 85976 |
|
02-Aug-2000 |
dougm |
prefix libapr functions and types with apr_ |
777a2b42697cb8cb94ac4e73774862f879259c45 85926 |
|
28-Jul-2000 |
rbb |
Add the ability to register filters. This commit introduces a warning
into the build. This warning will be removed automatically, as soon as
we decide on a prototype for the function causing the warning. That
decision is tied to which filtering mechanism we decide on.
Submitted by: Ryan Bloom and Greg Stein |