]> granicus.if.org Git - php/commitdiff
MFH (make apache2filter work with Apache 2.0.40)
authorEdin Kadribasic <edink@php.net>
Thu, 15 Aug 2002 22:27:03 +0000 (22:27 +0000)
committerEdin Kadribasic <edink@php.net>
Thu, 15 Aug 2002 22:27:03 +0000 (22:27 +0000)
sapi/apache2filter/apache_config.c
sapi/apache2filter/sapi_apache2.c

index 90a544415fd2c779149da4a20448d5a9a20ac503..96b27ddbf23812fec29bb0d952d4a0c09539df60 100644 (file)
@@ -165,9 +165,9 @@ const command_rec php_dir_cmds[] =
                   "PHP Value Modifier"),
        AP_INIT_TAKE2("php_flag", php_apache_flag_handler, NULL, OR_OPTIONS,
                   "PHP Flag Modifier"),
-       AP_INIT_TAKE2("php_admin_value", php_apache_admin_value_handler, NULL, ACCESS_CONF,
+       AP_INIT_TAKE2("php_admin_value", php_apache_admin_value_handler, NULL, ACCESS_CONF|RSRC_CONF,
                   "PHP Value Modifier (Admin)"),
-       AP_INIT_TAKE2("php_admin_flag", php_apache_admin_flag_handler, NULL, ACCESS_CONF,
+       AP_INIT_TAKE2("php_admin_flag", php_apache_admin_flag_handler, NULL, ACCESS_CONF|RSRC_CONF,
                   "PHP Flag Modifier (Admin)"),
        AP_INIT_TAKE1("PHPINIDir", php_apache_phpini_set, NULL, RSRC_CONF,
                   "Directory containing the php.ini file"),
index d1253302e9d64266f5326f4f693e77885811c6bf..9a63da69223b80de7324effa9dc1b6cc5e30f7b6 100644 (file)
@@ -40,6 +40,7 @@
 #include "http_main.h"
 #include "util_script.h"
 #include "http_core.h"                         
+#include "ap_mpm.h"
 
 #include "php_apache.h"
  
@@ -94,7 +95,10 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header, sapi_headers_str
 
        val = strchr(sapi_header->header, ':');
 
-       if (!val) return 0;
+       if (!val) {
+               sapi_free_header(sapi_header);
+               return 0;
+       }
 
        *val = '\0';
        
@@ -425,7 +429,9 @@ php_apache_server_shutdown(void *tmp)
 {
        apache2_sapi_module.shutdown(&apache2_sapi_module);
        sapi_shutdown();
+#ifdef ZTS
        tsrm_shutdown();
+#endif
        return APR_SUCCESS;
 }
 
@@ -439,6 +445,15 @@ static void php_apache_add_version(apr_pool_t *p)
 
 static int php_pre_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp)
 {
+#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, 0, "Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.");
+               return DONE;
+       }
+#endif
     /* When this is NULL, apache won't override the hard-coded default
      * php.ini path setting. */
     apache2_php_ini_path_override = NULL;
@@ -470,8 +485,9 @@ php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog,
        if (apache2_php_ini_path_override) {
                apache2_sapi_module.php_ini_path_override = apache2_php_ini_path_override;
        }
-
+#ifdef ZTS
        tsrm_startup(1, 1, 0, NULL);
+#endif
        sapi_startup(&apache2_sapi_module);
        apache2_sapi_module.startup(&apache2_sapi_module);
        apr_pool_cleanup_register(pconf, NULL, php_apache_server_shutdown, apr_pool_cleanup_null);
@@ -548,8 +564,8 @@ static void php_register_hook(apr_pool_t *p)
        ap_hook_post_config(php_apache_server_startup, NULL, NULL, APR_HOOK_MIDDLE);
        ap_hook_insert_filter(php_insert_filter, NULL, NULL, APR_HOOK_MIDDLE);
        ap_hook_post_read_request(php_post_read_request, NULL, NULL, APR_HOOK_MIDDLE);
-       ap_register_output_filter("PHP", php_output_filter, AP_FTYPE_RESOURCE);
-       ap_register_input_filter("PHP", php_input_filter, AP_FTYPE_RESOURCE);
+       ap_register_output_filter("PHP", php_output_filter, NULL, AP_FTYPE_RESOURCE);
+       ap_register_input_filter("PHP", php_input_filter, NULL, AP_FTYPE_RESOURCE);
 }
 
 AP_MODULE_DECLARE_DATA module php4_module = {