Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.119
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
php-7.4.33 /
ext /
opcache /
Delete
Unzip
Name
Size
Permission
Date
Action
.libs
[ DIR ]
drwxr-xr-x
2024-03-12 14:21
Optimizer
[ DIR ]
drwxrwxr-x
2024-03-12 14:21
tests
[ DIR ]
drwxrwxr-x
2022-10-31 11:36
CREDITS
83
B
-rw-rw-r--
2022-10-31 11:36
ZendAccelerator.c
143.96
KB
-rw-rw-r--
2022-10-31 11:36
ZendAccelerator.h
10.74
KB
-rw-rw-r--
2022-10-31 11:36
ZendAccelerator.lo
348
B
-rw-r--r--
2024-03-12 14:20
ZendAccelerator.o
434.07
KB
-rw-r--r--
2024-03-12 14:20
config.m4
5.55
KB
-rw-rw-r--
2022-10-31 11:36
config.w32
952
B
-rw-rw-r--
2022-10-31 11:36
opcache.la
800
B
-rw-r--r--
2024-03-12 14:21
shared_alloc_mmap.c
3.45
KB
-rw-rw-r--
2022-10-31 11:36
shared_alloc_mmap.lo
354
B
-rw-r--r--
2024-03-12 14:20
shared_alloc_mmap.o
60.89
KB
-rw-r--r--
2024-03-12 14:20
shared_alloc_posix.c
3.43
KB
-rw-rw-r--
2022-10-31 11:36
shared_alloc_posix.lo
357
B
-rw-r--r--
2024-03-12 14:20
shared_alloc_posix.o
62.87
KB
-rw-r--r--
2024-03-12 14:20
shared_alloc_shm.c
4.66
KB
-rw-rw-r--
2022-10-31 11:36
shared_alloc_shm.lo
351
B
-rw-r--r--
2024-03-12 14:20
shared_alloc_shm.o
64.22
KB
-rw-r--r--
2024-03-12 14:20
shared_alloc_win32.c
12.15
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_blacklist.c
9.98
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_blacklist.h
2.32
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_blacklist.lo
381
B
-rw-r--r--
2024-03-12 14:20
zend_accelerator_blacklist.o
100.31
KB
-rw-r--r--
2024-03-12 14:20
zend_accelerator_debug.c
2.88
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_debug.h
1.69
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_debug.lo
369
B
-rw-r--r--
2024-03-12 14:20
zend_accelerator_debug.o
63.79
KB
-rw-r--r--
2024-03-12 14:20
zend_accelerator_hash.c
7.61
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_hash.h
4.13
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_hash.lo
366
B
-rw-r--r--
2024-03-12 14:20
zend_accelerator_hash.o
78.8
KB
-rw-r--r--
2024-03-12 14:20
zend_accelerator_module.c
36.89
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_module.h
1.53
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_module.lo
372
B
-rw-r--r--
2024-03-12 14:20
zend_accelerator_module.o
180.41
KB
-rw-r--r--
2024-03-12 14:20
zend_accelerator_util_funcs.c
28.33
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_util_funcs.h
2.16
KB
-rw-rw-r--
2022-10-31 11:36
zend_accelerator_util_funcs.lo
384
B
-rw-r--r--
2024-03-12 14:20
zend_accelerator_util_funcs.o
106.78
KB
-rw-r--r--
2024-03-12 14:20
zend_file_cache.c
49.41
KB
-rw-rw-r--
2022-10-31 11:36
zend_file_cache.h
1.42
KB
-rw-rw-r--
2022-10-31 11:36
zend_file_cache.lo
348
B
-rw-r--r--
2024-03-12 14:20
zend_file_cache.o
179.37
KB
-rw-r--r--
2024-03-12 14:20
zend_persist.c
35.42
KB
-rw-rw-r--
2022-10-31 11:36
zend_persist.h
1.74
KB
-rw-rw-r--
2022-10-31 11:36
zend_persist.lo
339
B
-rw-r--r--
2024-03-12 14:20
zend_persist.o
184.55
KB
-rw-r--r--
2024-03-12 14:20
zend_persist_calc.c
16.68
KB
-rw-rw-r--
2022-10-31 11:36
zend_persist_calc.lo
354
B
-rw-r--r--
2024-03-12 14:20
zend_persist_calc.o
106.17
KB
-rw-r--r--
2024-03-12 14:20
zend_shared_alloc.c
17
KB
-rw-rw-r--
2022-10-31 11:36
zend_shared_alloc.h
6.6
KB
-rw-rw-r--
2022-10-31 11:36
zend_shared_alloc.lo
354
B
-rw-r--r--
2024-03-12 14:20
zend_shared_alloc.o
105.86
KB
-rw-r--r--
2024-03-12 14:20
Save
Rename
/* +----------------------------------------------------------------------+ | Zend OPcache | +----------------------------------------------------------------------+ | Copyright (c) The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Andi Gutmans <andi@php.net> | | Zeev Suraski <zeev@php.net> | | Stanislav Malyshev <stas@zend.com> | | Dmitry Stogov <dmitry@php.net> | +----------------------------------------------------------------------+ */ #include "ZendAccelerator.h" #include "zend_accelerator_hash.h" #include "zend_hash.h" #include "zend_shared_alloc.h" /* Generated on an Octa-ALPHA 300MHz CPU & 2.5GB RAM monster */ static uint32_t prime_numbers[] = {5, 11, 19, 53, 107, 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 }; static uint32_t num_prime_numbers = sizeof(prime_numbers) / sizeof(uint32_t); void zend_accel_hash_clean(zend_accel_hash *accel_hash) { accel_hash->num_entries = 0; accel_hash->num_direct_entries = 0; memset(accel_hash->hash_table, 0, sizeof(zend_accel_hash_entry *)*accel_hash->max_num_entries); } void zend_accel_hash_init(zend_accel_hash *accel_hash, uint32_t hash_size) { uint32_t i; for (i=0; i<num_prime_numbers; i++) { if (hash_size <= prime_numbers[i]) { hash_size = prime_numbers[i]; break; } } accel_hash->num_entries = 0; accel_hash->num_direct_entries = 0; accel_hash->max_num_entries = hash_size; /* set up hash pointers table */ accel_hash->hash_table = zend_shared_alloc(sizeof(zend_accel_hash_entry *)*accel_hash->max_num_entries); if (!accel_hash->hash_table) { zend_accel_error(ACCEL_LOG_FATAL, "Insufficient shared memory!"); return; } /* set up hash values table */ accel_hash->hash_entries = zend_shared_alloc(sizeof(zend_accel_hash_entry)*accel_hash->max_num_entries); if (!accel_hash->hash_entries) { zend_accel_error(ACCEL_LOG_FATAL, "Insufficient shared memory!"); return; } memset(accel_hash->hash_table, 0, sizeof(zend_accel_hash_entry *)*accel_hash->max_num_entries); } /* Returns NULL if hash is full * Returns pointer the actual hash entry on success * key needs to be already allocated as it is not copied */ zend_accel_hash_entry* zend_accel_hash_update(zend_accel_hash *accel_hash, const char *key, uint32_t key_length, zend_bool indirect, void *data) { zend_ulong hash_value; zend_ulong index; zend_accel_hash_entry *entry; zend_accel_hash_entry *indirect_bucket = NULL; if (indirect) { indirect_bucket = (zend_accel_hash_entry*)data; while (indirect_bucket->indirect) { indirect_bucket = (zend_accel_hash_entry*)indirect_bucket->data; } } hash_value = zend_inline_hash_func(key, key_length); #ifndef ZEND_WIN32 hash_value ^= ZCG(root_hash); #endif index = hash_value % accel_hash->max_num_entries; /* try to see if the element already exists in the hash */ entry = accel_hash->hash_table[index]; while (entry) { if (entry->hash_value == hash_value && entry->key_length == key_length && !memcmp(entry->key, key, key_length)) { if (entry->indirect) { if (indirect_bucket) { entry->data = indirect_bucket; } else { ((zend_accel_hash_entry*)entry->data)->data = data; } } else { if (indirect_bucket) { accel_hash->num_direct_entries--; entry->data = indirect_bucket; entry->indirect = 1; } else { entry->data = data; } } return entry; } entry = entry->next; } /* Does not exist, add a new entry */ if (accel_hash->num_entries == accel_hash->max_num_entries) { return NULL; } entry = &accel_hash->hash_entries[accel_hash->num_entries++]; if (indirect) { entry->data = indirect_bucket; entry->indirect = 1; } else { accel_hash->num_direct_entries++; entry->data = data; entry->indirect = 0; } entry->hash_value = hash_value; entry->key = key; entry->key_length = key_length; entry->next = accel_hash->hash_table[index]; accel_hash->hash_table[index] = entry; return entry; } static zend_always_inline void* zend_accel_hash_find_ex(zend_accel_hash *accel_hash, const char *key, uint32_t key_length, zend_ulong hash_value, int data) { zend_ulong index; zend_accel_hash_entry *entry; #ifndef ZEND_WIN32 hash_value ^= ZCG(root_hash); #endif index = hash_value % accel_hash->max_num_entries; entry = accel_hash->hash_table[index]; while (entry) { if (entry->hash_value == hash_value && entry->key_length == key_length && !memcmp(entry->key, key, key_length)) { if (entry->indirect) { if (data) { return ((zend_accel_hash_entry*)entry->data)->data; } else { return entry->data; } } else { if (data) { return entry->data; } else { return entry; } } } entry = entry->next; } return NULL; } /* Returns the data associated with key on success * Returns NULL if data doesn't exist */ void* zend_accel_hash_find(zend_accel_hash *accel_hash, zend_string *key) { return zend_accel_hash_find_ex( accel_hash, ZSTR_VAL(key), ZSTR_LEN(key), zend_string_hash_val(key), 1); } /* Returns the hash entry associated with key on success * Returns NULL if it doesn't exist */ zend_accel_hash_entry* zend_accel_hash_find_entry(zend_accel_hash *accel_hash, zend_string *key) { return (zend_accel_hash_entry *)zend_accel_hash_find_ex( accel_hash, ZSTR_VAL(key), ZSTR_LEN(key), zend_string_hash_val(key), 0); } /* Returns the data associated with key on success * Returns NULL if data doesn't exist */ void* zend_accel_hash_str_find(zend_accel_hash *accel_hash, const char *key, uint32_t key_length) { return zend_accel_hash_find_ex( accel_hash, key, key_length, zend_inline_hash_func(key, key_length), 1); } /* Returns the hash entry associated with key on success * Returns NULL if it doesn't exist */ zend_accel_hash_entry* zend_accel_hash_str_find_entry(zend_accel_hash *accel_hash, const char *key, uint32_t key_length) { return (zend_accel_hash_entry *)zend_accel_hash_find_ex( accel_hash, key, key_length, zend_inline_hash_func(key, key_length), 0); } int zend_accel_hash_unlink(zend_accel_hash *accel_hash, const char *key, uint32_t key_length) { zend_ulong hash_value; zend_ulong index; zend_accel_hash_entry *entry, *last_entry=NULL; hash_value = zend_inline_hash_func(key, key_length); #ifndef ZEND_WIN32 hash_value ^= ZCG(root_hash); #endif index = hash_value % accel_hash->max_num_entries; entry = accel_hash->hash_table[index]; while (entry) { if (entry->hash_value == hash_value && entry->key_length == key_length && !memcmp(entry->key, key, key_length)) { if (!entry->indirect) { accel_hash->num_direct_entries--; } if (last_entry) { last_entry->next = entry->next; } else { accel_hash->hash_table[index] = entry->next; } return SUCCESS; } last_entry = entry; entry = entry->next; } return FAILURE; }