PHP 8.2.30
Preview: class-wp-http-proxy.php Size: 5.92 KB
//proc/self/root/proc/thread-self/root/var/softaculous/sitepad/editor/site-inc/class-wp-http-proxy.php

<?php
/**
 * HTTP API: WP_HTTP_Proxy class
 *
 * @package WordPress
 * @subpackage HTTP
 * @since 4.4.0
 */

/**
 * Core class used to implement HTTP API proxy support.
 *
 * There are caveats to proxy support. It requires that defines be made in the wp-config.php file to
 * enable proxy support. There are also a few filters that plugins can hook into for some of the
 * constants.
 *
 * Please note that only BASIC authentication is supported by most transports.
 * cURL MAY support more methods (such as NTLM authentication) depending on your environment.
 *
 * The constants are as follows:
 * <ol>
 * <li>WP_PROXY_HOST - Enable proxy support and host for connecting.</li>
 * <li>WP_PROXY_PORT - Proxy port for connection. No default, must be defined.</li>
 * <li>WP_PROXY_USERNAME - Proxy username, if it requires authentication.</li>
 * <li>WP_PROXY_PASSWORD - Proxy password, if it requires authentication.</li>
 * <li>WP_PROXY_BYPASS_HOSTS - Will prevent the hosts in this list from going through the proxy.
 * You do not need to have localhost and the site host in this list, because they will not be passed
 * through the proxy. The list should be presented in a comma separated list, wildcards using * are supported, eg. *.wordpress.org</li>
 * </ol>
 *
 * An example can be as seen below.
 *
 *     define('WP_PROXY_HOST', '192.168.84.101');
 *     define('WP_PROXY_PORT', '8080');
 *     define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com, *.wordpress.org');
 *
 * @link https://core.trac.wordpress.org/ticket/4011 Proxy support ticket in WordPress.
 * @link https://core.trac.wordpress.org/ticket/14636 Allow wildcard domains in WP_PROXY_BYPASS_HOSTS
 *
 * @since 2.8.0
 */
class WP_HTTP_Proxy {

	/**
	 * Whether proxy connection should be used.
	 *
	 * @since 2.8.0
	 *
	 * @use WP_PROXY_HOST
	 * @use WP_PROXY_PORT
	 *
	 * @return bool
	 */
	public function is_enabled() {
		return defined( 'WP_PROXY_HOST' ) && defined( 'WP_PROXY_PORT' );
	}

	/**
	 * Whether authentication should be used.
	 *
	 * @since 2.8.0
	 *
	 * @use WP_PROXY_USERNAME
	 * @use WP_PROXY_PASSWORD
	 *
	 * @return bool
	 */
	public function use_authentication() {
		return defined( 'WP_PROXY_USERNAME' ) && defined( 'WP_PROXY_PASSWORD' );
	}

	/**
	 * Retrieve the host for the proxy server.
	 *
	 * @since 2.8.0
	 *
	 * @return string
	 */
	public function host() {
		if ( defined( 'WP_PROXY_HOST' ) ) {
			return WP_PROXY_HOST;
		}

		return '';
	}

	/**
	 * Retrieve the port for the proxy server.
	 *
	 * @since 2.8.0
	 *
	 * @return string
	 */
	public function port() {
		if ( defined( 'WP_PROXY_PORT' ) ) {
			return WP_PROXY_PORT;
		}

		return '';
	}

	/**
	 * Retrieve the username for proxy authentication.
	 *
	 * @since 2.8.0
	 *
	 * @return string
	 */
	public function username() {
		if ( defined( 'WP_PROXY_USERNAME' ) ) {
			return WP_PROXY_USERNAME;
		}

		return '';
	}

	/**
	 * Retrieve the password for proxy authentication.
	 *
	 * @since 2.8.0
	 *
	 * @return string
	 */
	public function password() {
		if ( defined( 'WP_PROXY_PASSWORD' ) ) {
			return WP_PROXY_PASSWORD;
		}

		return '';
	}

	/**
	 * Retrieve authentication string for proxy authentication.
	 *
	 * @since 2.8.0
	 *
	 * @return string
	 */
	public function authentication() {
		return $this->username() . ':' . $this->password();
	}

	/**
	 * Retrieve header string for proxy authentication.
	 *
	 * @since 2.8.0
	 *
	 * @return string
	 */
	public function authentication_header() {
		return 'Proxy-Authorization: Basic ' . base64_encode( $this->authentication() );
	}

