]> granicus.if.org Git - php/commitdiff
Implement new get_ini_entry() for Zend
authorZeev Suraski <zeev@php.net>
Sat, 19 Jun 1999 19:23:24 +0000 (19:23 +0000)
committerZeev Suraski <zeev@php.net>
Sat, 19 Jun 1999 19:23:24 +0000 (19:23 +0000)
main/main.c
main/php_ini.c
main/php_ini.h

index ecedb016935d7d1e4310b39f2d06def64b9e389b..fd7aba139763f1ff9f55a73cb41a0a5c37ef17c6 100644 (file)
@@ -551,6 +551,21 @@ static FILE *php_fopen_wrapper_for_zend(const char *filename)
 }
 
 
+static int php_get_ini_entry_for_zend(char *name, uint name_length, zval *contents)
+{
+       php_ini_entry *ini_entry = get_ini_entry(name, name_length);
+
+       if (ini_entry) {
+               contents->type = IS_STRING;
+               contents->value.str.val = ini_entry->value;
+               contents->value.str.len = ini_entry->value_length;
+               return SUCCESS;
+       } else {
+               return FAILURE;
+       }
+}
+
+
 static void php_message_handler_for_zend(long message, void *data)
 {
        switch (message) {
@@ -790,7 +805,7 @@ int php_module_startup(sapi_module_struct *sf)
        zuf.message_handler = php_message_handler_for_zend;
        zuf.block_interruptions = BLOCK_INTERRUPTIONS;
        zuf.unblock_interruptions = UNBLOCK_INTERRUPTIONS;
-
+       zuf.get_ini_entry = php_get_ini_entry_for_zend;
        zend_startup(&zuf, NULL);
 
 #ifdef ZTS
index 610e85ce12d1c27ed165f542514be69bbfe2245d..67da69d24e874585552dc64cc4e6ff5e2b02de62 100644 (file)
@@ -73,7 +73,7 @@ static int php_restore_ini_entry_cb(php_ini_entry *ini_entry)
  */
 int php_ini_mstartup()
 {
-       if (_php3_hash_init(&known_directives, 100, NULL, NULL, 1)==FAILURE) {
+       if (zend_hash_init(&known_directives, 100, NULL, NULL, 1)==FAILURE) {
                return FAILURE;
        }
        return SUCCESS;
@@ -82,14 +82,14 @@ int php_ini_mstartup()
 
 int php_ini_mshutdown()
 {
-       _php3_hash_destroy(&known_directives);
+       zend_hash_destroy(&known_directives);
        return SUCCESS;
 }
 
 
 int php_ini_rshutdown()
 {
-       _php3_hash_apply(&known_directives, (int (*)(void *)) php_restore_ini_entry_cb);
+       zend_hash_apply(&known_directives, (int (*)(void *)) php_restore_ini_entry_cb);
        return SUCCESS;
 }
 
@@ -105,7 +105,7 @@ PHPAPI int php_register_ini_entries(php_ini_entry *ini_entry, int module_number)
 
        while (p->name) {
                p->module_number = module_number;
-               if (_php3_hash_add(&known_directives, p->name, p->name_length, p, sizeof(php_ini_entry), (void **) &hashed_ini_entry)==FAILURE) {
+               if (zend_hash_add(&known_directives, p->name, p->name_length, p, sizeof(php_ini_entry), (void **) &hashed_ini_entry)==FAILURE) {
                        php_unregister_ini_entries(module_number);
                        return FAILURE;
                }
@@ -132,7 +132,7 @@ PHPAPI int php_register_ini_entries(php_ini_entry *ini_entry, int module_number)
 
 PHPAPI void php_unregister_ini_entries(int module_number)
 {
-       _php3_hash_apply_with_argument(&known_directives, (int (*)(void *, void *)) php_remove_ini_entries, (void *) &module_number);
+       zend_hash_apply_with_argument(&known_directives, (int (*)(void *, void *)) php_remove_ini_entries, (void *) &module_number);
 }
 
 
@@ -141,7 +141,7 @@ PHPAPI int php_alter_ini_entry(char *name, uint name_length, char *new_value, ui
        php_ini_entry *ini_entry;
        char *duplicate;
 
-       if (_php3_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
                return FAILURE;
        }
 
@@ -174,7 +174,7 @@ PHPAPI int php_restore_ini_entry(char *name, uint name_length)
 {
        php_ini_entry *ini_entry;
 
-       if (_php3_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
                return FAILURE;
        }
 
@@ -187,7 +187,7 @@ PHPAPI int php_ini_register_displayer(char *name, uint name_length, void (*displ
 {
        php_ini_entry *ini_entry;
 
-       if (_php3_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
                return FAILURE;
        }
 
@@ -205,7 +205,7 @@ PHPAPI long php_ini_long(char *name, uint name_length, int orig)
 {
        php_ini_entry *ini_entry;
 
-       if (_php3_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
                if (orig && ini_entry->modified) {
                        return (ini_entry->orig_value ? strtol(ini_entry->orig_value, NULL, 0) : 0);
                } else if (ini_entry->value) {
@@ -221,7 +221,7 @@ PHPAPI double php_ini_double(char *name, uint name_length, int orig)
 {
        php_ini_entry *ini_entry;
 
-       if (_php3_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
                if (orig && ini_entry->modified) {
                        return (double) (ini_entry->orig_value ? strtod(ini_entry->orig_value, NULL) : 0.0);
                } else if (ini_entry->value) {
@@ -237,7 +237,7 @@ PHPAPI char *php_ini_string(char *name, uint name_length, int orig)
 {
        php_ini_entry *ini_entry;
 
-       if (_php3_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
                if (orig && ini_entry->modified) {
                        return ini_entry->orig_value;
                } else {
@@ -249,6 +249,17 @@ PHPAPI char *php_ini_string(char *name, uint name_length, int orig)
 }
 
 
+php_ini_entry *get_ini_entry(char *name, uint name_length)
+{
+       php_ini_entry *ini_entry;
+
+       if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
+               return ini_entry;
+       } else {
+               return NULL;
+       }
+}
+
 
 static void php_ini_displayer_cb(php_ini_entry *ini_entry, int type)
 {
index dc57089588af766c23ca3f7f904b65373716d627..8ca31afeb6c71b375c78a33295c08ca3032b09a1 100644 (file)
@@ -46,6 +46,7 @@ PHPAPI void display_ini_entries(zend_module_entry *module);
 PHPAPI long php_ini_long(char *name, uint name_length, int orig);
 PHPAPI double php_ini_double(char *name, uint name_length, int orig);
 PHPAPI char *php_ini_string(char *name, uint name_length, int orig);
+php_ini_entry *get_ini_entry(char *name, uint name_length);
 
 PHPAPI int php_ini_register_displayer(char *name, uint name_length, void (*displayer)(php_ini_entry *ini_entry, int type));
 PHPAPI PHP_INI_DISP(php_ini_boolean_displayer_cb);