important parts of the api that are missing in no particular order ------------------------------------------ tied filehandle interface: -CLOSE, OPEN, EOF, TELL, SEEK, FILENO -READLINE - proper implementation (see comment in Apache::compat) $r->finfo: need apr_finfo_t <-> struct stat conversion (might already be there, haven't looked close enough yet) $r->chdir_file: not safe for threaded environments. should at least unshift @INC with dirname $r->filename. consider overriding open() to resolve relative filenames. $r->child_terminate: haven't looked into this, but clearly not an option with threaded mpms. might consider knocking off the current PerlInterpreter instead. $r->log_reason: should be simple, see modperl_log.h Apache->server_root_relative: needs to default to current pool (pconf at startup, r->pool at request time) Apache::Util::* escape_path() - (was escape_uri) can be changed in apache not to require a pool size_string() - can we use apr_strfsize ? escape_html() - consider jeff baker's more robust implementation of my_escape_html(), which should probably be made in apache-2.0 itself ht_time() - now requires a pool, temporarily renamed format_time for 1.x ht_time compat. should we just leave as is or see if ht_time can be changed to not require a pool? $r->document_root: cannot currently be modified. requires locking since it is part of the per-server config structure which is shared between threads $r->send_fd: need to figure out howto map PerlIO <-> apr_file_t at the moment $r->send_fd is implement in Apache::compat, functions, but does not have the performance benefits of ap_send_fd() however, $r->sendfile is a new function that opens the file for you and calls ap_send_fd() underneath. ap_send_fd() in APR doesn't work with fd's which aren't files and of unknown length, therefore it cannot be used for implementing 1.x compatible send_fd. $r->auth_{name,type}: are not yet writable. will also require locking. $r->get_basic_auth_pw: does not yet default AuthType and AuthName as 1.x does $r->as_string: not yet implemented Apache::{Server,Process} classes: require mutex lock for writing Apache->import: not yet implemented, required for exit/warn overridding $r->current_callback: not yet implemented $r->{get,set,push}_handlers: need to deal properly with modification of the current handler phase we're running. Apache->httpd_conf: depends on sections Apache->request: need to deal with subclass objects which are not a request_rec (e.g. HASH ref) $r->cgi_header_out: anything in 1.x land actually using it? $r->slurp_filename: optimized version not yet implemented (compat version exists in Apache::compat) Apache->unescape_url{_info}: not yet implemented. should be moved to Apache::Util Apache::perl_hook: should have this or something check if PerlOptions allows the given handler/feature to be used. mod_perl::import(): not yet implemented Apache::FakeRequest: since APR can be used outside of httpd, and we can alloc request_rec and similar structures, it should be possible to bootstrap an inside-httpd interface and outside-httpd interface. its not really worthwhile looking at until APR actually installs its *.so or *.a libraries somewhere apxs can find them. and, there's a bunch of util functions (e.g. URI stuff) that is supposed to move from httpd into apr-util.