]> granicus.if.org Git - php/commitdiff
adding disable_classes ini directive based on the
authorHarald Radi <phanto@php.net>
Mon, 3 Mar 2003 01:27:22 +0000 (01:27 +0000)
committerHarald Radi <phanto@php.net>
Mon, 3 Mar 2003 01:27:22 +0000 (01:27 +0000)
newly introduced zend_disable_class function

main/main.c

index 277eba516d4703635c922bf3ae281b4c9c06f66f..915a028c35395feeaa8f1bdb1b5130094c446b9f 100644 (file)
@@ -183,6 +183,44 @@ static void php_disable_functions(TSRMLS_D)
 }
 /* }}} */
 
+/* {{{ php_disable_classes
+ */
+static void php_disable_classes(TSRMLS_D)
+{
+       char *s = NULL;
+       char *e = INI_STR("disable_classes");
+       char p;
+
+       if (!*e) {
+               return;
+       }
+
+       while (*e) {
+               switch (*e) {
+                       case ' ':
+                       case ',':
+                               if (s) {
+                                       p = *e;
+                                       *e = '\0';
+                                       zend_disable_class(s, e-s TSRMLS_CC);
+                                       *e = p;
+                                       s = NULL;
+                               }
+                               break;
+                       default:
+                               if (!s) {
+                                       s = e;
+                               }
+                               break;
+               }
+               e++;
+       }
+       if (s) {
+               zend_disable_class(s, e-s TSRMLS_CC);
+       }
+}
+/* }}} */
+
 /* {{{ PHP_INI_MH
  */
 static PHP_INI_MH(OnUpdateTimeout)
@@ -308,6 +346,7 @@ PHP_INI_BEGIN()
        PHP_INI_ENTRY("sendmail_path",  DEFAULT_SENDMAIL_PATH,  PHP_INI_SYSTEM,         NULL)
        PHP_INI_ENTRY("mail_force_extra_parameters",NULL,               PHP_INI_SYSTEM,         NULL)
        PHP_INI_ENTRY("disable_functions",                      "",                     PHP_INI_SYSTEM,         NULL)
+       PHP_INI_ENTRY("disable_classes",                        "",                     PHP_INI_SYSTEM,         NULL)
 
        STD_PHP_INI_BOOLEAN("allow_url_fopen",          "1",            PHP_INI_ALL,            OnUpdateBool,                   allow_url_fopen,                        php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("always_populate_raw_post_data",            "0",            PHP_INI_SYSTEM|PHP_INI_PERDIR,          OnUpdateBool,                   always_populate_raw_post_data,                  php_core_globals,       core_globals)
@@ -1301,8 +1340,9 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
         */
        php_ini_delayed_modules_startup(TSRMLS_C);
 
-       /* disable certain functions as requested by php.ini */
+       /* disable certain classes and functions as requested by php.ini */
        php_disable_functions(TSRMLS_C);
+       php_disable_classes(TSRMLS_C);
 
        /* start Zend extensions */
        zend_startup_extensions();