Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
simplify
clean up buggy apreq_hook_find_param().
update to new licenese header per board resolution
Its 2006 now bump the Copyright year
style cleanup: delete-trailing-whitespace
fix line ending properties
Frivolous doc tweaks.
Swapping trunk with the multi-env branch, step 2.
Doxygen fixes.
Protect against the possibility of apache2_body_get going quadratic on a "single-character-brigade" attack against ap_http_filter. apreq_hook_find_param ensures the prefetch behavior is always (at worst) O(n).
As reported by Max Kellermann, APR_EGENERAL doesn't have an apr_strerror in 2.0.53, so it's not portable across the platforms we try to support. This patch basically s/APR_EGENERAL/APREQ_ERROR_GENERAL/g; we still need to find a way for mod_apreq to put proper apreq error messages in the server log. Note: This patch should complete r157332, which only patched library/t/error.c.
API documentation updates. Submitted by: Max Kellermann Reviewed by: joes
++2004 in Copyrights.
Change v->size semantics: now it represents the total amount of memory appended to the apreq_value_t struct. Added supporting apreq_param_nlen(), apreq_param_vlen(), apreq_param_size(), apreq_cookie_nlen(), apreq_cookie_vlen(), apreq_cookie_size(), apreq_value_table_add(). Also a few more performance tweaks for the new perl APIs.
Move apreq_status_is_error to apreq_module_status_is_error, since that's all it represents. Also drop apreq_*_(name|value) inlines; apreq_value_t needs to remain a public struct. Improved error codes in apreq_error.h, added new tests for apreq_strerrror. Also includes whitespace cleanups for function declarations; started work to bring doxygen docs back in sync. The APR::Request:: perl glue is taking shape. The basic idea is to directly map apreq_module.h to APR::Request, and map the remaining apreq_foo.h to APR::Request::Foo. Removed deprecated apreq_expires, apreq_make_*. Renamed apreq_run_$foo apreq_$foo_run. Dropped const qualifier from apreq_join's return value.
- Add apreq_error.h, apreq_module.h.
- Rename apreq_run* and apreq_make* funcs to conform with
apreq_$obj_$meth scheme.
- Replace c->version & c->secure with flags.
- Parsers are assumed to be working with external data, so the
cookies & params they produce are marked tainted.
Reorganize around include/, library/, and module/ dirs
Convert APREQ_RUN_PARSER and APREQ_RUN_HOOK to inline, and downcase them. Remove apreq_memmem. Convert apreq_(un)escape to inline. apreq_escape does not create an apreq_value_t*. Initialize default_parsers explicitly to NULL. Convert APREQ_BRIGADE_COPY to inline, and downcase it. Lowercase APREQ_BRIGADE_SETASIDE, APREQ_BRIGADE_COPY. Convert apreq_cookie_name and apreq_cookie_value macros to inline. Convert apreq_param_name, apreq_param_value, apreq_param_info, apreq_param_brigade to inline. Add apreq_initialize to allow thread-safe parser registration. Submitted by: Max Kellermann Reviewed by: joes
Widespread API refactorization to remove apreq_jar_t and apreq_request_t:
- Header includes reorganized; apreq_parsers.h added (back again).
- Replaced apreq_jar_t and apreq_request_t with single apreq_env_handle_t.
- Added const qualifier to "v" attribute of apreq_cookie_t and apreq_param_t.
- Use union type-puns to drop const qualifiers inside the new
apreq_value_to_cookie and apreq_value_to_param implementations
(gcc generates same object code as the macro versions did).
- Moved "flags" attribute from apreq_value_t to apreq_cookie_t and apreq_param_t.
- Remove env argument from hooks and parsers.
- Reduce apreq_env_module to minimal set of operations.
- Replace apreq_log calls with apreq-specific error codes.
- Hooks are called on each body param now, not just during file uploads.
- Tie the cgi handle to its creator pool.
Detailed changes by header file:
[apreq.h]
- Remove flags from apreq_value_t.
- Remove const qualifier from apreq_value_t's "name" attribute.
- Remove apreq_value_merge* and apreq_value_copy*.
- Remove apreq_char_to_value, apreq_strtoval, and apreq_strlen.
- Move apreq_enctype to apreq_env.h.
- Move apreq_env_handle_t struct definition to apreq_env.h
- Change signature of apreq_decode.
- Move apreq_brigade_concat here, changed its signature and improved it alot.
- Remove apreq_brigade_spoolfile.
- Dropped APREQ_*_ENCTYPE, renamed some APREQ_$foo defaults APREQ_DEFAULT_$foo.
- Added APREQ_ERROR_*.
[apreq_cookie.h]
- Remove apreq_env.h include.
- Remove apreq_jar_t.
- Add "flags" to apreq_cookie_t, add const qualifier to its "v" attr.
- Remove apreq_jar* functions.
- Add apreq_parse_cookie_header.
- Move apreq_cookie, apreq_cookie_bake(2), and
apreq_ua_cookie_version to apreq_env.h.
[apreq_params.h]
- Remove apreq_env.h include.
- Remove apreq_request_t.
- Add "flags" to apreq_param_t, and const qualifier to its "v" attr.
- Rename "bb" attribute "upload" in apreq_param_t.
- Remove apreq_request* functions.
- Remove apreq_parse_request.
- Changed apreq_decode_param signature.
- Replace env argument with apr_table_t in apreq_params_as_array,
apreq_params_as_string,
- Move remaining apreq_param* to apreq_env.h.
- Move parser and hook sections to apreq_parsers.h.
- Change apreq_upload(s) old apreq_request_t arg to apr_table_t.
[apreq_parsers.h]
- Acquire the hook and parser sections of original apreq_params.h.
- Remove env argument from APREQ_PARSER_ARGS and APREQ_HOOK_ARGS
- Augment apreq_hook_t and apreq_parser_t to replace missing env features.
- Change apreq_make_parser and apreq_make_hook signatures.
- Rename apreq_add_hook to apreq_parser_add_hook, returning apr_status_t.
- Change apreq_parser signature.
[apreq_env.h]
- Remove read, log, pool, bucket_alloc, request, jar, and query_string methods.
- Include apreq_parsers.h.
- Reorganize apreq_env_module_t to provide hook, parser, jar, args,
& body table ops.
- Rename max_brigade to "brigade_limit", max_body to "read_limit".
- Change related module sigs, including temp_dir, to get/set methods.
- Add parser and read_limit args to apreq_env_make_custom_handle.
- Drop "name" arg and APREQ_ENV_MODULE =~ s/_ENV//.
- s/apreq_env_make/apreq_handle/ in the handle constructor names.
[mod_apreq.c, apreq_env_apache2.h]
- Changed APREQ_Max* configs to APREQ_BrigadeLimit and APREQ_ReadLimit.
- Handle constructor renamed apreq_handle_apache2.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| apache@apache.org | ViewVC Help |
| Powered by ViewVC 1.1.2 |