[PATCH] [RESEND] sapi/apache2*: USe the correct API at·server startup

From: Date: Wed, 31 Jul 2013 01:39:49 +0000
Subject: [PATCH] [RESEND] sapi/apache2*: USe the correct API at·server startup
Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
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
 
 	/* 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



Thread (2 messages)

« previous php.internals (#68341) next »