To proceed with startup at the second load only ap_query_state() must be
used in newish versions of apache
sapi/apache2filter/sapi_apache2.c | 11 +++++++++--
sapi/apache2handler/sapi_apache2.c | 12 ++++++++++--
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/sapi/apache2filter/sapi_apache2.c b/sapi/apache2filter/sapi_apache2.c
index 8ce490e..c308a29 100644
--- a/sapi/apache2filter/sapi_apache2.c
+++ b/sapi/apache2filter/sapi_apache2.c
@@ -606,11 +606,17 @@ static int
php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog,
apr_pool_t *ptemp, server_rec *s)
{
+#if AP_MODULE_MAGIC_AT_LEAST(20110203,1)
-
/* Apache will load, unload and then reload a DSO module. This
-
* prevents us from starting PHP until the second load. */
-
if (ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG) {
-
return OK;
-
}
+#else
void *data = NULL;
const char *userdata_key = "apache2filter_post_config";
- /* Apache will load, unload and then reload a DSO module. This
-
- prevents us from starting PHP until the second load. /
apr_pool_userdata_get(&data, userdata_key, s->process->pool);
if (data == NULL) {
/ We must use set() here and not setn(), otherwise the
@@ -622,6 +628,7 @@ php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog,
apr_pool_cleanup_null, s->process->pool);
return OK;
}
+#endif
- prevents us from starting PHP until the second load. /
/* Set up our overridden path. */
if (apache2_php_ini_path_override) {
diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c
index b7f95e0..7c5b498 100644
--- a/sapi/apache2handler/sapi_apache2.c
+++ b/sapi/apache2handler/sapi_apache2.c
@@ -430,12 +430,19 @@ static int php_pre_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp
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 = "apache2hook_post_config";
+#if AP_MODULE_MAGIC_AT_LEAST(20110203,1)
/* Apache will load, unload and then reload a DSO module. This
* prevents us from starting PHP until the second load. */
-
if (ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG) {
-
return OK;
-
}
+#else -
void *data = NULL;
-
const char *userdata_key = "apache2hook_post_config";
-
apr_pool_userdata_get(&data, userdata_key, s->process->pool);
-
if (data == NULL) {
/* We must use set() here and not setn(), otherwise the
* static string pointed to by userdata_key will be mapped
@@ -445,6 +452,7 @@ php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp
apr_pool_userdata_set((const void *)1, userdata_key, apr_pool_cleanup_null, s->process->pool);
return OK;
}
+#endif/* Set up our overridden path. */
if (apache2_php_ini_path_override) {
--
1.8.1.4
To proceed with startup at the second load only ap_query_state() must be
used in newish versions of apache
Hi Chrisitian!
Chris Jones already mentioned a year ago, that patches on the mailing
list are likely to get lost, and it indeed happened! Sorry.
I would really like to apply your patches but please send them
complying with our coding standards, please (in your case it's mostly
about indentation and trailing whitespace)!
Thank you!
PS: Please consider using our bug tracker http://bugs.php.net in the future.