On Sun, Aug 5, 2012 at 11:00 AM, Steinar H. Gunderson <[email protected]> wrote: > On Wed, Aug 01, 2012 at 01:58:16PM -0400, Jeff Trawick wrote: >> Your post-perdir-config patch has been committed to trunk with r1368121. > > Thanks! > >> Attached is a patch to trunk that allows you to hook in to the stat >> calls from directory walk. Call apr_stat() like core_dirwalk_stat() >> but check for APR_STATUS_IS_EACCES(rv) and decide whether to run >> lingering close and exit. Let us know how that goes. >> >> You still need the parse-htaccess patch for now. > > I backported this to 2.4.2, and changed mpm-itk to hook into that function > with the following hook: > > static apr_status_t itk_dirwalk_stat(apr_finfo_t *finfo, request_rec *r, > apr_int32_t wanted) > { > apr_status_t status = apr_stat(finfo, r->filename, wanted, r->pool); > if (ap_has_irreversibly_setuid && APR_STATUS_IS_EACCES(status)) { > ap_log_rerror(APLOG_MARK, APLOG_WARNING, status, r, > "Couldn't read %s, closing connection.", > r->filename); > ap_lingering_close(r->connection); > clean_child_exit(0); > } > return status; > } > > Seems to work great, from my limited testing. As an extra bonus, I can easily > call clean_child_exit() (which runs more cleanup hooks) instead of exit(), > since this is in the MPM's own .c file.
Great! I'll do something about the remaining patch "before long". > > /* Steinar */ > -- > Homepage: http://www.sesse.net/ -- Born in Roswell... married an alien... http://emptyhammock.com/
