cvs: php4 /sapi/apache2filter apache_config.c php_apache.h sapi_apache2.c
| From: | Ilia Alshanetsky | Date: | Tue, 22 Oct 2002 12:20:12 +0000 |
| Subject: | cvs: php4 /sapi/apache2filter apache_config.c php_apache.h sapi_apache2.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-15146@lists.php.net to get a copy of this message | ||
iliaa Tue Oct 22 08:20:12 2002 EDT
Modified files:
/php4/sapi/apache2filter apache_config.c php_apache.h
sapi_apache2.c
Log:
Added support for 'engine Off' directive
Added support for 'none' option for *_value options.
Index: php4/sapi/apache2filter/apache_config.c
diff -u php4/sapi/apache2filter/apache_config.c:1.22 php4/sapi/apache2filter/apache_config.c:1.23
--- php4/sapi/apache2filter/apache_config.c:1.22 Sat Jun 22 11:31:44 2002
+++ php4/sapi/apache2filter/apache_config.c Tue Oct 22 08:20:12 2002
@@ -53,23 +53,18 @@
{
php_conf_rec *d = dummy;
php_dir_entry e;
- php_dir_entry *pe;
- size_t str_len;
phpapdebug((stderr, "Getting %s=%s for %p (%d)\n", name, value, dummy,
zend_hash_num_elements(&d->config)));
+
+ if (!strncasecmp(value, "none", sizeof("none"))) {
+ value = "";
+ }
+
e.value = apr_pstrdup(cmd->pool, value);
e.value_len = strlen(value);
e.status = status;
- str_len = strlen(name);
-
- if (zend_hash_find(&d->config, (char *) name, str_len + 1, (void **) &pe) == SUCCESS) {
- if (pe->status > status)
- return NULL;
- }
-
- zend_hash_update(&d->config, (char *) name, strlen(name) + 1, &e, sizeof(e),
- NULL);
+ zend_hash_update(&d->config, (char *) name, strlen(name) + 1, &e, sizeof(e), NULL);
return NULL;
}
@@ -139,6 +134,18 @@
phpapdebug((stderr, "ADDING/OVERWRITING %s (%d vs. %d)\n", str, data->status,
pe?pe->status:-1));
}
return new_conf;
+}
+
+char *get_php_config(void *conf, char *name, size_t name_len)
+{
+ php_conf_rec *d = conf;
+ php_dir_entry *pe;
+
+ if (zend_hash_find(&d->config, name, name_len, (void **) &pe) == SUCCESS) {
+ return pe->value;
+ }
+
+ return "";
}
void apply_config(void *dummy)
Index: php4/sapi/apache2filter/php_apache.h
diff -u php4/sapi/apache2filter/php_apache.h:1.16 php4/sapi/apache2filter/php_apache.h:1.17
--- php4/sapi/apache2filter/php_apache.h:1.16 Mon Sep 23 14:51:34 2002
+++ php4/sapi/apache2filter/php_apache.h Tue Oct 22 08:20:12 2002
@@ -48,6 +48,7 @@
void *merge_php_config(apr_pool_t *p, void *base_conf, void *new_conf);
void *create_php_config(apr_pool_t *p, char *dummy);
+char *get_php_config(void *conf, char *name, size_t name_len);
void apply_config(void *);
extern const command_rec php_dir_cmds[];
Index: php4/sapi/apache2filter/sapi_apache2.c
diff -u php4/sapi/apache2filter/sapi_apache2.c:1.88 php4/sapi/apache2filter/sapi_apache2.c:1.89
--- php4/sapi/apache2filter/sapi_apache2.c:1.88 Wed Oct 16 16:45:36 2002
+++ php4/sapi/apache2filter/sapi_apache2.c Tue Oct 22 08:20:12 2002
@@ -390,9 +390,15 @@
php_struct *ctx;
apr_bucket *b;
void *conf = ap_get_module_config(f->r->per_dir_config, &php4_module);
+ char *p = get_php_config(conf, "engine", sizeof("engine"));
TSRMLS_FETCH();
if (f->r->proxyreq) {
+ return ap_pass_brigade(f->next, bb);
+ }
+
+ /* handle situations where user turns the engine off */
+ if (*p == '0') {
return ap_pass_brigade(f->next, bb);
}