static PHP_MINFO_FUNCTION(mcrypt);
static PHP_MINIT_FUNCTION(mcrypt);
static PHP_MSHUTDOWN_FUNCTION(mcrypt);
+static PHP_GINIT_FUNCTION(mcrypt);
+static PHP_GSHUTDOWN_FUNCTION(mcrypt);
ZEND_DECLARE_MODULE_GLOBALS(mcrypt)
PHP_MINFO(mcrypt),
PHP_MCRYPT_VERSION,
PHP_MODULE_GLOBALS(mcrypt),
- NULL,
- NULL,
+ PHP_GINIT(mcrypt),
+ PHP_GSHUTDOWN(mcrypt),
NULL,
STANDARD_MODULE_PROPERTIES_EX
};
}
/* }}} */
+static PHP_GINIT_FUNCTION(mcrypt)
+{
+ mcrypt_globals->fd[RANDOM] = -1;
+ mcrypt_globals->fd[URANDOM] = -1;
+}
+
+static PHP_GSHUTDOWN_FUNCTION(mcrypt)
+{
+ if (mcrypt_globals->fd[RANDOM] >= 0) {
+ close(mcrypt_globals->fd[RANDOM]);
+ mcrypt_globals->fd[RANDOM] = -1;
+ }
+
+ if (mcrypt_globals->fd[URANDOM] >= 0) {
+ close(mcrypt_globals->fd[URANDOM]);
+ mcrypt_globals->fd[URANDOM] = -1;
+ }
+}
+
static PHP_MINIT_FUNCTION(mcrypt) /* {{{ */
{
le_mcrypt = zend_register_list_destructors_ex(php_mcrypt_module_dtor, NULL, "mcrypt", module_number);
php_stream_filter_register_factory("mcrypt.*", &php_mcrypt_filter_factory);
php_stream_filter_register_factory("mdecrypt.*", &php_mcrypt_filter_factory);
- MCG(fd[RANDOM]) = -1;
- MCG(fd[URANDOM]) = -1;
-
return SUCCESS;
}
/* }}} */
php_stream_filter_unregister_factory("mcrypt.*");
php_stream_filter_unregister_factory("mdecrypt.*");
- if (MCG(fd[RANDOM]) > 0) {
- close(MCG(fd[RANDOM]));
- }
-
- if (MCG(fd[URANDOM]) > 0) {
- close(MCG(fd[URANDOM]));
- }
-
UNREGISTER_INI_ENTRIES();
return SUCCESS;
}