Add an allocator-passing mechanism throughout the bucket brigades API.
From Apache's standpoint, the apr_bucket_alloc_t* used throughout a given
connection is stored in the conn_rec by the create_connection hook. That
means it's the MPM's job to optimize recycling of apr_bucket_alloc_t's --
the MPM must ensure that no two threads can ever use the same one at the
same time, for instance.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94304 13f79535-47bb-0310-9956-ffa450edef68
* The ctx->tag_length computation in find_end_sequence() was a bit
broken in cases where there was a "false alarm" match on a partial
"-->"
* The ap_ssi_get_tag_and_value() function needs to avoid walking off
the end of the string. After debugging this some more, I ended up
using Cliff's original patch.
* Infinite loop in is_only_below()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94284 13f79535-47bb-0310-9956-ffa450edef68
the NULL terminator. This was causing the while loop to walk off the end of any
string with an odd number of characters.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94276 13f79535-47bb-0310-9956-ffa450edef68
APR_STATUS_IS_EPIPE(). Also, remove the code that assumed the sub_req_lookup_uri
actually served up the content in the quick handler. We now call the quick_handler
in ap_run_sub_req()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94248 13f79535-47bb-0310-9956-ffa450edef68
the start of a directive, scan through the rest of it in a minimal
loop before popping back out to the main char-at-a-time parser loop
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94153 13f79535-47bb-0310-9956-ffa450edef68
1. rename ap_rset_content_type to ap_set_content_type
2. reverse the arguments on the call to aligh with ap_set_content_length
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94056 13f79535-47bb-0310-9956-ffa450edef68
scan through the tag value until/unless we reach a backslash
that necessitates the more complicated scanner loop. In cases
where there isn't a backslash in the tag value, this reduces
the overhead of the scan from 5 comparisons per character to 3.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93983 13f79535-47bb-0310-9956-ffa450edef68
middle of parsing a tag, consume the entire tag in a quick loop,
rather than jumping back to the outer state-machine loop for
each character
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93979 13f79535-47bb-0310-9956-ffa450edef68
There are a few instances of the same basic problem which are not yet
fixed and which I have marked with /* XXX.*FUBAR*/.
PR: 10108
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93916 13f79535-47bb-0310-9956-ffa450edef68
this allows webadmins to change the default '(none)' to something
a bit more presentable (eg <!-- undef -->)
PR:
Obtained from: Rex (the hack he had to fix this was so ugly I was forced to do this)
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93788 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93756 13f79535-47bb-0310-9956-ffa450edef68
buckets: if a brigade containing an incomplete "<!--#" token
has been set aside in ctx->ssi_tag_brigade, we need to retrieve
and output the contents of that brigade if the next bucket (in
the next brigade) doesn't actually complete the "<!--#".
As part of this commit, I've commented out the recent changes
to detect flush buckets in the brigade, due to segfaults. (I
think the fix may be to add some checks for sentinels and EOS
when advancing to the next bucket after the flush bucket.)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93557 13f79535-47bb-0310-9956-ffa450edef68
this fixes the case where we have a SSI start tag split up
over multiple buckets.
BTW
HTTPD-test is failing.
but it was failing on 2.0.32 version of mod-include as well
PR:
Obtained from:
Submitted by: Brian Pane
Reviewed by: Ian Holsman
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93555 13f79535-47bb-0310-9956-ffa450edef68
* Change SUBREQ_CORE so that it is a HTTP_HEADER (20) filter instead of a content filter (10)
this allows subrequests to add content filters properly
* Change subreq handling of 'handle-include' so that it splits/passes the brigade before the subreq
is created. (This allows quick_handler to push content back from this phase)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92956 13f79535-47bb-0310-9956-ffa450edef68
code. Now that the code no longer allocs huge buffers (based on the
last commit), there's no need to incur the overhead of creating a
temporary pool just to clean up the storage quickly. This saves
a lot of space (because the temp pool used 8KB) and a small amount
of processing time.
As a side-effect of this change, we don't need the gotos any longer.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92839 13f79535-47bb-0310-9956-ffa450edef68
mod_so, mod_win32 and the winnt mpm] into individual loadable
modules, so the administrator may individually disable the former
compiled-in modules by simply commenting out their LoadModule
directives. [William Rowe]
*) Saved Win32 module authors and porters many future headaches, by
duplicating the appropriate .h files such as os.h into the include
directory, including in the build tree. [William Rowe]
Also noticed that version stamp resources weren't generated for proxy
modules, this too is now fixed.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92804 13f79535-47bb-0310-9956-ffa450edef68
mod_include by adding support for a power-of-two pool-based allocator
in ap_ssi_parse_string(). (The default operation of this function
is backward-compatible, to support the other modules that call it.)
This change should help reduce memory usage for servers delivering
shtml pages.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92747 13f79535-47bb-0310-9956-ffa450edef68
for SSI tag arguments (e.g. <!--#echo val=`foo` -->). This helps with
arguments containing both single and double quotes.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92678 13f79535-47bb-0310-9956-ffa450edef68
Now you can :) Provides $0..$9 results for any regex evaluation,
and strengthens the expr parser for regex expressions.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92676 13f79535-47bb-0310-9956-ffa450edef68
with handler 'server-parsed', do the xbithack bit tests before testing
it's string values (protected against a null point).
And make it [perhaps] more legible.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92642 13f79535-47bb-0310-9956-ffa450edef68
provides a point to insert filters already determined. We can't wait
for the insert_filters phase to 'redetermine' such things.
Everything we are doing here can reliably occur in the fixup phase,
after the types phase has completed.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92640 13f79535-47bb-0310-9956-ffa450edef68
for faster execution.
This new code short-circuits out of the inner scanning loop
after a single comparison when it hits a character not in the
"<!--#" pattern. Compared to the previous code, this version
does more work for characters in the pattern and less work for
characters not in the pattern. In practice, the net result
seems to be a speedup for typical shtml files, where characters
in the pattern are less common than characters not in the pattern.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92604 13f79535-47bb-0310-9956-ffa450edef68