zend_accel_shared_globals *accel_shared_globals = NULL;
/* true globals, no need for thread safety */
+char accel_system_id[32];
zend_bool accel_startup_ok = 0;
static char *zps_failure_reason = NULL;
char *zps_api_failure_reason = NULL;
ZEND_TSRMLS_CACHE_UPDATE();
#endif
memset(accel_globals, 0, sizeof(zend_accel_globals));
-
- /* TODO refactor to init this just once. */
- accel_gen_system_id();
}
#define ZEND_BIN_ID "BIN_" ZEND_TOSTR(SIZEOF_INT) ZEND_TOSTR(SIZEOF_LONG) ZEND_TOSTR(SIZEOF_SIZE_T) ZEND_TOSTR(SIZEOF_ZEND_LONG) ZEND_TOSTR(ZEND_MM_ALIGNMENT)
{
PHP_MD5_CTX context;
unsigned char digest[16], c;
- char *md5str = ZCG(system_id);
+ char *md5str = accel_system_id;
int i;
PHP_MD5Init(&context);
# endif
#endif
+ accel_gen_system_id();
+
if (start_accel_module() == FAILURE) {
accel_startup_ok = 0;
zend_error(E_WARNING, ACCELERATOR_PRODUCT_NAME ": module registration failed!");
return FAILURE;
}
- accel_gen_system_id();
-
#ifdef HAVE_HUGE_CODE_PAGES
if (ZCG(accel_directives).huge_code_pages &&
(strcmp(sapi_module.name, "cli") == 0 ||
int auto_globals_mask;
time_t request_time;
time_t last_restart_time; /* used to synchronize SHM and in-process caches */
- char system_id[32];
HashTable xlat_table;
#ifndef ZEND_WIN32
zend_ulong root_hash;
zend_string_table interned_strings;
} zend_accel_shared_globals;
+extern char accel_system_id[32];
extern zend_bool accel_startup_ok;
extern zend_bool file_cache_only;
#if ENABLE_FILE_CACHE_FALLBACK
if (!uname) {
return NULL;
}
- snprintf(newname, sizeof(newname) - 1, "%s@%s@%.32s", name, uname, ZCG(system_id));
+ snprintf(newname, sizeof(newname) - 1, "%s@%s@%.32s", name, uname, accel_system_id);
free(uname);
if ('\\' == windir[l-1]) {
l--;
}
- snprintf(windir + l, sizeof(windir) - l - 1, "\\%s@%s@%.32s", ACCEL_FILEMAP_BASE, uname, ZCG(system_id));
+ snprintf(windir + l, sizeof(windir) - l - 1, "\\%s@%s@%.32s", ACCEL_FILEMAP_BASE, uname, accel_system_id);
free(uname);
zend_persistent_script *new_script;
memcpy(info->magic, "OPCACHE", 8);
- memcpy(info->system_id, ZCG(system_id), 32);
+ memcpy(info->system_id, accel_system_id, 32);
info->mem_size = script->size;
info->str_size = 0;
info->script_offset = (char*)script - (char*)script->mem;
filename = emalloc(len + 33 + ZSTR_LEN(script_path) + sizeof(SUFFIX));
memcpy(filename, ZCG(accel_directives).file_cache, len);
filename[len] = '/';
- memcpy(filename + len + 1, ZCG(system_id), 32);
+ memcpy(filename + len + 1, accel_system_id, 32);
memcpy(filename + len + 33, ZSTR_VAL(script_path), ZSTR_LEN(script_path));
memcpy(filename + len + 33 + ZSTR_LEN(script_path), SUFFIX, sizeof(SUFFIX));
#else
len += 32;
filename[len] = '\\';
- memcpy(filename + len + 1, ZCG(system_id), 32);
+ memcpy(filename + len + 1, accel_system_id, 32);
if (ZSTR_LEN(script_path) >= 7 && ':' == ZSTR_VAL(script_path)[4] && '/' == ZSTR_VAL(script_path)[5] && '/' == ZSTR_VAL(script_path)[6]) {
/* phar:// or file:// */
efree(filename);
return NULL;
}
- if (memcmp(info.system_id, ZCG(system_id), 32) != 0) {
+ if (memcmp(info.system_id, accel_system_id, 32) != 0) {
zend_accel_error(ACCEL_LOG_WARNING, "opcache cannot read from file '%s' (wrong \"system_id\")\n", filename);
zend_file_cache_flock(fd, LOCK_UN);
close(fd);