HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux acmehomecare 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: www-data (33)
PHP: 8.0.30
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: /var/www/html/wp-content/plugins/wp-fail2ban/lib/compat.php
<?php declare(strict_types=1);
/**
 * Back-Compat
 *
 * @package wp-fail2ban
 * @since  4.4.0
 */
namespace {
    /**
     * For ClassicPress and WP < 5.3
     *
     * @codeCoverageIgnore
     */
    if (!function_exists('wp_timezone_string')) {
        /**
         * Retrieves the timezone of the site as a string.
         *
         * Uses the `timezone_string` option to get a proper timezone name if available,
         * otherwise falls back to a manual UTC ± offset.
         *
         * Example return values:
         *
         *  - 'Europe/Rome'
         *  - 'America/North_Dakota/New_Salem'
         *  - 'UTC'
         *  - '-06:30'
         *  - '+00:00'
         *  - '+08:45'
         *
         * @since 5.3.0
         *
         * @return string PHP timezone name or a ±HH:MM offset.
         *
         * @codeCoverageIgnoreStart
         */
        function wp_timezone_string()
        {
            $timezone_string = get_option('timezone_string');

            if ($timezone_string) {
                return $timezone_string;
            }

            $offset  = (float) get_option('gmt_offset');
            $hours   = (int) $offset;
            $minutes = ( $offset - $hours );

            $sign      = ( $offset < 0 ) ? '-' : '+';
            $abs_hour  = abs($hours);
            $abs_mins  = abs($minutes * 60);
            $tz_offset = sprintf('%s%02d:%02d', $sign, $abs_hour, $abs_mins);

            return $tz_offset;
        }
    }
}

namespace org\lecklider\charles\wordpress\wp_fail2ban {
    /**
     * Shim: Wrapper for \openlog
     *
     * @since  4.4.0    Refactor for Syslog class; add type hint, return type
     * @since  3.5.0    Refactored for unit testing
     *
     * @param  string   $log
     *
     * @return bool
     */
    function openlog(string $log = 'WP_FAIL2BAN_AUTH_LOG'): bool
    {
        return Syslog::open($log);
    }

    /**
     * Shim: Wrapper for \syslog
     *
     * @since  4.4.0    Refactor for Syslog class; add type hint, return type
     * @since  3.5.0
     *
     * @param  int          $level
     * @param  string       $msg
     * @param  string|null  $remote_addr
     *
     * @return void
     *
     * @codeCoverageIgnore
     */
    function syslog(int $level, string $msg, string $remote_addr = null): bool
    {
        return Syslog::write($level, $msg, $remote_addr);
    }

    /**
     * Shim: Wrapper for \closelog
     *
     * @since  4.4.0    Refactor for Syslog class; add return type
     * @since  4.3.0
     *
     * @return void
     */
    function closelog(): bool
    {
        return Syslog::close();
    }

    /**
     * Helper: check if IP is in list of ranges
     *
     * @since  5.0.0    Deprecated
     * @since  4.4.0    Add return type
     * @since  4.3.1
     *
     * @param  int|string   $ip     IP
     * @param  array        $ranges
     *
     * @return bool
     */
    function ip_in_range($ip, array $ranges): bool
    {
        if (is_string($ip)) {
            $ip = ip2long($ip);
        }
        foreach ($ranges as $range) {
            if ('#' == $range[0]) {
                continue;
            } elseif (2 == count($cidr = explode('/', $range))) {
                $net = ip2long($cidr[0]);
                $mask = ~ ( pow(2, (32 - $cidr[1])) - 1 );
            } else {
                $net = ip2long($range);
                $mask = -1;
            }
            if ($net == ($ip & $mask)) {
                return true;
            }
        }

        return false;
    }

    /**
     * Shim: Wrap new remote_addr() for older add-ons
     *
     * @since  5.0.0
     *
     * @return string
     *
     * @codeCoverageIgnoreStart
     */
    function ___remote_addr(): string
    {
        return (string)core\remote_addr();
    }
}