My bad.  Post_config is a run_all.  If you return DONE the server won't
start.  This is what the MPMs do if the socket is already taken.

Ryan

----------------------------------------------
Ryan Bloom                  [EMAIL PROTECTED]
645 Howard St.              [EMAIL PROTECTED]
San Francisco, CA 

> -----Original Message-----
> From: Rasmus Lerdorf [mailto:[EMAIL PROTECTED]]
> Sent: Monday, June 24, 2002 8:34 AM
> To: Ryan Bloom
> Cc: [EMAIL PROTECTED]
> Subject: RE: Apache 2.0 Numbers
> 
> 
> 
> On Mon, 24 Jun 2002, Rasmus Lerdorf wrote:
> 
> > > > What is the correct way to fail in a filter post_config?  Do I
> return
> > > -1
> > > > from it if my filter finds a fatal error?  I can't use
> ap_log_rerror()
> > > at
> > > > this point, right?  How would I log the reason for the failure?
> > >
> > > I'm confused by the question, but I'll try to answer.  If you mean
the
> > > post_config phase, then you can use ap_log_error or ap_log_perror.
If
> > > you want to stop the server from starting, just return DECLINED.
> >
> > Right, I found ap_log_error.  It was the return value I was looking
for.
> > None of the example filter modules had a fatal error check at the
config
> > phase.  So returning a -1 is the correct way to stop the server from
> > starting.  Thanks.
> 
> Hrm..  Nope.  doing 'return DECLINED' from the post_config phase does
not
> stop the server from starting.  I have this:
> 
> static int
> php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog,
apr_pool_t
> *ptemp, server_rec *s)
> {
>     void *data = NULL;
>     const char *userdata_key = "apache2filter_post_config";
> #ifndef ZTS
>     int threaded_mpm;
> 
>     ap_mpm_query(AP_MPMQ_IS_THREADED, &threaded_mpm);
>     if(threaded_mpm) {
>         ap_log_error(APLOG_MARK, APLOG_CRIT, 0, s, "Apache is running
a
> threaded MPM, but your PHP Module is not compiled to be threadsafe.
You
> need to recompile PHP.");
>         return DECLINED;
>     }
> #endif
> ...
> }
> 
> ...
> 
>     ap_hook_pre_config(php_pre_config, NULL, NULL, APR_HOOK_MIDDLE);
>     ap_hook_post_config(php_apache_server_startup, NULL, NULL,
> APR_HOOK_MIDDLE);
> 
> And in my log I get:
> 
> [Mon Jun 24 08:27:23 2002] [crit] Apache is running a threaded MPM,
but
> your PHP Module is not compiled to be threadsafe.  You need to
recompile
> PHP.
> [Mon Jun 24 08:27:23 2002] [crit] Apache is running a threaded MPM,
but
> your PHP Module is not compiled to be threadsafe.  You need to
recompile
> PHP.
> [Mon Jun 24 08:27:23 2002] [notice] Apache/2.0.40-dev (Unix)
configured --
> resuming normal operations


Reply via email to