Checkout Tools
  • last updated 4 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Stuff we need to do now, before moving this branch to trunk.



Need tests for new 1.3.x module.

Need to fix make dependencies.

TODO items.

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.

  1. … 36 more files in changeset.
Reorganize around include/, library/, and module/ dirs
  1. … 85 more files in changeset.

Drop 2.05 back to dev status. Also update other

items in STATUS.

  1. … 1 more file in changeset.
Also consider moving apreq.h -> apreq_common.h,

and renaming apreq_env.h -> apreq.h.

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:


- 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_*.


- 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.


- 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,


- 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.


- 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.


- 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.

  1. … 33 more files in changeset.

Progress update.

Correct STATUS to reflect current thoughts

on apreq_env_handle_t. Also update todo

section to mark impact of these changes.

Update my long-range goals for apreq_env_handle_t:

replace bucket_alloc and pool functions with simple

data strutures in apreq_parser_t (adding args to

parser constructor)

Add STATUS entry detailing my long-range goals for apreq_env_handle_t.

Fix the memory leak regression in apreq_env_custom and

apreq_env_cgi (created bucket allocators need to be explicitly destroyed).

  1. … 2 more files in changeset.

Introduce apreq_env_handle_t to replace the void *env usage.

Also added apreq_env_custom for making private handles, and new

apreq_env_apache2.h to let mod_apreq export apreq_env_make_apache2.

This patch represents part one of

I added a few additional notes to STATUS and CHANGES.

Submitted by: Max Kellermann

Reviewed by: joes

  1. … 28 more files in changeset.
Rename apreq_env_t to apreq_env_module_t.

joes adds a few notes describing the current

status and goals for this (multi-env-unstable)


Submitted by: Max Kellermann

Reviewed by: joes

  1. … 4 more files in changeset.