HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/hanode/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/shutdown.php
<?php

class wfShutdownFunction {

	private $callable;
	private $priority;

	public function __construct($callable, $priority) {
		$this->callable = $callable;
		$this->priority = $priority;
	}

	public function invoke() {
		call_user_func($this->callable);
	}

	public function getPriority() {
		return $this->priority;
	}

	public function __wakeup() {
		$this->callable = function() {};
	}

}

class wfShutdownRegistry {

	private static $instance = null;

	const PRIORITY_LAST = 100;

	private $functions = array();
	private $registered = false;

	public function handleShutdown() {
		usort($this->functions, function ($a, $b) {
			return $a->getPriority() - $b->getPriority();
		});
		foreach ($this->functions as $function) {
			$function->invoke();
		}
	}

	public function register($function, $priority = 50) {
		array_push($this->functions, new wfShutdownFunction($function, $priority));
		$this->registerSelf();
	}

	private function registerSelf() {
		if (!$this->registered) {
			register_shutdown_function(array($this, 'handleShutdown'));
			$this->registered = true;
		}
	}

	public function __wakeup() {
		$this->functions = array();
		$this->registered = false;
	}

	public static function getDefaultInstance() {
		if (self::$instance === null)
			self::$instance = new self();
		return self::$instance;
	}

}