	/**
	 * Whether URL should be sent through the proxy server.
	 *
	 * We want to keep localhost and the site URL from being sent through the proxy server, because
	 * some proxies can not handle this. We also have the constant available for defining other
	 * hosts that won't be sent through the proxy.
	 *
	 * @since 2.8.0
	 *
	 * @staticvar array|null $bypass_hosts
	 * @staticvar array      $wildcard_regex
	 *
	 * @param string $uri URI to check.
	 * @return bool True, to send through the proxy and false if, the proxy should not be used.
	 */
	public function send_through_proxy( $uri ) {
		/*
		 * parse_url() only handles http, https type URLs, and will emit E_WARNING on failure.
		 * This will be displayed on sites, which is not reasonable.
		 */
		$check = @parse_url( $uri );

		// Malformed URL, can not process, but this could mean ssl, so let through anyway.
		if ( $check === false ) {
			return true;
		}

		$home = parse_url( get_option( 'siteurl' ) );

		/**
		 * Filters whether to preempt sending the request through the proxy server.
		 *
		 * Returning false will bypass the proxy; returning true will send
		 * the request through the proxy. Returning null bypasses the filter.
		 *
		 * @since 3.5.0
		 *
		 * @param null   $override Whether to override the request result. Default null.
		 * @param string $uri      URL to check.
		 * @param array  $check    Associative array result of parsing the URI.
		 * @param array  $home     Associative array result of parsing the site URL.
		 */
		$result = apply_filters( 'pre_http_send_through_proxy', null, $uri, $check, $home );
		if ( ! is_null( $result ) ) {
			return $result;
		}

		if ( 'localhost' == $check['host'] || ( isset( $home['host'] ) && $home['host'] == $check['host'] ) ) {
			return false;
		}

		if ( ! defined( 'WP_PROXY_BYPASS_HOSTS' ) ) {
			return true;
		}

		static $bypass_hosts   = null;
		static $wildcard_regex = array();
		if ( null === $bypass_hosts ) {
			$bypass_hosts = preg_split( '|,\s*|', WP_PROXY_BYPASS_HOSTS );

			if ( false !== strpos( WP_PROXY_BYPASS_HOSTS, '*' ) ) {
				$wildcard_regex = array();
				foreach ( $bypass_hosts as $host ) {
					$wildcard_regex[] = str_replace( '\*', '.+', preg_quote( $host, '/' ) );
				}
				$wildcard_regex = '/^(' . implode( '|', $wildcard_regex ) . ')$/i';
			}
		}

		if ( ! empty( $wildcard_regex ) ) {
			return ! preg_match( $wildcard_regex, $check['host'] );
		} else {
			return ! in_array( $check['host'], $bypass_hosts );
		}
	}
}

Directory Contents

Dirs: 16 × Files: 162

Name Size Perms Modified Actions
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
css DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
customize DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
ID3 DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
images DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
IXR DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
js DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
PHPMailer DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
pomo DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
Requests DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
rest-api DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
SimplePie DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
Text DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
widgets DIR
- drwxr-xr-x 2026-02-20 22:02:47
Edit Download
29.03 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
11.56 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
16.22 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
12.43 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
11.64 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
13.55 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.11 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21.35 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
27.83 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
28.84 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
50.80 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
12.41 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
523 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download
36.22 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.51 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
39.53 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
30.73 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
7.15 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
668 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download
20.43 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
29.09 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
87.17 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
461 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.07 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.62 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
13.33 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
8.38 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.24 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.78 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
16.08 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.01 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
14.86 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.63 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.70 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
42.21 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
8.75 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
24.49 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
195.47 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
53.08 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
9.42 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
9.99 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
27.59 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.28 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
66.27 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
14.38 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.81 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.50 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
749 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download
13.77 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.44 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
11.64 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.35 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
3.25 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.92 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
1.83 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.19 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.80 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
15.02 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
13.18 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21.27 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
11.49 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.25 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.91 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
14.26 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
1.76 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
22.86 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.26 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
16.79 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
11.93 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.88 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
17.81 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.28 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
127.67 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
58.42 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.60 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
8.13 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
7.25 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.27 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
1.73 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
26.78 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
7.13 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
18.81 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
10.41 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
33.84 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.14 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
716 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download
16.06 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
48.09 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.92 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
30.49 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
20.91 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
12.39 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
3.69 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
17.41 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
202.08 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
24.18 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
11.24 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
17.40 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
9.61 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
87.64 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
111.72 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
15.99 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
30.82 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
34.34 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
9.61 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
24.76 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.13 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
44.04 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.33 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
3.09 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.67 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
1.25 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
4.09 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
3.77 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
19.29 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
280.29 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
210.22 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
12.53 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
8.03 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
138.46 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21.90 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
57.23 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
50.67 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
135.40 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
36.40 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
46.33 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
141.33 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
44.98 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
39.54 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21.20 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
39.57 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download
67.91 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
97.52 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
31.37 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
6.86 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
60.22 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
8.75 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
227.37 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
31.24 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
40.67 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21.08 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
17.27 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.06 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
22.66 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
98.75 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
20.25 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
19.73 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
21.99 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.51 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
152.95 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.55 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
19.77 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
99.09 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
24.81 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
120.69 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
5.59 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
2.03 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
55.82 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
1.03 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
99.29 KB lrw-r--r-- 2026-02-18 23:32:28
Edit Download
662 B lrw-r--r-- 2026-02-18 23:32:28
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).