aboutsummaryrefslogtreecommitdiff
path: root/srcs/wordpress/wp-includes/Requests
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/wordpress/wp-includes/Requests')
-rw-r--r--srcs/wordpress/wp-includes/Requests/Auth.php33
-rw-r--r--srcs/wordpress/wp-includes/Requests/Auth/Basic.php88
-rw-r--r--srcs/wordpress/wp-includes/Requests/Cookie.php505
-rw-r--r--srcs/wordpress/wp-includes/Requests/Cookie/Jar.php175
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception.php62
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP.php71
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/304.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/305.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/306.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/400.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/401.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/402.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/403.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/404.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/405.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/406.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/407.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/408.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/409.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/410.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/411.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/412.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/413.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/414.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/415.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/416.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/417.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/418.php29
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/428.php29
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/429.php29
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/431.php29
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/500.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/501.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/502.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/503.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/504.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/505.php27
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/511.php29
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/HTTP/Unknown.php44
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/Transport.php5
-rw-r--r--srcs/wordpress/wp-includes/Requests/Exception/Transport/cURL.php56
-rw-r--r--srcs/wordpress/wp-includes/Requests/Hooker.php33
-rw-r--r--srcs/wordpress/wp-includes/Requests/Hooks.php68
-rw-r--r--srcs/wordpress/wp-includes/Requests/IDNAEncoder.php388
-rw-r--r--srcs/wordpress/wp-includes/Requests/IPv6.php190
-rw-r--r--srcs/wordpress/wp-includes/Requests/IRI.php1084
-rw-r--r--srcs/wordpress/wp-includes/Requests/Proxy.php35
-rw-r--r--srcs/wordpress/wp-includes/Requests/Proxy/HTTP.php151
-rw-r--r--srcs/wordpress/wp-includes/Requests/Response.php121
-rw-r--r--srcs/wordpress/wp-includes/Requests/Response/Headers.php98
-rw-r--r--srcs/wordpress/wp-includes/Requests/SSL.php152
-rw-r--r--srcs/wordpress/wp-includes/Requests/Session.php266
-rw-r--r--srcs/wordpress/wp-includes/Requests/Transport.php41
-rw-r--r--srcs/wordpress/wp-includes/Requests/Transport/cURL.php542
-rw-r--r--srcs/wordpress/wp-includes/Requests/Transport/fsockopen.php444
-rw-r--r--srcs/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php103
-rw-r--r--srcs/wordpress/wp-includes/Requests/Utility/FilteredIterator.php45
57 files changed, 0 insertions, 5674 deletions
diff --git a/srcs/wordpress/wp-includes/Requests/Auth.php b/srcs/wordpress/wp-includes/Requests/Auth.php
deleted file mode 100644
index bca4109..0000000
--- a/srcs/wordpress/wp-includes/Requests/Auth.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Authentication provider interface
- *
- * @package Requests
- * @subpackage Authentication
- */
-
-/**
- * Authentication provider interface
- *
- * Implement this interface to act as an authentication provider.
- *
- * Parameters should be passed via the constructor where possible, as this
- * makes it much easier for users to use your provider.
- *
- * @see Requests_Hooks
- * @package Requests
- * @subpackage Authentication
- */
-interface Requests_Auth {
- /**
- * Register hooks as needed
- *
- * This method is called in {@see Requests::request} when the user has set
- * an instance as the 'auth' option. Use this callback to register all the
- * hooks you'll need.
- *
- * @see Requests_Hooks::register
- * @param Requests_Hooks $hooks Hook system
- */
- public function register(Requests_Hooks &$hooks);
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Auth/Basic.php b/srcs/wordpress/wp-includes/Requests/Auth/Basic.php
deleted file mode 100644
index a355cfd..0000000
--- a/srcs/wordpress/wp-includes/Requests/Auth/Basic.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Basic Authentication provider
- *
- * @package Requests
- * @subpackage Authentication
- */
-
-/**
- * Basic Authentication provider
- *
- * Provides a handler for Basic HTTP authentication via the Authorization
- * header.
- *
- * @package Requests
- * @subpackage Authentication
- */
-class Requests_Auth_Basic implements Requests_Auth {
- /**
- * Username
- *
- * @var string
- */
- public $user;
-
- /**
- * Password
- *
- * @var string
- */
- public $pass;
-
- /**
- * Constructor
- *
- * @throws Requests_Exception On incorrect number of arguments (`authbasicbadargs`)
- * @param array|null $args Array of user and password. Must have exactly two elements
- */
- public function __construct($args = null) {
- if (is_array($args)) {
- if (count($args) !== 2) {
- throw new Requests_Exception('Invalid number of arguments', 'authbasicbadargs');
- }
-
- list($this->user, $this->pass) = $args;
- }
- }
-
- /**
- * Register the necessary callbacks
- *
- * @see curl_before_send
- * @see fsockopen_header
- * @param Requests_Hooks $hooks Hook system
- */
- public function register(Requests_Hooks &$hooks) {
- $hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
- $hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
- }
-
- /**
- * Set cURL parameters before the data is sent
- *
- * @param resource $handle cURL resource
- */
- public function curl_before_send(&$handle) {
- curl_setopt($handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
- curl_setopt($handle, CURLOPT_USERPWD, $this->getAuthString());
- }
-
- /**
- * Add extra headers to the request before sending
- *
- * @param string $out HTTP header string
- */
- public function fsockopen_header(&$out) {
- $out .= sprintf("Authorization: Basic %s\r\n", base64_encode($this->getAuthString()));
- }
-
- /**
- * Get the authentication string (user:pass)
- *
- * @return string
- */
- public function getAuthString() {
- return $this->user . ':' . $this->pass;
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Cookie.php b/srcs/wordpress/wp-includes/Requests/Cookie.php
deleted file mode 100644
index 6fccec6..0000000
--- a/srcs/wordpress/wp-includes/Requests/Cookie.php
+++ /dev/null
@@ -1,505 +0,0 @@
-<?php
-/**
- * Cookie storage object
- *
- * @package Requests
- * @subpackage Cookies
- */
-
-/**
- * Cookie storage object
- *
- * @package Requests
- * @subpackage Cookies
- */
-class Requests_Cookie {
- /**
- * Cookie name.
- *
- * @var string
- */
- public $name;
-
- /**
- * Cookie value.
- *
- * @var string
- */
- public $value;
-
- /**
- * Cookie attributes
- *
- * Valid keys are (currently) path, domain, expires, max-age, secure and
- * httponly.
- *
- * @var Requests_Utility_CaseInsensitiveDictionary|array Array-like object
- */
- public $attributes = array();
-
- /**
- * Cookie flags
- *
- * Valid keys are (currently) creation, last-access, persistent and
- * host-only.
- *
- * @var array
- */
- public $flags = array();
-
- /**
- * Reference time for relative calculations
- *
- * This is used in place of `time()` when calculating Max-Age expiration and
- * checking time validity.
- *
- * @var int
- */
- public $reference_time = 0;
-
- /**
- * Create a new cookie object
- *
- * @param string $name
- * @param string $value
- * @param array|Requests_Utility_CaseInsensitiveDictionary $attributes Associative array of attribute data
- */
- public function __construct($name, $value, $attributes = array(), $flags = array(), $reference_time = null) {
- $this->name = $name;
- $this->value = $value;
- $this->attributes = $attributes;
- $default_flags = array(
- 'creation' => time(),
- 'last-access' => time(),
- 'persistent' => false,
- 'host-only' => true,
- );
- $this->flags = array_merge($default_flags, $flags);
-
- $this->reference_time = time();
- if ($reference_time !== null) {
- $this->reference_time = $reference_time;
- }
-
- $this->normalize();
- }
-
- /**
- * Check if a cookie is expired.
- *
- * Checks the age against $this->reference_time to determine if the cookie
- * is expired.
- *
- * @return boolean True if expired, false if time is valid.
- */
- public function is_expired() {
- // RFC6265, s. 4.1.2.2:
- // If a cookie has both the Max-Age and the Expires attribute, the Max-
- // Age attribute has precedence and controls the expiration date of the
- // cookie.
- if (isset($this->attributes['max-age'])) {
- $max_age = $this->attributes['max-age'];
- return $max_age < $this->reference_time;
- }
-
- if (isset($this->attributes['expires'])) {
- $expires = $this->attributes['expires'];
- return $expires < $this->reference_time;
- }
-
- return false;
- }
-
- /**
- * Check if a cookie is valid for a given URI
- *
- * @param Requests_IRI $uri URI to check
- * @return boolean Whether the cookie is valid for the given URI
- */
- public function uri_matches(Requests_IRI $uri) {
- if (!$this->domain_matches($uri->host)) {
- return false;
- }
-
- if (!$this->path_matches($uri->path)) {
- return false;
- }
-
- return empty($this->attributes['secure']) || $uri->scheme === 'https';
- }
-
- /**
- * Check if a cookie is valid for a given domain
- *
- * @param string $string Domain to check
- * @return boolean Whether the cookie is valid for the given domain
- */
- public function domain_matches($string) {
- if (!isset($this->attributes['domain'])) {
- // Cookies created manually; cookies created by Requests will set
- // the domain to the requested domain
- return true;
- }
-
- $domain_string = $this->attributes['domain'];
- if ($domain_string === $string) {
- // The domain string and the string are identical.
- return true;
- }
-
- // If the cookie is marked as host-only and we don't have an exact
- // match, reject the cookie
- if ($this->flags['host-only'] === true) {
- return false;
- }
-
- if (strlen($string) <= strlen($domain_string)) {
- // For obvious reasons, the string cannot be a suffix if the domain
- // is shorter than the domain string
- return false;
- }
-
- if (substr($string, -1 * strlen($domain_string)) !== $domain_string) {
- // The domain string should be a suffix of the string.
- return false;
- }
-
- $prefix = substr($string, 0, strlen($string) - strlen($domain_string));
- if (substr($prefix, -1) !== '.') {
- // The last character of the string that is not included in the
- // domain string should be a %x2E (".") character.
- return false;
- }
-
- // The string should be a host name (i.e., not an IP address).
- return !preg_match('#^(.+\.)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#', $string);
- }
-
- /**
- * Check if a cookie is valid for a given path
- *
- * From the path-match check in RFC 6265 section 5.1.4
- *
- * @param string $request_path Path to check
- * @return boolean Whether the cookie is valid for the given path
- */
- public function path_matches($request_path) {
- if (empty($request_path)) {
- // Normalize empty path to root
- $request_path = '/';
- }
-
- if (!isset($this->attributes['path'])) {
- // Cookies created manually; cookies created by Requests will set
- // the path to the requested path
- return true;
- }
-
- $cookie_path = $this->attributes['path'];
-
- if ($cookie_path === $request_path) {
- // The cookie-path and the request-path are identical.
- return true;
- }
-
- if (strlen($request_path) > strlen($cookie_path) && substr($request_path, 0, strlen($cookie_path)) === $cookie_path) {
- if (substr($cookie_path, -1) === '/') {
- // The cookie-path is a prefix of the request-path, and the last
- // character of the cookie-path is %x2F ("/").
- return true;
- }
-
- if (substr($request_path, strlen($cookie_path), 1) === '/') {
- // The cookie-path is a prefix of the request-path, and the
- // first character of the request-path that is not included in
- // the cookie-path is a %x2F ("/") character.
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Normalize cookie and attributes
- *
- * @return boolean Whether the cookie was successfully normalized
- */
- public function normalize() {
- foreach ($this->attributes as $key => $value) {
- $orig_value = $value;
- $value = $this->normalize_attribute($key, $value);
- if ($value === null) {
- unset($this->attributes[$key]);
- continue;
- }
-
- if ($value !== $orig_value) {
- $this->attributes[$key] = $value;
- }
- }
-
- return true;
- }
-
- /**
- * Parse an individual cookie attribute
- *
- * Handles parsing individual attributes from the cookie values.
- *
- * @param string $name Attribute name
- * @param string|boolean $value Attribute value (string value, or true if empty/flag)
- * @return mixed Value if available, or null if the attribute value is invalid (and should be skipped)
- */
- protected function normalize_attribute($name, $value) {
- switch (strtolower($name)) {
- case 'expires':
- // Expiration parsing, as per RFC 6265 section 5.2.1
- if (is_int($value)) {
- return $value;
- }
-
- $expiry_time = strtotime($value);
- if ($expiry_time === false) {
- return null;
- }
-
- return $expiry_time;
-
- case 'max-age':
- // Expiration parsing, as per RFC 6265 section 5.2.2
- if (is_int($value)) {
- return $value;
- }
-
- // Check that we have a valid age
- if (!preg_match('/^-?\d+$/', $value)) {
- return null;
- }
-
- $delta_seconds = (int) $value;
- if ($delta_seconds <= 0) {
- $expiry_time = 0;
- }
- else {
- $expiry_time = $this->reference_time + $delta_seconds;
- }
-
- return $expiry_time;
-
- case 'domain':
- // Domains are not required as per RFC 6265 section 5.2.3
- if (empty($value)) {
- return null;
- }
-
- // Domain normalization, as per RFC 6265 section 5.2.3
- if ($value[0] === '.') {
- $value = substr($value, 1);
- }
-
- return $value;
-
- default:
- return $value;
- }
- }
-
- /**
- * Format a cookie for a Cookie header
- *
- * This is used when sending cookies to a server.
- *
- * @return string Cookie formatted for Cookie header
- */
- public function format_for_header() {
- return sprintf('%s=%s', $this->name, $this->value);
- }
-
- /**
- * Format a cookie for a Cookie header
- *
- * @codeCoverageIgnore
- * @deprecated Use {@see Requests_Cookie::format_for_header}
- * @return string
- */
- public function formatForHeader() {
- return $this->format_for_header();
- }
-
- /**
- * Format a cookie for a Set-Cookie header
- *
- * This is used when sending cookies to clients. This isn't really
- * applicable to client-side usage, but might be handy for debugging.
- *
- * @return string Cookie formatted for Set-Cookie header
- */
- public function format_for_set_cookie() {
- $header_value = $this->format_for_header();
- if (!empty($this->attributes)) {
- $parts = array();
- foreach ($this->attributes as $key => $value) {
- // Ignore non-associative attributes
- if (is_numeric($key)) {
- $parts[] = $value;
- }
- else {
- $parts[] = sprintf('%s=%s', $key, $value);
- }
- }
-
- $header_value .= '; ' . implode('; ', $parts);
- }
- return $header_value;
- }
-
- /**
- * Format a cookie for a Set-Cookie header
- *
- * @codeCoverageIgnore
- * @deprecated Use {@see Requests_Cookie::format_for_set_cookie}
- * @return string
- */
- public function formatForSetCookie() {
- return $this->format_for_set_cookie();
- }
-
- /**
- * Get the cookie value
- *
- * Attributes and other data can be accessed via methods.
- */
- public function __toString() {
- return $this->value;
- }
-
- /**
- * Parse a cookie string into a cookie object
- *
- * Based on Mozilla's parsing code in Firefox and related projects, which
- * is an intentional deviation from RFC 2109 and RFC 2616. RFC 6265
- * specifies some of this handling, but not in a thorough manner.
- *
- * @param string Cookie header value (from a Set-Cookie header)
- * @return Requests_Cookie Parsed cookie object
- */
- public static function parse($string, $name = '', $reference_time = null) {
- $parts = explode(';', $string);
- $kvparts = array_shift($parts);
-
- if (!empty($name)) {
- $value = $string;
- }
- elseif (strpos($kvparts, '=') === false) {
- // Some sites might only have a value without the equals separator.
- // Deviate from RFC 6265 and pretend it was actually a blank name
- // (`=foo`)
- //
- // https://bugzilla.mozilla.org/show_bug.cgi?id=169091
- $name = '';
- $value = $kvparts;
- }
- else {
- list($name, $value) = explode('=', $kvparts, 2);
- }
- $name = trim($name);
- $value = trim($value);
-
- // Attribute key are handled case-insensitively
- $attributes = new Requests_Utility_CaseInsensitiveDictionary();
-
- if (!empty($parts)) {
- foreach ($parts as $part) {
- if (strpos($part, '=') === false) {
- $part_key = $part;
- $part_value = true;
- }
- else {
- list($part_key, $part_value) = explode('=', $part, 2);
- $part_value = trim($part_value);
- }
-
- $part_key = trim($part_key);
- $attributes[$part_key] = $part_value;
- }
- }
-
- return new Requests_Cookie($name, $value, $attributes, array(), $reference_time);
- }
-
- /**
- * Parse all Set-Cookie headers from request headers
- *
- * @param Requests_Response_Headers $headers Headers to parse from
- * @param Requests_IRI|null $origin URI for comparing cookie origins
- * @param int|null $time Reference time for expiration calculation
- * @return array
- */
- public static function parse_from_headers(Requests_Response_Headers $headers, Requests_IRI $origin = null, $time = null) {
- $cookie_headers = $headers->getValues('Set-Cookie');
- if (empty($cookie_headers)) {
- return array();
- }
-
- $cookies = array();
- foreach ($cookie_headers as $header) {
- $parsed = self::parse($header, '', $time);
-
- // Default domain/path attributes
- if (empty($parsed->attributes['domain']) && !empty($origin)) {
- $parsed->attributes['domain'] = $origin->host;
- $parsed->flags['host-only'] = true;
- }
- else {
- $parsed->flags['host-only'] = false;
- }
-
- $path_is_valid = (!empty($parsed->attributes['path']) && $parsed->attributes['path'][0] === '/');
- if (!$path_is_valid && !empty($origin)) {
- $path = $origin->path;
-
- // Default path normalization as per RFC 6265 section 5.1.4
- if (substr($path, 0, 1) !== '/') {
- // If the uri-path is empty or if the first character of
- // the uri-path is not a %x2F ("/") character, output
- // %x2F ("/") and skip the remaining steps.
- $path = '/';
- }
- elseif (substr_count($path, '/') === 1) {
- // If the uri-path contains no more than one %x2F ("/")
- // character, output %x2F ("/") and skip the remaining
- // step.
- $path = '/';
- }
- else {
- // Output the characters of the uri-path from the first
- // character up to, but not including, the right-most
- // %x2F ("/").
- $path = substr($path, 0, strrpos($path, '/'));
- }
- $parsed->attributes['path'] = $path;
- }
-
- // Reject invalid cookie domains
- if (!empty($origin) && !$parsed->domain_matches($origin->host)) {
- continue;
- }
-
- $cookies[$parsed->name] = $parsed;
- }
-
- return $cookies;
- }
-
- /**
- * Parse all Set-Cookie headers from request headers
- *
- * @codeCoverageIgnore
- * @deprecated Use {@see Requests_Cookie::parse_from_headers}
- * @return string
- */
- public static function parseFromHeaders(Requests_Response_Headers $headers) {
- return self::parse_from_headers($headers);
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Cookie/Jar.php b/srcs/wordpress/wp-includes/Requests/Cookie/Jar.php
deleted file mode 100644
index 69be0fb..0000000
--- a/srcs/wordpress/wp-includes/Requests/Cookie/Jar.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/**
- * Cookie holder object
- *
- * @package Requests
- * @subpackage Cookies
- */
-
-/**
- * Cookie holder object
- *
- * @package Requests
- * @subpackage Cookies
- */
-class Requests_Cookie_Jar implements ArrayAccess, IteratorAggregate {
- /**
- * Actual item data
- *
- * @var array
- */
- protected $cookies = array();
-
- /**
- * Create a new jar
- *
- * @param array $cookies Existing cookie values
- */
- public function __construct($cookies = array()) {
- $this->cookies = $cookies;
- }
-
- /**
- * Normalise cookie data into a Requests_Cookie
- *
- * @param string|Requests_Cookie $cookie
- * @return Requests_Cookie
- */
- public function normalize_cookie($cookie, $key = null) {
- if ($cookie instanceof Requests_Cookie) {
- return $cookie;
- }
-
- return Requests_Cookie::parse($cookie, $key);
- }
-
- /**
- * Normalise cookie data into a Requests_Cookie
- *
- * @codeCoverageIgnore
- * @deprecated Use {@see Requests_Cookie_Jar::normalize_cookie}
- * @return Requests_Cookie
- */
- public function normalizeCookie($cookie, $key = null) {
- return $this->normalize_cookie($cookie, $key);
- }
-
- /**
- * Check if the given item exists
- *
- * @param string $key Item key
- * @return boolean Does the item exist?
- */
- public function offsetExists($key) {
- return isset($this->cookies[$key]);
- }
-
- /**
- * Get the value for the item
- *
- * @param string $key Item key
- * @return string Item value
- */
- public function offsetGet($key) {
- if (!isset($this->cookies[$key])) {
- return null;
- }
-
- return $this->cookies[$key];
- }
-
- /**
- * Set the given item
- *
- * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
- *
- * @param string $key Item name
- * @param string $value Item value
- */
- public function offsetSet($key, $value) {
- if ($key === null) {
- throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
- }
-
- $this->cookies[$key] = $value;
- }
-
- /**
- * Unset the given header
- *
- * @param string $key
- */
- public function offsetUnset($key) {
- unset($this->cookies[$key]);
- }
-
- /**
- * Get an iterator for the data
- *
- * @return ArrayIterator
- */
- public function getIterator() {
- return new ArrayIterator($this->cookies);
- }
-
- /**
- * Register the cookie handler with the request's hooking system
- *
- * @param Requests_Hooker $hooks Hooking system
- */
- public function register(Requests_Hooker $hooks) {
- $hooks->register('requests.before_request', array($this, 'before_request'));
- $hooks->register('requests.before_redirect_check', array($this, 'before_redirect_check'));
- }
-
- /**
- * Add Cookie header to a request if we have any
- *
- * As per RFC 6265, cookies are separated by '; '
- *
- * @param string $url
- * @param array $headers
- * @param array $data
- * @param string $type
- * @param array $options
- */
- public function before_request($url, &$headers, &$data, &$type, &$options) {
- if (!$url instanceof Requests_IRI) {
- $url = new Requests_IRI($url);
- }
-
- if (!empty($this->cookies)) {
- $cookies = array();
- foreach ($this->cookies as $key => $cookie) {
- $cookie = $this->normalize_cookie($cookie, $key);
-
- // Skip expired cookies
- if ($cookie->is_expired()) {
- continue;
- }
-
- if ($cookie->domain_matches($url->host)) {
- $cookies[] = $cookie->format_for_header();
- }
- }
-
- $headers['Cookie'] = implode('; ', $cookies);
- }
- }
-
- /**
- * Parse all cookies from a response and attach them to the response
- *
- * @var Requests_Response $response
- */
- public function before_redirect_check(Requests_Response &$return) {
- $url = $return->url;
- if (!$url instanceof Requests_IRI) {
- $url = new Requests_IRI($url);
- }
-
- $cookies = Requests_Cookie::parse_from_headers($return->headers, $url);
- $this->cookies = array_merge($this->cookies, $cookies);
- $return->cookies = $this;
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception.php b/srcs/wordpress/wp-includes/Requests/Exception.php
deleted file mode 100644
index 37d4711..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * Exception for HTTP requests
- *
- * @package Requests
- */
-
-/**
- * Exception for HTTP requests
- *
- * @package Requests
- */
-class Requests_Exception extends Exception {
- /**
- * Type of exception
- *
- * @var string
- */
- protected $type;
-
- /**
- * Data associated with the exception
- *
- * @var mixed
- */
- protected $data;
-
- /**
- * Create a new exception
- *
- * @param string $message Exception message
- * @param string $type Exception type
- * @param mixed $data Associated data
- * @param integer $code Exception numerical code, if applicable
- */
- public function __construct($message, $type, $data = null, $code = 0) {
- parent::__construct($message, $code);
-
- $this->type = $type;
- $this->data = $data;
- }
-
- /**
- * Like {@see getCode()}, but a string code.
- *
- * @codeCoverageIgnore
- * @return string
- */
- public function getType() {
- return $this->type;
- }
-
- /**
- * Gives any relevant data
- *
- * @codeCoverageIgnore
- * @return mixed
- */
- public function getData() {
- return $this->data;
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP.php
deleted file mode 100644
index 9ac6a87..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-/**
- * Exception based on HTTP response
- *
- * @package Requests
- */
-
-/**
- * Exception based on HTTP response
- *
- * @package Requests
- */
-class Requests_Exception_HTTP extends Requests_Exception {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 0;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Unknown';
-
- /**
- * Create a new exception
- *
- * There is no mechanism to pass in the status code, as this is set by the
- * subclass used. Reason phrases can vary, however.
- *
- * @param string|null $reason Reason phrase
- * @param mixed $data Associated data
- */
- public function __construct($reason = null, $data = null) {
- if ($reason !== null) {
- $this->reason = $reason;
- }
-
- $message = sprintf('%d %s', $this->code, $this->reason);
- parent::__construct($message, 'httpresponse', $data, $this->code);
- }
-
- /**
- * Get the status message
- */
- public function getReason() {
- return $this->reason;
- }
-
- /**
- * Get the correct exception class for a given error code
- *
- * @param int|bool $code HTTP status code, or false if unavailable
- * @return string Exception class name to use
- */
- public static function get_class($code) {
- if (!$code) {
- return 'Requests_Exception_HTTP_Unknown';
- }
-
- $class = sprintf('Requests_Exception_HTTP_%d', $code);
- if (class_exists($class)) {
- return $class;
- }
-
- return 'Requests_Exception_HTTP_Unknown';
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/304.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/304.php
deleted file mode 100644
index 6799033..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/304.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 304 Not Modified responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 304 Not Modified responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_304 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 304;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Not Modified';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/305.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/305.php
deleted file mode 100644
index 37d115a..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/305.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 305 Use Proxy responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 305 Use Proxy responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_305 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 305;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Use Proxy';
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/306.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/306.php
deleted file mode 100644
index 743a4ed..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/306.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 306 Switch Proxy responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 306 Switch Proxy responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_306 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 306;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Switch Proxy';
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/400.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/400.php
deleted file mode 100644
index b3ad774..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/400.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 400 Bad Request responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 400 Bad Request responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_400 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 400;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Bad Request';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/401.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/401.php
deleted file mode 100644
index 2e1e3d0..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/401.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 401 Unauthorized responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 401 Unauthorized responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_401 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 401;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Unauthorized';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/402.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/402.php
deleted file mode 100644
index 1d965d2..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/402.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 402 Payment Required responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 402 Payment Required responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_402 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 402;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Payment Required';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/403.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/403.php
deleted file mode 100644
index 5ca3caf..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/403.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 403 Forbidden responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 403 Forbidden responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_403 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 403;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Forbidden';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/404.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/404.php
deleted file mode 100644
index f08be2d..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/404.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 404 Not Found responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 404 Not Found responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_404 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 404;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Not Found';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/405.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/405.php
deleted file mode 100644
index b8419e1..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/405.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 405 Method Not Allowed responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 405 Method Not Allowed responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_405 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 405;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Method Not Allowed';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/406.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/406.php
deleted file mode 100644
index 09d0622..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/406.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 406 Not Acceptable responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 406 Not Acceptable responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_406 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 406;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Not Acceptable';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/407.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/407.php
deleted file mode 100644
index c21d1ec..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/407.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 407 Proxy Authentication Required responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 407 Proxy Authentication Required responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_407 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 407;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Proxy Authentication Required';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/408.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/408.php
deleted file mode 100644
index 0691863..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/408.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 408 Request Timeout responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 408 Request Timeout responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_408 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 408;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Request Timeout';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/409.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/409.php
deleted file mode 100644
index 5a3e0d1..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/409.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 409 Conflict responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 409 Conflict responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_409 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 409;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Conflict';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/410.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/410.php
deleted file mode 100644
index 8eb3daf..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/410.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 410 Gone responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 410 Gone responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_410 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 410;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Gone';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/411.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/411.php
deleted file mode 100644
index cee6496..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/411.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 411 Length Required responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 411 Length Required responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_411 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 411;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Length Required';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/412.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/412.php
deleted file mode 100644
index e377d79..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/412.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 412 Precondition Failed responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 412 Precondition Failed responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_412 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 412;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Precondition Failed';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/413.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/413.php
deleted file mode 100644
index 3b5fe27..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/413.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 413 Request Entity Too Large responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 413 Request Entity Too Large responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_413 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 413;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Request Entity Too Large';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/414.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/414.php
deleted file mode 100644
index 14d5a59..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/414.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 414 Request-URI Too Large responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 414 Request-URI Too Large responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_414 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 414;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Request-URI Too Large';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/415.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/415.php
deleted file mode 100644
index 32446c8..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/415.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 415 Unsupported Media Type responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 415 Unsupported Media Type responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_415 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 415;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Unsupported Media Type';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/416.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/416.php
deleted file mode 100644
index 8c5f833..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/416.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 416 Requested Range Not Satisfiable responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 416 Requested Range Not Satisfiable responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_416 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 416;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Requested Range Not Satisfiable';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/417.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/417.php
deleted file mode 100644
index 8807c71..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/417.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 417 Expectation Failed responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 417 Expectation Failed responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_417 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 417;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Expectation Failed';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/418.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/418.php
deleted file mode 100644
index d6af806..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/418.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Exception for 418 I'm A Teapot responses
- *
- * @see https://tools.ietf.org/html/rfc2324
- * @package Requests
- */
-
-/**
- * Exception for 418 I'm A Teapot responses
- *
- * @see https://tools.ietf.org/html/rfc2324
- * @package Requests
- */
-class Requests_Exception_HTTP_418 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 418;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = "I'm A Teapot";
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/428.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/428.php
deleted file mode 100644
index 469e954..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/428.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Exception for 428 Precondition Required responses
- *
- * @see https://tools.ietf.org/html/rfc6585
- * @package Requests
- */
-
-/**
- * Exception for 428 Precondition Required responses
- *
- * @see https://tools.ietf.org/html/rfc6585
- * @package Requests
- */
-class Requests_Exception_HTTP_428 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 428;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Precondition Required';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/429.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/429.php
deleted file mode 100644
index 2a21fb3..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/429.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Exception for 429 Too Many Requests responses
- *
- * @see https://tools.ietf.org/html/draft-nottingham-http-new-status-04
- * @package Requests
- */
-
-/**
- * Exception for 429 Too Many Requests responses
- *
- * @see https://tools.ietf.org/html/draft-nottingham-http-new-status-04
- * @package Requests
- */
-class Requests_Exception_HTTP_429 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 429;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Too Many Requests';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/431.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/431.php
deleted file mode 100644
index ba1294e..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/431.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Exception for 431 Request Header Fields Too Large responses
- *
- * @see https://tools.ietf.org/html/rfc6585
- * @package Requests
- */
-
-/**
- * Exception for 431 Request Header Fields Too Large responses
- *
- * @see https://tools.ietf.org/html/rfc6585
- * @package Requests
- */
-class Requests_Exception_HTTP_431 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 431;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Request Header Fields Too Large';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/500.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/500.php
deleted file mode 100644
index 5165e35..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/500.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 500 Internal Server Error responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 500 Internal Server Error responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_500 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 500;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Internal Server Error';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/501.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/501.php
deleted file mode 100644
index 3dd6946..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/501.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 501 Not Implemented responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 501 Not Implemented responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_501 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 501;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Not Implemented';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/502.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/502.php
deleted file mode 100644
index 50c72d4..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/502.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 502 Bad Gateway responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 502 Bad Gateway responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_502 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 502;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Bad Gateway';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/503.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/503.php
deleted file mode 100644
index 9304ecc..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/503.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 503 Service Unavailable responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 503 Service Unavailable responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_503 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 503;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Service Unavailable';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/504.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/504.php
deleted file mode 100644
index f46696b..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/504.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 504 Gateway Timeout responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 504 Gateway Timeout responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_504 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 504;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Gateway Timeout';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/505.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/505.php
deleted file mode 100644
index 1f80294..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/505.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Exception for 505 HTTP Version Not Supported responses
- *
- * @package Requests
- */
-
-/**
- * Exception for 505 HTTP Version Not Supported responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_505 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 505;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'HTTP Version Not Supported';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/511.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/511.php
deleted file mode 100644
index 920d334..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/511.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Exception for 511 Network Authentication Required responses
- *
- * @see https://tools.ietf.org/html/rfc6585
- * @package Requests
- */
-
-/**
- * Exception for 511 Network Authentication Required responses
- *
- * @see https://tools.ietf.org/html/rfc6585
- * @package Requests
- */
-class Requests_Exception_HTTP_511 extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer
- */
- protected $code = 511;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Network Authentication Required';
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/Unknown.php b/srcs/wordpress/wp-includes/Requests/Exception/HTTP/Unknown.php
deleted file mode 100644
index c70f589..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/HTTP/Unknown.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Exception for unknown status responses
- *
- * @package Requests
- */
-
-/**
- * Exception for unknown status responses
- *
- * @package Requests
- */
-class Requests_Exception_HTTP_Unknown extends Requests_Exception_HTTP {
- /**
- * HTTP status code
- *
- * @var integer|bool Code if available, false if an error occurred
- */
- protected $code = 0;
-
- /**
- * Reason phrase
- *
- * @var string
- */
- protected $reason = 'Unknown';
-
- /**
- * Create a new exception
- *
- * If `$data` is an instance of {@see Requests_Response}, uses the status
- * code from it. Otherwise, sets as 0
- *
- * @param string|null $reason Reason phrase
- * @param mixed $data Associated data
- */
- public function __construct($reason = null, $data = null) {
- if ($data instanceof Requests_Response) {
- $this->code = $data->status_code;
- }
-
- parent::__construct($reason, $data);
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/Transport.php b/srcs/wordpress/wp-includes/Requests/Exception/Transport.php
deleted file mode 100644
index e60b488..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/Transport.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-class Requests_Exception_Transport extends Requests_Exception {
-
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Exception/Transport/cURL.php b/srcs/wordpress/wp-includes/Requests/Exception/Transport/cURL.php
deleted file mode 100644
index 67d157b..0000000
--- a/srcs/wordpress/wp-includes/Requests/Exception/Transport/cURL.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-class Requests_Exception_Transport_cURL extends Requests_Exception_Transport {
-
- const EASY = 'cURLEasy';
- const MULTI = 'cURLMulti';
- const SHARE = 'cURLShare';
-
- /**
- * cURL error code
- *
- * @var integer
- */
- protected $code = -1;
-
- /**
- * Which type of cURL error
- *
- * EASY|MULTI|SHARE
- *
- * @var string
- */
- protected $type = 'Unknown';
-
- /**
- * Clear text error message
- *
- * @var string
- */
- protected $reason = 'Unknown';
-
- public function __construct($message, $type, $data = null, $code = 0) {
- if ($type !== null) {
- $this->type = $type;
- }
-
- if ($code !== null) {
- $this->code = $code;
- }
-
- if ($message !== null) {
- $this->reason = $message;
- }
-
- $message = sprintf('%d %s', $this->code, $this->reason);
- parent::__construct($message, $this->type, $data, $this->code);
- }
-
- /**
- * Get the error message
- */
- public function getReason() {
- return $this->reason;
- }
-
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Hooker.php b/srcs/wordpress/wp-includes/Requests/Hooker.php
deleted file mode 100644
index f667ae9..0000000
--- a/srcs/wordpress/wp-includes/Requests/Hooker.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Event dispatcher
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * Event dispatcher
- *
- * @package Requests
- * @subpackage Utilities
- */
-interface Requests_Hooker {
- /**
- * Register a callback for a hook
- *
- * @param string $hook Hook name
- * @param callback $callback Function/method to call on event
- * @param int $priority Priority number. <0 is executed earlier, >0 is executed later
- */
- public function register($hook, $callback, $priority = 0);
-
- /**
- * Dispatch a message
- *
- * @param string $hook Hook name
- * @param array $parameters Parameters to pass to callbacks
- * @return boolean Successfulness
- */
- public function dispatch($hook, $parameters = array());
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Hooks.php b/srcs/wordpress/wp-includes/Requests/Hooks.php
deleted file mode 100644
index 2e61c73..0000000
--- a/srcs/wordpress/wp-includes/Requests/Hooks.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * Handles adding and dispatching events
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * Handles adding and dispatching events
- *
- * @package Requests
- * @subpackage Utilities
- */
-class Requests_Hooks implements Requests_Hooker {
- /**
- * Registered callbacks for each hook
- *
- * @var array
- */
- protected $hooks = array();
-
- /**
- * Constructor
- */
- public function __construct() {
- // pass
- }
-
- /**
- * Register a callback for a hook
- *
- * @param string $hook Hook name
- * @param callback $callback Function/method to call on event
- * @param int $priority Priority number. <0 is executed earlier, >0 is executed later
- */
- public function register($hook, $callback, $priority = 0) {
- if (!isset($this->hooks[$hook])) {
- $this->hooks[$hook] = array();
- }
- if (!isset($this->hooks[$hook][$priority])) {
- $this->hooks[$hook][$priority] = array();
- }
-
- $this->hooks[$hook][$priority][] = $callback;
- }
-
- /**
- * Dispatch a message
- *
- * @param string $hook Hook name
- * @param array $parameters Parameters to pass to callbacks
- * @return boolean Successfulness
- */
- public function dispatch($hook, $parameters = array()) {
- if (empty($this->hooks[$hook])) {
- return false;
- }
-
- foreach ($this->hooks[$hook] as $priority => $hooked) {
- foreach ($hooked as $callback) {
- call_user_func_array($callback, $parameters);
- }
- }
-
- return true;
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/IDNAEncoder.php b/srcs/wordpress/wp-includes/Requests/IDNAEncoder.php
deleted file mode 100644
index ebbe211..0000000
--- a/srcs/wordpress/wp-includes/Requests/IDNAEncoder.php
+++ /dev/null
@@ -1,388 +0,0 @@
-<?php
-
-/**
- * IDNA URL encoder
- *
- * Note: Not fully compliant, as nameprep does nothing yet.
- *
- * @package Requests
- * @subpackage Utilities
- * @see https://tools.ietf.org/html/rfc3490 IDNA specification
- * @see https://tools.ietf.org/html/rfc3492 Punycode/Bootstrap specification
- */
-class Requests_IDNAEncoder {
- /**
- * ACE prefix used for IDNA
- *
- * @see https://tools.ietf.org/html/rfc3490#section-5
- * @var string
- */
- const ACE_PREFIX = 'xn--';
-
- /**#@+
- * Bootstrap constant for Punycode
- *
- * @see https://tools.ietf.org/html/rfc3492#section-5
- * @var int
- */
- const BOOTSTRAP_BASE = 36;
- const BOOTSTRAP_TMIN = 1;
- const BOOTSTRAP_TMAX = 26;
- const BOOTSTRAP_SKEW = 38;
- const BOOTSTRAP_DAMP = 700;
- const BOOTSTRAP_INITIAL_BIAS = 72;
- const BOOTSTRAP_INITIAL_N = 128;
- /**#@-*/
-
- /**
- * Encode a hostname using Punycode
- *
- * @param string $string Hostname
- * @return string Punycode-encoded hostname
- */
- public static function encode($string) {
- $parts = explode('.', $string);
- foreach ($parts as &$part) {
- $part = self::to_ascii($part);
- }
- return implode('.', $parts);
- }
-
- /**
- * Convert a UTF-8 string to an ASCII string using Punycode
- *
- * @throws Requests_Exception Provided string longer than 64 ASCII characters (`idna.provided_too_long`)
- * @throws Requests_Exception Prepared string longer than 64 ASCII characters (`idna.prepared_too_long`)
- * @throws Requests_Exception Provided string already begins with xn-- (`idna.provided_is_prefixed`)
- * @throws Requests_Exception Encoded string longer than 64 ASCII characters (`idna.encoded_too_long`)
- *
- * @param string $string ASCII or UTF-8 string (max length 64 characters)
- * @return string ASCII string
- */
- public static function to_ascii($string) {
- // Step 1: Check if the string is already ASCII
- if (self::is_ascii($string)) {
- // Skip to step 7
- if (strlen($string) < 64) {
- return $string;
- }
-
- throw new Requests_Exception('Provided string is too long', 'idna.provided_too_long', $string);
- }
-
- // Step 2: nameprep
- $string = self::nameprep($string);
-
- // Step 3: UseSTD3ASCIIRules is false, continue
- // Step 4: Check if it's ASCII now
- if (self::is_ascii($string)) {
- // Skip to step 7
- if (strlen($string) < 64) {
- return $string;
- }
-
- throw new Requests_Exception('Prepared string is too long', 'idna.prepared_too_long', $string);
- }
-
- // Step 5: Check ACE prefix
- if (strpos($string, self::ACE_PREFIX) === 0) {
- throw new Requests_Exception('Provided string begins with ACE prefix', 'idna.provided_is_prefixed', $string);
- }
-
- // Step 6: Encode with Punycode
- $string = self::punycode_encode($string);
-
- // Step 7: Prepend ACE prefix
- $string = self::ACE_PREFIX . $string;
-
- // Step 8: Check size
- if (strlen($string) < 64) {
- return $string;
- }
-
- throw new Requests_Exception('Encoded string is too long', 'idna.encoded_too_long', $string);
- }
-
- /**
- * Check whether a given string contains only ASCII characters
- *
- * @internal (Testing found regex was the fastest implementation)
- *
- * @param string $string
- * @return bool Is the string ASCII-only?
- */
- protected static function is_ascii($string) {
- return (preg_match('/(?:[^\x00-\x7F])/', $string) !== 1);
- }
-
- /**
- * Prepare a string for use as an IDNA name
- *
- * @todo Implement this based on RFC 3491 and the newer 5891
- * @param string $string
- * @return string Prepared string
- */
- protected static function nameprep($string) {
- return $string;
- }
-
- /**
- * Convert a UTF-8 string to a UCS-4 codepoint array
- *
- * Based on Requests_IRI::replace_invalid_with_pct_encoding()
- *
- * @throws Requests_Exception Invalid UTF-8 codepoint (`idna.invalidcodepoint`)
- * @param string $input
- * @return array Unicode code points
- */
- protected static function utf8_to_codepoints($input) {
- $codepoints = array();
-
- // Get number of bytes
- $strlen = strlen($input);
-
- for ($position = 0; $position < $strlen; $position++) {
- $value = ord($input[$position]);
-
- // One byte sequence:
- if ((~$value & 0x80) === 0x80) {
- $character = $value;
- $length = 1;
- $remaining = 0;
- }
- // Two byte sequence:
- elseif (($value & 0xE0) === 0xC0) {
- $character = ($value & 0x1F) << 6;
- $length = 2;
- $remaining = 1;
- }
- // Three byte sequence:
- elseif (($value & 0xF0) === 0xE0) {
- $character = ($value & 0x0F) << 12;
- $length = 3;
- $remaining = 2;
- }
- // Four byte sequence:
- elseif (($value & 0xF8) === 0xF0) {
- $character = ($value & 0x07) << 18;
- $length = 4;
- $remaining = 3;
- }
- // Invalid byte:
- else {
- throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $value);
- }
-
- if ($remaining > 0) {
- if ($position + $length > $strlen) {
- throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
- }
- for ($position++; $remaining > 0; $position++) {
- $value = ord($input[$position]);
-
- // If it is invalid, count the sequence as invalid and reprocess the current byte:
- if (($value & 0xC0) !== 0x80) {
- throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
- }
-
- $character |= ($value & 0x3F) << (--$remaining * 6);
- }
- $position--;
- }
-
- if (
- // Non-shortest form sequences are invalid
- $length > 1 && $character <= 0x7F
- || $length > 2 && $character <= 0x7FF
- || $length > 3 && $character <= 0xFFFF
- // Outside of range of ucschar codepoints
- // Noncharacters
- || ($character & 0xFFFE) === 0xFFFE
- || $character >= 0xFDD0 && $character <= 0xFDEF
- || (
- // Everything else not in ucschar
- $character > 0xD7FF && $character < 0xF900
- || $character < 0x20
- || $character > 0x7E && $character < 0xA0
- || $character > 0xEFFFD
- )
- ) {
- throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
- }
-
- $codepoints[] = $character;
- }
-
- return $codepoints;
- }
-
- /**
- * RFC3492-compliant encoder
- *
- * @internal Pseudo-code from Section 6.3 is commented with "#" next to relevant code
- * @throws Requests_Exception On character outside of the domain (never happens with Punycode) (`idna.character_outside_domain`)
- *
- * @param string $input UTF-8 encoded string to encode
- * @return string Punycode-encoded string
- */
- public static function punycode_encode($input) {
- $output = '';
-# let n = initial_n
- $n = self::BOOTSTRAP_INITIAL_N;
-# let delta = 0
- $delta = 0;
-# let bias = initial_bias
- $bias = self::BOOTSTRAP_INITIAL_BIAS;
-# let h = b = the number of basic code points in the input
- $h = $b = 0; // see loop
-# copy them to the output in order
- $codepoints = self::utf8_to_codepoints($input);
- $extended = array();
-
- foreach ($codepoints as $char) {
- if ($char < 128) {
- // Character is valid ASCII
- // TODO: this should also check if it's valid for a URL
- $output .= chr($char);
- $h++;
- }
- // Check if the character is non-ASCII, but below initial n
- // This never occurs for Punycode, so ignore in coverage
- // @codeCoverageIgnoreStart
- elseif ($char < $n) {
- throw new Requests_Exception('Invalid character', 'idna.character_outside_domain', $char);
- }
- // @codeCoverageIgnoreEnd
- else {
- $extended[$char] = true;
- }
- }
- $extended = array_keys($extended);
- sort($extended);
- $b = $h;
-# [copy them] followed by a delimiter if b > 0
- if (strlen($output) > 0) {
- $output .= '-';
- }
-# {if the input contains a non-basic code point < n then fail}
-# while h < length(input) do begin
- while ($h < count($codepoints)) {
-# let m = the minimum code point >= n in the input
- $m = array_shift($extended);
- //printf('next code point to insert is %s' . PHP_EOL, dechex($m));
-# let delta = delta + (m - n) * (h + 1), fail on overflow
- $delta += ($m - $n) * ($h + 1);
-# let n = m
- $n = $m;
-# for each code point c in the input (in order) do begin
- for ($num = 0; $num < count($codepoints); $num++) {
- $c = $codepoints[$num];
-# if c < n then increment delta, fail on overflow
- if ($c < $n) {
- $delta++;
- }
-# if c == n then begin
- elseif ($c === $n) {
-# let q = delta
- $q = $delta;
-# for k = base to infinity in steps of base do begin
- for ($k = self::BOOTSTRAP_BASE; ; $k += self::BOOTSTRAP_BASE) {
-# let t = tmin if k <= bias {+ tmin}, or
-# tmax if k >= bias + tmax, or k - bias otherwise
- if ($k <= ($bias + self::BOOTSTRAP_TMIN)) {
- $t = self::BOOTSTRAP_TMIN;
- }
- elseif ($k >= ($bias + self::BOOTSTRAP_TMAX)) {
- $t = self::BOOTSTRAP_TMAX;
- }
- else {
- $t = $k - $bias;
- }
-# if q < t then break
- if ($q < $t) {
- break;
- }
-# output the code point for digit t + ((q - t) mod (base - t))
- $digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t));
- $output .= self::digit_to_char($digit);
-# let q = (q - t) div (base - t)
- $q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t));
-# end
- }
-# output the code point for digit q
- $output .= self::digit_to_char($q);
-# let bias = adapt(delta, h + 1, test h equals b?)
- $bias = self::adapt($delta, $h + 1, $h === $b);
-# let delta = 0
- $delta = 0;
-# increment h
- $h++;
-# end
- }
-# end
- }
-# increment delta and n
- $delta++;
- $n++;
-# end
- }
-
- return $output;
- }
-
- /**
- * Convert a digit to its respective character
- *
- * @see https://tools.ietf.org/html/rfc3492#section-5
- * @throws Requests_Exception On invalid digit (`idna.invalid_digit`)
- *
- * @param int $digit Digit in the range 0-35
- * @return string Single character corresponding to digit
- */
- protected static function digit_to_char($digit) {
- // @codeCoverageIgnoreStart
- // As far as I know, this never happens, but still good to be sure.
- if ($digit < 0 || $digit > 35) {
- throw new Requests_Exception(sprintf('Invalid digit %d', $digit), 'idna.invalid_digit', $digit);
- }
- // @codeCoverageIgnoreEnd
- $digits = 'abcdefghijklmnopqrstuvwxyz0123456789';
- return substr($digits, $digit, 1);
- }
-
- /**
- * Adapt the bias
- *
- * @see https://tools.ietf.org/html/rfc3492#section-6.1
- * @param int $delta
- * @param int $numpoints
- * @param bool $firsttime
- * @return int New bias
- */
- protected static function adapt($delta, $numpoints, $firsttime) {
-# function adapt(delta,numpoints,firsttime):
-# if firsttime then let delta = delta div damp
- if ($firsttime) {
- $delta = floor($delta / self::BOOTSTRAP_DAMP);
- }
-# else let delta = delta div 2
- else {
- $delta = floor($delta / 2);
- }
-# let delta = delta + (delta div numpoints)
- $delta += floor($delta / $numpoints);
-# let k = 0
- $k = 0;
-# while delta > ((base - tmin) * tmax) div 2 do begin
- $max = floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN) * self::BOOTSTRAP_TMAX) / 2);
- while ($delta > $max) {
-# let delta = delta div (base - tmin)
- $delta = floor($delta / (self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN));
-# let k = k + base
- $k += self::BOOTSTRAP_BASE;
-# end
- }
-# return k + (((base - tmin + 1) * delta) div (delta + skew))
- return $k + floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN + 1) * $delta) / ($delta + self::BOOTSTRAP_SKEW));
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/IPv6.php b/srcs/wordpress/wp-includes/Requests/IPv6.php
deleted file mode 100644
index 204dbd7..0000000
--- a/srcs/wordpress/wp-includes/Requests/IPv6.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-/**
- * Class to validate and to work with IPv6 addresses
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * Class to validate and to work with IPv6 addresses
- *
- * This was originally based on the PEAR class of the same name, but has been
- * entirely rewritten.
- *
- * @package Requests
- * @subpackage Utilities
- */
-class Requests_IPv6 {
- /**
- * Uncompresses an IPv6 address
- *
- * RFC 4291 allows you to compress consecutive zero pieces in an address to
- * '::'. This method expects a valid IPv6 address and expands the '::' to
- * the required number of zero pieces.
- *
- * Example: FF01::101 -> FF01:0:0:0:0:0:0:101
- * ::1 -> 0:0:0:0:0:0:0:1
- *
- * @author Alexander Merz <alexander.merz@web.de>
- * @author elfrink at introweb dot nl
- * @author Josh Peck <jmp at joshpeck dot org>
- * @copyright 2003-2005 The PHP Group
- * @license http://www.opensource.org/licenses/bsd-license.php
- * @param string $ip An IPv6 address
- * @return string The uncompressed IPv6 address
- */
- public static function uncompress($ip) {
- if (substr_count($ip, '::') !== 1) {
- return $ip;
- }
-
- list($ip1, $ip2) = explode('::', $ip);
- $c1 = ($ip1 === '') ? -1 : substr_count($ip1, ':');
- $c2 = ($ip2 === '') ? -1 : substr_count($ip2, ':');
-
- if (strpos($ip2, '.') !== false) {
- $c2++;
- }
- // ::
- if ($c1 === -1 && $c2 === -1) {
- $ip = '0:0:0:0:0:0:0:0';
- }
- // ::xxx
- else if ($c1 === -1) {
- $fill = str_repeat('0:', 7 - $c2);
- $ip = str_replace('::', $fill, $ip);
- }
- // xxx::
- else if ($c2 === -1) {
- $fill = str_repeat(':0', 7 - $c1);
- $ip = str_replace('::', $fill, $ip);
- }
- // xxx::xxx
- else {
- $fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
- $ip = str_replace('::', $fill, $ip);
- }
- return $ip;
- }
-
- /**
- * Compresses an IPv6 address
- *
- * RFC 4291 allows you to compress consecutive zero pieces in an address to
- * '::'. This method expects a valid IPv6 address and compresses consecutive
- * zero pieces to '::'.
- *
- * Example: FF01:0:0:0:0:0:0:101 -> FF01::101
- * 0:0:0:0:0:0:0:1 -> ::1
- *
- * @see uncompress()
- * @param string $ip An IPv6 address
- * @return string The compressed IPv6 address
- */
- public static function compress($ip) {
- // Prepare the IP to be compressed
- $ip = self::uncompress($ip);
- $ip_parts = self::split_v6_v4($ip);
-
- // Replace all leading zeros
- $ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]);
-
- // Find bunches of zeros
- if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE)) {
- $max = 0;
- $pos = null;
- foreach ($matches[0] as $match) {
- if (strlen($match[0]) > $max) {
- $max = strlen($match[0]);
- $pos = $match[1];
- }
- }
-
- $ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max);
- }
-
- if ($ip_parts[1] !== '') {
- return implode(':', $ip_parts);
- }
- else {
- return $ip_parts[0];
- }
- }
-
- /**
- * Splits an IPv6 address into the IPv6 and IPv4 representation parts
- *
- * RFC 4291 allows you to represent the last two parts of an IPv6 address
- * using the standard IPv4 representation
- *
- * Example: 0:0:0:0:0:0:13.1.68.3
- * 0:0:0:0:0:FFFF:129.144.52.38
- *
- * @param string $ip An IPv6 address
- * @return string[] [0] contains the IPv6 represented part, and [1] the IPv4 represented part
- */
- protected static function split_v6_v4($ip) {
- if (strpos($ip, '.') !== false) {
- $pos = strrpos($ip, ':');
- $ipv6_part = substr($ip, 0, $pos);
- $ipv4_part = substr($ip, $pos + 1);
- return array($ipv6_part, $ipv4_part);
- }
- else {
- return array($ip, '');
- }
- }
-
- /**
- * Checks an IPv6 address
- *
- * Checks if the given IP is a valid IPv6 address
- *
- * @param string $ip An IPv6 address
- * @return bool true if $ip is a valid IPv6 address
- */
- public static function check_ipv6($ip) {
- $ip = self::uncompress($ip);
- list($ipv6, $ipv4) = self::split_v6_v4($ip);
- $ipv6 = explode(':', $ipv6);
- $ipv4 = explode('.', $ipv4);
- if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4) {
- foreach ($ipv6 as $ipv6_part) {
- // The section can't be empty
- if ($ipv6_part === '') {
- return false;
- }
-
- // Nor can it be over four characters
- if (strlen($ipv6_part) > 4) {
- return false;
- }
-
- // Remove leading zeros (this is safe because of the above)
- $ipv6_part = ltrim($ipv6_part, '0');
- if ($ipv6_part === '') {
- $ipv6_part = '0';
- }
-
- // Check the value is valid
- $value = hexdec($ipv6_part);
- if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF) {
- return false;
- }
- }
- if (count($ipv4) === 4) {
- foreach ($ipv4 as $ipv4_part) {
- $value = (int) $ipv4_part;
- if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF) {
- return false;
- }
- }
- }
- return true;
- }
- else {
- return false;
- }
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/IRI.php b/srcs/wordpress/wp-includes/Requests/IRI.php
deleted file mode 100644
index 8dc2fa2..0000000
--- a/srcs/wordpress/wp-includes/Requests/IRI.php
+++ /dev/null
@@ -1,1084 +0,0 @@
-<?php
-/**
- * IRI parser/serialiser/normaliser
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * IRI parser/serialiser/normaliser
- *
- * Copyright (c) 2007-2010, Geoffrey Sneddon and Steve Minutillo.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * * Neither the name of the SimplePie Team nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package Requests
- * @subpackage Utilities
- * @author Geoffrey Sneddon
- * @author Steve Minutillo
- * @copyright 2007-2009 Geoffrey Sneddon and Steve Minutillo
- * @license http://www.opensource.org/licenses/bsd-license.php
- * @link http://hg.gsnedders.com/iri/
- *
- * @property string $iri IRI we're working with
- * @property-read string $uri IRI in URI form, {@see to_uri}
- * @property string $scheme Scheme part of the IRI
- * @property string $authority Authority part, formatted for a URI (userinfo + host + port)
- * @property string $iauthority Authority part of the IRI (userinfo + host + port)
- * @property string $userinfo Userinfo part, formatted for a URI (after '://' and before '@')
- * @property string $iuserinfo Userinfo part of the IRI (after '://' and before '@')
- * @property string $host Host part, formatted for a URI
- * @property string $ihost Host part of the IRI
- * @property string $port Port part of the IRI (after ':')
- * @property string $path Path part, formatted for a URI (after first '/')
- * @property string $ipath Path part of the IRI (after first '/')
- * @property string $query Query part, formatted for a URI (after '?')
- * @property string $iquery Query part of the IRI (after '?')
- * @property string $fragment Fragment, formatted for a URI (after '#')
- * @property string $ifragment Fragment part of the IRI (after '#')
- */
-class Requests_IRI {
- /**
- * Scheme
- *
- * @var string
- */
- protected $scheme = null;
-
- /**
- * User Information
- *
- * @var string
- */
- protected $iuserinfo = null;
-
- /**
- * ihost
- *
- * @var string
- */
- protected $ihost = null;
-
- /**
- * Port
- *
- * @var string
- */
- protected $port = null;
-
- /**
- * ipath
- *
- * @var string
- */
- protected $ipath = '';
-
- /**
- * iquery
- *
- * @var string
- */
- protected $iquery = null;
-
- /**
- * ifragment
- *
- * @var string
- */
- protected $ifragment = null;
-
- /**
- * Normalization database
- *
- * Each key is the scheme, each value is an array with each key as the IRI
- * part and value as the default value for that part.
- */
- protected $normalization = array(
- 'acap' => array(
- 'port' => 674
- ),
- 'dict' => array(
- 'port' => 2628
- ),
- 'file' => array(
- 'ihost' => 'localhost'
- ),
- 'http' => array(
- 'port' => 80,
- ),
- 'https' => array(
- 'port' => 443,
- ),
- );
-
- /**
- * Return the entire IRI when you try and read the object as a string
- *
- * @return string
- */
- public function __toString() {
- return $this->get_iri();
- }
-
- /**
- * Overload __set() to provide access via properties
- *
- * @param string $name Property name
- * @param mixed $value Property value
- */
- public function __set($name, $value) {
- if (method_exists($this, 'set_' . $name)) {
- call_user_func(array($this, 'set_' . $name), $value);
- }
- elseif (
- $name === 'iauthority'
- || $name === 'iuserinfo'
- || $name === 'ihost'
- || $name === 'ipath'
- || $name === 'iquery'
- || $name === 'ifragment'
- ) {
- call_user_func(array($this, 'set_' . substr($name, 1)), $value);
- }
- }
-
- /**
- * Overload __get() to provide access via properties
- *
- * @param string $name Property name
- * @return mixed
- */
- public function __get($name) {
- // isset() returns false for null, we don't want to do that
- // Also why we use array_key_exists below instead of isset()
- $props = get_object_vars($this);
-
- if (
- $name === 'iri' ||
- $name === 'uri' ||
- $name === 'iauthority' ||
- $name === 'authority'
- ) {
- $method = 'get_' . $name;
- $return = $this->$method();
- }
- elseif (array_key_exists($name, $props)) {
- $return = $this->$name;
- }
- // host -> ihost
- elseif (($prop = 'i' . $name) && array_key_exists($prop, $props)) {
- $name = $prop;
- $return = $this->$prop;
- }
- // ischeme -> scheme
- elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props)) {
- $name = $prop;
- $return = $this->$prop;
- }
- else {
- trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE);
- $return = null;
- }
-
- if ($return === null && isset($this->normalization[$this->scheme][$name])) {
- return $this->normalization[$this->scheme][$name];
- }
- else {
- return $return;
- }
- }
-
- /**
- * Overload __isset() to provide access via properties
- *
- * @param string $name Property name
- * @return bool
- */
- public function __isset($name) {
- return (method_exists($this, 'get_' . $name) || isset($this->$name));
- }
-
- /**
- * Overload __unset() to provide access via properties
- *
- * @param string $name Property name
- */
- public function __unset($name) {
- if (method_exists($this, 'set_' . $name)) {
- call_user_func(array($this, 'set_' . $name), '');
- }
- }
-
- /**
- * Create a new IRI object, from a specified string
- *
- * @param string|null $iri
- */
- public function __construct($iri = null) {
- $this->set_iri($iri);
- }
-
- /**
- * Create a new IRI object by resolving a relative IRI
- *
- * Returns false if $base is not absolute, otherwise an IRI.
- *
- * @param IRI|string $base (Absolute) Base IRI
- * @param IRI|string $relative Relative IRI
- * @return IRI|false
- */
- public static function absolutize($base, $relative) {
- if (!($relative instanceof Requests_IRI)) {
- $relative = new Requests_IRI($relative);
- }
- if (!$relative->is_valid()) {
- return false;
- }
- elseif ($relative->scheme !== null) {
- return clone $relative;
- }
-
- if (!($base instanceof Requests_IRI)) {
- $base = new Requests_IRI($base);
- }
- if ($base->scheme === null || !$base->is_valid()) {
- return false;
- }
-
- if ($relative->get_iri() !== '') {
- if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null) {
- $target = clone $relative;
- $target->scheme = $base->scheme;
- }
- else {
- $target = new Requests_IRI;
- $target->scheme = $base->scheme;
- $target->iuserinfo = $base->iuserinfo;
- $target->ihost = $base->ihost;
- $target->port = $base->port;
- if ($relative->ipath !== '') {
- if ($relative->ipath[0] === '/') {
- $target->ipath = $relative->ipath;
- }
- elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '') {
- $target->ipath = '/' . $relative->ipath;
- }
- elseif (($last_segment = strrpos($base->ipath, '/')) !== false) {
- $target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath;
- }
- else {
- $target->ipath = $relative->ipath;
- }
- $target->ipath = $target->remove_dot_segments($target->ipath);
- $target->iquery = $relative->iquery;
- }
- else {
- $target->ipath = $base->ipath;
- if ($relative->iquery !== null) {
- $target->iquery = $relative->iquery;
- }
- elseif ($base->iquery !== null) {
- $target->iquery = $base->iquery;
- }
- }
- $target->ifragment = $relative->ifragment;
- }
- }
- else {
- $target = clone $base;
- $target->ifragment = null;
- }
- $target->scheme_normalization();
- return $target;
- }
-
- /**
- * Parse an IRI into scheme/authority/path/query/fragment segments
- *
- * @param string $iri
- * @return array
- */
- protected function parse_iri($iri) {
- $iri = trim($iri, "\x20\x09\x0A\x0C\x0D");
- $has_match = preg_match('/^((?P<scheme>[^:\/?#]+):)?(\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?$/', $iri, $match);
- if (!$has_match) {
- throw new Requests_Exception('Cannot parse supplied IRI', 'iri.cannot_parse', $iri);
- }
-
- if ($match[1] === '') {
- $match['scheme'] = null;
- }
- if (!isset($match[3]) || $match[3] === '') {
- $match['authority'] = null;
- }
- if (!isset($match[5])) {
- $match['path'] = '';
- }
- if (!isset($match[6]) || $match[6] === '') {
- $match['query'] = null;
- }
- if (!isset($match[8]) || $match[8] === '') {
- $match['fragment'] = null;
- }
- return $match;
- }
-
- /**
- * Remove dot segments from a path
- *
- * @param string $input
- * @return string
- */
- protected function remove_dot_segments($input) {
- $output = '';
- while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..') {
- // A: If the input buffer begins with a prefix of "../" or "./",
- // then remove that prefix from the input buffer; otherwise,
- if (strpos($input, '../') === 0) {
- $input = substr($input, 3);
- }
- elseif (strpos($input, './') === 0) {
- $input = substr($input, 2);
- }
- // B: if the input buffer begins with a prefix of "/./" or "/.",
- // where "." is a complete path segment, then replace that prefix
- // with "/" in the input buffer; otherwise,
- elseif (strpos($input, '/./') === 0) {
- $input = substr($input, 2);
- }
- elseif ($input === '/.') {
- $input = '/';
- }
- // C: if the input buffer begins with a prefix of "/../" or "/..",
- // where ".." is a complete path segment, then replace that prefix
- // with "/" in the input buffer and remove the last segment and its
- // preceding "/" (if any) from the output buffer; otherwise,
- elseif (strpos($input, '/../') === 0) {
- $input = substr($input, 3);
- $output = substr_replace($output, '', strrpos($output, '/'));
- }
- elseif ($input === '/..') {
- $input = '/';
- $output = substr_replace($output, '', strrpos($output, '/'));
- }
- // D: if the input buffer consists only of "." or "..", then remove
- // that from the input buffer; otherwise,
- elseif ($input === '.' || $input === '..') {
- $input = '';
- }
- // E: move the first path segment in the input buffer to the end of
- // the output buffer, including the initial "/" character (if any)
- // and any subsequent characters up to, but not including, the next
- // "/" character or the end of the input buffer
- elseif (($pos = strpos($input, '/', 1)) !== false) {
- $output .= substr($input, 0, $pos);
- $input = substr_replace($input, '', 0, $pos);
- }
- else {
- $output .= $input;
- $input = '';
- }
- }
- return $output . $input;
- }
-
- /**
- * Replace invalid character with percent encoding
- *
- * @param string $string Input string
- * @param string $extra_chars Valid characters not in iunreserved or
- * iprivate (this is ASCII-only)
- * @param bool $iprivate Allow iprivate
- * @return string
- */
- protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false) {
- // Normalize as many pct-encoded sections as possible
- $string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array(&$this, 'remove_iunreserved_percent_encoded'), $string);
-
- // Replace invalid percent characters
- $string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
-
- // Add unreserved and % to $extra_chars (the latter is safe because all
- // pct-encoded sections are now valid).
- $extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%';
-
- // Now replace any bytes that aren't allowed with their pct-encoded versions
- $position = 0;
- $strlen = strlen($string);
- while (($position += strspn($string, $extra_chars, $position)) < $strlen) {
- $value = ord($string[$position]);
-
- // Start position
- $start = $position;
-
- // By default we are valid
- $valid = true;
-
- // No one byte sequences are valid due to the while.
- // Two byte sequence:
- if (($value & 0xE0) === 0xC0) {
- $character = ($value & 0x1F) << 6;
- $length = 2;
- $remaining = 1;
- }
- // Three byte sequence:
- elseif (($value & 0xF0) === 0xE0) {
- $character = ($value & 0x0F) << 12;
- $length = 3;
- $remaining = 2;
- }
- // Four byte sequence:
- elseif (($value & 0xF8) === 0xF0) {
- $character = ($value & 0x07) << 18;
- $length = 4;
- $remaining = 3;
- }
- // Invalid byte:
- else {
- $valid = false;
- $length = 1;
- $remaining = 0;
- }
-
- if ($remaining) {
- if ($position + $length <= $strlen) {
- for ($position++; $remaining; $position++) {
- $value = ord($string[$position]);
-
- // Check that the byte is valid, then add it to the character:
- if (($value & 0xC0) === 0x80) {
- $character |= ($value & 0x3F) << (--$remaining * 6);
- }
- // If it is invalid, count the sequence as invalid and reprocess the current byte:
- else {
- $valid = false;
- $position--;
- break;
- }
- }
- }
- else {
- $position = $strlen - 1;
- $valid = false;
- }
- }
-
- // Percent encode anything invalid or not in ucschar
- if (
- // Invalid sequences
- !$valid
- // Non-shortest form sequences are invalid
- || $length > 1 && $character <= 0x7F
- || $length > 2 && $character <= 0x7FF
- || $length > 3 && $character <= 0xFFFF
- // Outside of range of ucschar codepoints
- // Noncharacters
- || ($character & 0xFFFE) === 0xFFFE
- || $character >= 0xFDD0 && $character <= 0xFDEF
- || (
- // Everything else not in ucschar
- $character > 0xD7FF && $character < 0xF900
- || $character < 0xA0
- || $character > 0xEFFFD
- )
- && (
- // Everything not in iprivate, if it applies
- !$iprivate
- || $character < 0xE000
- || $character > 0x10FFFD
- )
- ) {
- // If we were a character, pretend we weren't, but rather an error.
- if ($valid) {
- $position--;
- }
-
- for ($j = $start; $j <= $position; $j++) {
- $string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1);
- $j += 2;
- $position += 2;
- $strlen += 2;
- }
- }
- }
-
- return $string;
- }
-
- /**
- * Callback function for preg_replace_callback.
- *
- * Removes sequences of percent encoded bytes that represent UTF-8
- * encoded characters in iunreserved
- *
- * @param array $match PCRE match
- * @return string Replacement
- */
- protected function remove_iunreserved_percent_encoded($match) {
- // As we just have valid percent encoded sequences we can just explode
- // and ignore the first member of the returned array (an empty string).
- $bytes = explode('%', $match[0]);
-
- // Initialize the new string (this is what will be returned) and that
- // there are no bytes remaining in the current sequence (unsurprising
- // at the first byte!).
- $string = '';
- $remaining = 0;
-
- // Loop over each and every byte, and set $value to its value
- for ($i = 1, $len = count($bytes); $i < $len; $i++) {
- $value = hexdec($bytes[$i]);
-
- // If we're the first byte of sequence:
- if (!$remaining) {
- // Start position
- $start = $i;
-
- // By default we are valid
- $valid = true;
-
- // One byte sequence:
- if ($value <= 0x7F) {
- $character = $value;
- $length = 1;
- }
- // Two byte sequence:
- elseif (($value & 0xE0) === 0xC0) {
- $character = ($value & 0x1F) << 6;
- $length = 2;
- $remaining = 1;
- }
- // Three byte sequence:
- elseif (($value & 0xF0) === 0xE0) {
- $character = ($value & 0x0F) << 12;
- $length = 3;
- $remaining = 2;
- }
- // Four byte sequence:
- elseif (($value & 0xF8) === 0xF0) {
- $character = ($value & 0x07) << 18;
- $length = 4;
- $remaining = 3;
- }
- // Invalid byte:
- else {
- $valid = false;
- $remaining = 0;
- }
- }
- // Continuation byte:
- else {
- // Check that the byte is valid, then add it to the character:
- if (($value & 0xC0) === 0x80) {
- $remaining--;
- $character |= ($value & 0x3F) << ($remaining * 6);
- }
- // If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence:
- else {
- $valid = false;
- $remaining = 0;
- $i--;
- }
- }
-
- // If we've reached the end of the current byte sequence, append it to Unicode::$data
- if (!$remaining) {
- // Percent encode anything invalid or not in iunreserved
- if (
- // Invalid sequences
- !$valid
- // Non-shortest form sequences are invalid
- || $length > 1 && $character <= 0x7F
- || $length > 2 && $character <= 0x7FF
- || $length > 3 && $character <= 0xFFFF
- // Outside of range of iunreserved codepoints
- || $character < 0x2D
- || $character > 0xEFFFD
- // Noncharacters
- || ($character & 0xFFFE) === 0xFFFE
- || $character >= 0xFDD0 && $character <= 0xFDEF
- // Everything else not in iunreserved (this is all BMP)
- || $character === 0x2F
- || $character > 0x39 && $character < 0x41
- || $character > 0x5A && $character < 0x61
- || $character > 0x7A && $character < 0x7E
- || $character > 0x7E && $character < 0xA0
- || $character > 0xD7FF && $character < 0xF900
- ) {
- for ($j = $start; $j <= $i; $j++) {
- $string .= '%' . strtoupper($bytes[$j]);
- }
- }
- else {
- for ($j = $start; $j <= $i; $j++) {
- $string .= chr(hexdec($bytes[$j]));
- }
- }
- }
- }
-
- // If we have any bytes left over they are invalid (i.e., we are
- // mid-way through a multi-byte sequence)
- if ($remaining) {
- for ($j = $start; $j < $len; $j++) {
- $string .= '%' . strtoupper($bytes[$j]);
- }
- }
-
- return $string;
- }
-
- protected function scheme_normalization() {
- if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo']) {
- $this->iuserinfo = null;
- }
- if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost']) {
- $this->ihost = null;
- }
- if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port']) {
- $this->port = null;
- }
- if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath']) {
- $this->ipath = '';
- }
- if (isset($this->ihost) && empty($this->ipath)) {
- $this->ipath = '/';
- }
- if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery']) {
- $this->iquery = null;
- }
- if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment']) {
- $this->ifragment = null;
- }
- }
-
- /**
- * Check if the object represents a valid IRI. This needs to be done on each
- * call as some things change depending on another part of the IRI.
- *
- * @return bool
- */
- public function is_valid() {
- $isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
- if ($this->ipath !== '' &&
- (
- $isauthority && $this->ipath[0] !== '/' ||
- (
- $this->scheme === null &&
- !$isauthority &&
- strpos($this->ipath, ':') !== false &&
- (strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
- )
- )
- ) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Set the entire IRI. Returns true on success, false on failure (if there
- * are any invalid characters).
- *
- * @param string $iri
- * @return bool
- */
- protected function set_iri($iri) {
- static $cache;
- if (!$cache) {
- $cache = array();
- }
-
- if ($iri === null) {
- return true;
- }
- if (isset($cache[$iri])) {
- list($this->scheme,
- $this->iuserinfo,
- $this->ihost,
- $this->port,
- $this->ipath,
- $this->iquery,
- $this->ifragment,
- $return) = $cache[$iri];
- return $return;
- }
-
- $parsed = $this->parse_iri((string) $iri);
-
- $return = $this->set_scheme($parsed['scheme'])
- && $this->set_authority($parsed['authority'])
- && $this->set_path($parsed['path'])
- && $this->set_query($parsed['query'])
- && $this->set_fragment($parsed['fragment']);
-
- $cache[$iri] = array($this->scheme,
- $this->iuserinfo,
- $this->ihost,
- $this->port,
- $this->ipath,
- $this->iquery,
- $this->ifragment,
- $return);
- return $return;
- }
-
- /**
- * Set the scheme. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $scheme
- * @return bool
- */
- protected function set_scheme($scheme) {
- if ($scheme === null) {
- $this->scheme = null;
- }
- elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme)) {
- $this->scheme = null;
- return false;
- }
- else {
- $this->scheme = strtolower($scheme);
- }
- return true;
- }
-
- /**
- * Set the authority. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $authority
- * @return bool
- */
- protected function set_authority($authority) {
- static $cache;
- if (!$cache) {
- $cache = array();
- }
-
- if ($authority === null) {
- $this->iuserinfo = null;
- $this->ihost = null;
- $this->port = null;
- return true;
- }
- if (isset($cache[$authority])) {
- list($this->iuserinfo,
- $this->ihost,
- $this->port,
- $return) = $cache[$authority];
-
- return $return;
- }
-
- $remaining = $authority;
- if (($iuserinfo_end = strrpos($remaining, '@')) !== false) {
- $iuserinfo = substr($remaining, 0, $iuserinfo_end);
- $remaining = substr($remaining, $iuserinfo_end + 1);
- }
- else {
- $iuserinfo = null;
- }
- if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false) {
- $port = substr($remaining, $port_start + 1);
- if ($port === false || $port === '') {
- $port = null;
- }
- $remaining = substr($remaining, 0, $port_start);
- }
- else {
- $port = null;
- }
-
- $return = $this->set_userinfo($iuserinfo) &&
- $this->set_host($remaining) &&
- $this->set_port($port);
-
- $cache[$authority] = array($this->iuserinfo,
- $this->ihost,
- $this->port,
- $return);
-
- return $return;
- }
-
- /**
- * Set the iuserinfo.
- *
- * @param string $iuserinfo
- * @return bool
- */
- protected function set_userinfo($iuserinfo) {
- if ($iuserinfo === null) {
- $this->iuserinfo = null;
- }
- else {
- $this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:');
- $this->scheme_normalization();
- }
-
- return true;
- }
-
- /**
- * Set the ihost. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $ihost
- * @return bool
- */
- protected function set_host($ihost) {
- if ($ihost === null) {
- $this->ihost = null;
- return true;
- }
- if (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']') {
- if (Requests_IPv6::check_ipv6(substr($ihost, 1, -1))) {
- $this->ihost = '[' . Requests_IPv6::compress(substr($ihost, 1, -1)) . ']';
- }
- else {
- $this->ihost = null;
- return false;
- }
- }
- else {
- $ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;=');
-
- // Lowercase, but ignore pct-encoded sections (as they should
- // remain uppercase). This must be done after the previous step
- // as that can add unescaped characters.
- $position = 0;
- $strlen = strlen($ihost);
- while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen) {
- if ($ihost[$position] === '%') {
- $position += 3;
- }
- else {
- $ihost[$position] = strtolower($ihost[$position]);
- $position++;
- }
- }
-
- $this->ihost = $ihost;
- }
-
- $this->scheme_normalization();
-
- return true;
- }
-
- /**
- * Set the port. Returns true on success, false on failure (if there are
- * any invalid characters).
- *
- * @param string $port
- * @return bool
- */
- protected function set_port($port) {
- if ($port === null) {
- $this->port = null;
- return true;
- }
-
- if (strspn($port, '0123456789') === strlen($port)) {
- $this->port = (int) $port;
- $this->scheme_normalization();
- return true;
- }
-
- $this->port = null;
- return false;
- }
-
- /**
- * Set the ipath.
- *
- * @param string $ipath
- * @return bool
- */
- protected function set_path($ipath) {
- static $cache;
- if (!$cache) {
- $cache = array();
- }
-
- $ipath = (string) $ipath;
-
- if (isset($cache[$ipath])) {
- $this->ipath = $cache[$ipath][(int) ($this->scheme !== null)];
- }
- else {
- $valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
- $removed = $this->remove_dot_segments($valid);
-
- $cache[$ipath] = array($valid, $removed);
- $this->ipath = ($this->scheme !== null) ? $removed : $valid;
- }
- $this->scheme_normalization();
- return true;
- }
-
- /**
- * Set the iquery.
- *
- * @param string $iquery
- * @return bool
- */
- protected function set_query($iquery) {
- if ($iquery === null) {
- $this->iquery = null;
- }
- else {
- $this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true);
- $this->scheme_normalization();
- }
- return true;
- }
-
- /**
- * Set the ifragment.
- *
- * @param string $ifragment
- * @return bool
- */
- protected function set_fragment($ifragment) {
- if ($ifragment === null) {
- $this->ifragment = null;
- }
- else {
- $this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?');
- $this->scheme_normalization();
- }
- return true;
- }
-
- /**
- * Convert an IRI to a URI (or parts thereof)
- *
- * @param string|bool IRI to convert (or false from {@see get_iri})
- * @return string|false URI if IRI is valid, false otherwise.
- */
- protected function to_uri($string) {
- if (!is_string($string)) {
- return false;
- }
-
- static $non_ascii;
- if (!$non_ascii) {
- $non_ascii = implode('', range("\x80", "\xFF"));
- }
-
- $position = 0;
- $strlen = strlen($string);
- while (($position += strcspn($string, $non_ascii, $position)) < $strlen) {
- $string = substr_replace($string, sprintf('%%%02X', ord($string[$position])), $position, 1);
- $position += 3;
- $strlen += 2;
- }
-
- return $string;
- }
-
- /**
- * Get the complete IRI
- *
- * @return string
- */
- protected function get_iri() {
- if (!$this->is_valid()) {
- return false;
- }
-
- $iri = '';
- if ($this->scheme !== null) {
- $iri .= $this->scheme . ':';
- }
- if (($iauthority = $this->get_iauthority()) !== null) {
- $iri .= '//' . $iauthority;
- }
- $iri .= $this->ipath;
- if ($this->iquery !== null) {
- $iri .= '?' . $this->iquery;
- }
- if ($this->ifragment !== null) {
- $iri .= '#' . $this->ifragment;
- }
-
- return $iri;
- }
-
- /**
- * Get the complete URI
- *
- * @return string
- */
- protected function get_uri() {
- return $this->to_uri($this->get_iri());
- }
-
- /**
- * Get the complete iauthority
- *
- * @return string
- */
- protected function get_iauthority() {
- if ($this->iuserinfo === null && $this->ihost === null && $this->port === null) {
- return null;
- }
-
- $iauthority = '';
- if ($this->iuserinfo !== null) {
- $iauthority .= $this->iuserinfo . '@';
- }
- if ($this->ihost !== null) {
- $iauthority .= $this->ihost;
- }
- if ($this->port !== null) {
- $iauthority .= ':' . $this->port;
- }
- return $iauthority;
- }
-
- /**
- * Get the complete authority
- *
- * @return string
- */
- protected function get_authority() {
- $iauthority = $this->get_iauthority();
- if (is_string($iauthority)) {
- return $this->to_uri($iauthority);
- }
- else {
- return $iauthority;
- }
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Proxy.php b/srcs/wordpress/wp-includes/Requests/Proxy.php
deleted file mode 100644
index ac7c1d6..0000000
--- a/srcs/wordpress/wp-includes/Requests/Proxy.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Proxy connection interface
- *
- * @package Requests
- * @subpackage Proxy
- * @since 1.6
- */
-
-/**
- * Proxy connection interface
- *
- * Implement this interface to handle proxy settings and authentication
- *
- * Parameters should be passed via the constructor where possible, as this
- * makes it much easier for users to use your provider.
- *
- * @see Requests_Hooks
- * @package Requests
- * @subpackage Proxy
- * @since 1.6
- */
-interface Requests_Proxy {
- /**
- * Register hooks as needed
- *
- * This method is called in {@see Requests::request} when the user has set
- * an instance as the 'auth' option. Use this callback to register all the
- * hooks you'll need.
- *
- * @see Requests_Hooks::register
- * @param Requests_Hooks $hooks Hook system
- */
- public function register(Requests_Hooks &$hooks);
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Proxy/HTTP.php b/srcs/wordpress/wp-includes/Requests/Proxy/HTTP.php
deleted file mode 100644
index 6b4aba8..0000000
--- a/srcs/wordpress/wp-includes/Requests/Proxy/HTTP.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-/**
- * HTTP Proxy connection interface
- *
- * @package Requests
- * @subpackage Proxy
- * @since 1.6
- */
-
-/**
- * HTTP Proxy connection interface
- *
- * Provides a handler for connection via an HTTP proxy
- *
- * @package Requests
- * @subpackage Proxy
- * @since 1.6
- */
-class Requests_Proxy_HTTP implements Requests_Proxy {
- /**
- * Proxy host and port
- *
- * Notation: "host:port" (eg 127.0.0.1:8080 or someproxy.com:3128)
- *
- * @var string
- */
- public $proxy;
-
- /**
- * Username
- *
- * @var string
- */
- public $user;
-
- /**
- * Password
- *
- * @var string
- */
- public $pass;
-
- /**
- * Do we need to authenticate? (ie username & password have been provided)
- *
- * @var boolean
- */
- public $use_authentication;
-
- /**
- * Constructor
- *
- * @since 1.6
- * @throws Requests_Exception On incorrect number of arguments (`authbasicbadargs`)
- * @param array|null $args Array of user and password. Must have exactly two elements
- */
- public function __construct($args = null) {
- if (is_string($args)) {
- $this->proxy = $args;
- }
- elseif (is_array($args)) {
- if (count($args) == 1) {
- list($this->proxy) = $args;
- }
- elseif (count($args) == 3) {
- list($this->proxy, $this->user, $this->pass) = $args;
- $this->use_authentication = true;
- }
- else {
- throw new Requests_Exception('Invalid number of arguments', 'proxyhttpbadargs');
- }
- }
- }
-
- /**
- * Register the necessary callbacks
- *
- * @since 1.6
- * @see curl_before_send
- * @see fsockopen_remote_socket
- * @see fsockopen_remote_host_path
- * @see fsockopen_header
- * @param Requests_Hooks $hooks Hook system
- */
- public function register(Requests_Hooks &$hooks) {
- $hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
-
- $hooks->register('fsockopen.remote_socket', array(&$this, 'fsockopen_remote_socket'));
- $hooks->register('fsockopen.remote_host_path', array(&$this, 'fsockopen_remote_host_path'));
- if ($this->use_authentication) {
- $hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
- }
- }
-
- /**
- * Set cURL parameters before the data is sent
- *
- * @since 1.6
- * @param resource $handle cURL resource
- */
- public function curl_before_send(&$handle) {
- curl_setopt($handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
- curl_setopt($handle, CURLOPT_PROXY, $this->proxy);
-
- if ($this->use_authentication) {
- curl_setopt($handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
- curl_setopt($handle, CURLOPT_PROXYUSERPWD, $this->get_auth_string());
- }
- }
-
- /**
- * Alter remote socket information before opening socket connection
- *
- * @since 1.6
- * @param string $remote_socket Socket connection string
- */
- public function fsockopen_remote_socket(&$remote_socket) {
- $remote_socket = $this->proxy;
- }
-
- /**
- * Alter remote path before getting stream data
- *
- * @since 1.6
- * @param string $path Path to send in HTTP request string ("GET ...")
- * @param string $url Full URL we're requesting
- */
- public function fsockopen_remote_host_path(&$path, $url) {
- $path = $url;
- }
-
- /**
- * Add extra headers to the request before sending
- *
- * @since 1.6
- * @param string $out HTTP header string
- */
- public function fsockopen_header(&$out) {
- $out .= sprintf("Proxy-Authorization: Basic %s\r\n", base64_encode($this->get_auth_string()));
- }
-
- /**
- * Get the authentication string (user:pass)
- *
- * @since 1.6
- * @return string
- */
- public function get_auth_string() {
- return $this->user . ':' . $this->pass;
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Response.php b/srcs/wordpress/wp-includes/Requests/Response.php
deleted file mode 100644
index 3152fb6..0000000
--- a/srcs/wordpress/wp-includes/Requests/Response.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/**
- * HTTP response class
- *
- * Contains a response from Requests::request()
- * @package Requests
- */
-
-/**
- * HTTP response class
- *
- * Contains a response from Requests::request()
- * @package Requests
- */
-class Requests_Response {
- /**
- * Constructor
- */
- public function __construct() {
- $this->headers = new Requests_Response_Headers();
- $this->cookies = new Requests_Cookie_Jar();
- }
-
- /**
- * Response body
- *
- * @var string
- */
- public $body = '';
-
- /**
- * Raw HTTP data from the transport
- *
- * @var string
- */
- public $raw = '';
-
- /**
- * Headers, as an associative array
- *
- * @var Requests_Response_Headers Array-like object representing headers
- */
- public $headers = array();
-
- /**
- * Status code, false if non-blocking
- *
- * @var integer|boolean
- */
- public $status_code = false;
-
- /**
- * Protocol version, false if non-blocking
- * @var float|boolean
- */
- public $protocol_version = false;
-
- /**
- * Whether the request succeeded or not
- *
- * @var boolean
- */
- public $success = false;
-
- /**
- * Number of redirects the request used
- *
- * @var integer
- */
- public $redirects = 0;
-
- /**
- * URL requested
- *
- * @var string
- */
- public $url = '';
-
- /**
- * Previous requests (from redirects)
- *
- * @var array Array of Requests_Response objects
- */
- public $history = array();
-
- /**
- * Cookies from the request
- *
- * @var Requests_Cookie_Jar Array-like object representing a cookie jar
- */
- public $cookies = array();
-
- /**
- * Is the response a redirect?
- *
- * @return boolean True if redirect (3xx status), false if not.
- */
- public function is_redirect() {
- $code = $this->status_code;
- return in_array($code, array(300, 301, 302, 303, 307)) || $code > 307 && $code < 400;
- }
-
- /**
- * Throws an exception if the request was not successful
- *
- * @throws Requests_Exception If `$allow_redirects` is false, and code is 3xx (`response.no_redirects`)
- * @throws Requests_Exception_HTTP On non-successful status code. Exception class corresponds to code (e.g. {@see Requests_Exception_HTTP_404})
- * @param boolean $allow_redirects Set to false to throw on a 3xx as well
- */
- public function throw_for_status($allow_redirects = true) {
- if ($this->is_redirect()) {
- if (!$allow_redirects) {
- throw new Requests_Exception('Redirection not allowed', 'response.no_redirects', $this);
- }
- }
- elseif (!$this->success) {
- $exception = Requests_Exception_HTTP::get_class($this->status_code);
- throw new $exception(null, $this);
- }
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Response/Headers.php b/srcs/wordpress/wp-includes/Requests/Response/Headers.php
deleted file mode 100644
index cc6a208..0000000
--- a/srcs/wordpress/wp-includes/Requests/Response/Headers.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/**
- * Case-insensitive dictionary, suitable for HTTP headers
- *
- * @package Requests
- */
-
-/**
- * Case-insensitive dictionary, suitable for HTTP headers
- *
- * @package Requests
- */
-class Requests_Response_Headers extends Requests_Utility_CaseInsensitiveDictionary {
- /**
- * Get the given header
- *
- * Unlike {@see self::getValues()}, this returns a string. If there are
- * multiple values, it concatenates them with a comma as per RFC2616.
- *
- * Avoid using this where commas may be used unquoted in values, such as
- * Set-Cookie headers.
- *
- * @param string $key
- * @return string Header value
- */
- public function offsetGet($key) {
- $key = strtolower($key);
- if (!isset($this->data[$key])) {
- return null;
- }
-
- return $this->flatten($this->data[$key]);
- }
-
- /**
- * Set the given item
- *
- * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
- *
- * @param string $key Item name
- * @param string $value Item value
- */
- public function offsetSet($key, $value) {
- if ($key === null) {
- throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
- }
-
- $key = strtolower($key);
-
- if (!isset($this->data[$key])) {
- $this->data[$key] = array();
- }
-
- $this->data[$key][] = $value;
- }
-
- /**
- * Get all values for a given header
- *
- * @param string $key
- * @return array Header values
- */
- public function getValues($key) {
- $key = strtolower($key);
- if (!isset($this->data[$key])) {
- return null;
- }
-
- return $this->data[$key];
- }
-
- /**
- * Flattens a value into a string
- *
- * Converts an array into a string by imploding values with a comma, as per
- * RFC2616's rules for folding headers.
- *
- * @param string|array $value Value to flatten
- * @return string Flattened value
- */
- public function flatten($value) {
- if (is_array($value)) {
- $value = implode(',', $value);
- }
-
- return $value;
- }
-
- /**
- * Get an iterator for the data
- *
- * Converts the internal
- * @return ArrayIterator
- */
- public function getIterator() {
- return new Requests_Utility_FilteredIterator($this->data, array($this, 'flatten'));
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/SSL.php b/srcs/wordpress/wp-includes/Requests/SSL.php
deleted file mode 100644
index 2b03768..0000000
--- a/srcs/wordpress/wp-includes/Requests/SSL.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/**
- * SSL utilities for Requests
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * SSL utilities for Requests
- *
- * Collection of utilities for working with and verifying SSL certificates.
- *
- * @package Requests
- * @subpackage Utilities
- */
-class Requests_SSL {
- /**
- * Verify the certificate against common name and subject alternative names
- *
- * Unfortunately, PHP doesn't check the certificate against the alternative
- * names, leading things like 'https://www.github.com/' to be invalid.
- * Instead
- *
- * @see https://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1
- *
- * @throws Requests_Exception On not obtaining a match for the host (`fsockopen.ssl.no_match`)
- * @param string $host Host name to verify against
- * @param array $cert Certificate data from openssl_x509_parse()
- * @return bool
- */
- public static function verify_certificate($host, $cert) {
- // Calculate the valid wildcard match if the host is not an IP address
- $parts = explode('.', $host);
- if (ip2long($host) === false) {
- $parts[0] = '*';
- }
- $wildcard = implode('.', $parts);
-
- $has_dns_alt = false;
-
- // Check the subjectAltName
- if (!empty($cert['extensions']) && !empty($cert['extensions']['subjectAltName'])) {
- $altnames = explode(',', $cert['extensions']['subjectAltName']);
- foreach ($altnames as $altname) {
- $altname = trim($altname);
- if (strpos($altname, 'DNS:') !== 0) {
- continue;
- }
-
- $has_dns_alt = true;
-
- // Strip the 'DNS:' prefix and trim whitespace
- $altname = trim(substr($altname, 4));
-
- // Check for a match
- if (self::match_domain($host, $altname) === true) {
- return true;
- }
- }
- }
-
- // Fall back to checking the common name if we didn't get any dNSName
- // alt names, as per RFC2818
- if (!$has_dns_alt && !empty($cert['subject']['CN'])) {
- // Check for a match
- if (self::match_domain($host, $cert['subject']['CN']) === true) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Verify that a reference name is valid
- *
- * Verifies a dNSName for HTTPS usage, (almost) as per Firefox's rules:
- * - Wildcards can only occur in a name with more than 3 components
- * - Wildcards can only occur as the last character in the first
- * component
- * - Wildcards may be preceded by additional characters
- *
- * We modify these rules to be a bit stricter and only allow the wildcard
- * character to be the full first component; that is, with the exclusion of
- * the third rule.
- *
- * @param string $reference Reference dNSName
- * @return boolean Is the name valid?
- */
- public static function verify_reference_name($reference) {
- $parts = explode('.', $reference);
-
- // Check the first part of the name
- $first = array_shift($parts);
-
- if (strpos($first, '*') !== false) {
- // Check that the wildcard is the full part
- if ($first !== '*') {
- return false;
- }
-
- // Check that we have at least 3 components (including first)
- if (count($parts) < 2) {
- return false;
- }
- }
-
- // Check the remaining parts
- foreach ($parts as $part) {
- if (strpos($part, '*') !== false) {
- return false;
- }
- }
-
- // Nothing found, verified!
- return true;
- }
-
- /**
- * Match a hostname against a dNSName reference
- *
- * @param string $host Requested host
- * @param string $reference dNSName to match against
- * @return boolean Does the domain match?
- */
- public static function match_domain($host, $reference) {
- // Check if the reference is blacklisted first
- if (self::verify_reference_name($reference) !== true) {
- return false;
- }
-
- // Check for a direct match
- if ($host === $reference) {
- return true;
- }
-
- // Calculate the valid wildcard match if the host is not an IP address
- // Also validates that the host has 3 parts or more, as per Firefox's
- // ruleset.
- if (ip2long($host) === false) {
- $parts = explode('.', $host);
- $parts[0] = '*';
- $wildcard = implode('.', $parts);
- if ($wildcard === $reference) {
- return true;
- }
- }
-
- return false;
- }
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Session.php b/srcs/wordpress/wp-includes/Requests/Session.php
deleted file mode 100644
index af14bbe..0000000
--- a/srcs/wordpress/wp-includes/Requests/Session.php
+++ /dev/null
@@ -1,266 +0,0 @@
-<?php
-/**
- * Session handler for persistent requests and default parameters
- *
- * @package Requests
- * @subpackage Session Handler
- */
-
-/**
- * Session handler for persistent requests and default parameters
- *
- * Allows various options to be set as default values, and merges both the
- * options and URL properties together. A base URL can be set for all requests,
- * with all subrequests resolved from this. Base options can be set (including
- * a shared cookie jar), then overridden for individual requests.
- *
- * @package Requests
- * @subpackage Session Handler
- */
-class Requests_Session {
- /**
- * Base URL for requests
- *
- * URLs will be made absolute using this as the base
- * @var string|null
- */
- public $url = null;
-
- /**
- * Base headers for requests
- * @var array
- */
- public $headers = array();
-
- /**
- * Base data for requests
- *
- * If both the base data and the per-request data are arrays, the data will
- * be merged before sending the request.
- *
- * @var array
- */
- public $data = array();
-
- /**
- * Base options for requests
- *
- * The base options are merged with the per-request data for each request.
- * The only default option is a shared cookie jar between requests.
- *
- * Values here can also be set directly via properties on the Session
- * object, e.g. `$session->useragent = 'X';`
- *
- * @var array
- */
- public $options = array();
-
- /**
- * Create a new session
- *
- * @param string|null $url Base URL for requests
- * @param array $headers Default headers for requests
- * @param array $data Default data for requests
- * @param array $options Default options for requests
- */
- public function __construct($url = null, $headers = array(), $data = array(), $options = array()) {
- $this->url = $url;
- $this->headers = $headers;
- $this->data = $data;
- $this->options = $options;
-
- if (empty($this->options['cookies'])) {
- $this->options['cookies'] = new Requests_Cookie_Jar();
- }
- }
-
- /**
- * Get a property's value
- *
- * @param string $key Property key
- * @return mixed|null Property value, null if none found
- */
- public function __get($key) {
- if (isset($this->options[$key])) {
- return $this->options[$key];
- }
-
- return null;
- }
-
- /**
- * Set a property's value
- *
- * @param string $key Property key
- * @param mixed $value Property value
- */
- public function __set($key, $value) {
- $this->options[$key] = $value;
- }
-
- /**
- * Remove a property's value
- *
- * @param string $key Property key
- */
- public function __isset($key) {
- return isset($this->options[$key]);
- }
-
- /**
- * Remove a property's value
- *
- * @param string $key Property key
- */
- public function __unset($key) {
- if (isset($this->options[$key])) {
- unset($this->options[$key]);
- }
- }
-
- /**#@+
- * @see request()
- * @param string $url
- * @param array $headers
- * @param array $options
- * @return Requests_Response
- */
- /**
- * Send a GET request
- */
- public function get($url, $headers = array(), $options = array()) {
- return $this->request($url, $headers, null, Requests::GET, $options);
- }
-
- /**
- * Send a HEAD request
- */
- public function head($url, $headers = array(), $options = array()) {
- return $this->request($url, $headers, null, Requests::HEAD, $options);
- }
-
- /**
- * Send a DELETE request
- */
- public function delete($url, $headers = array(), $options = array()) {
- return $this->request($url, $headers, null, Requests::DELETE, $options);
- }
- /**#@-*/
-
- /**#@+
- * @see request()
- * @param string $url
- * @param array $headers
- * @param array $data
- * @param array $options
- * @return Requests_Response
- */
- /**
- * Send a POST request
- */
- public function post($url, $headers = array(), $data = array(), $options = array()) {
- return $this->request($url, $headers, $data, Requests::POST, $options);
- }
-
- /**
- * Send a PUT request
- */
- public function put($url, $headers = array(), $data = array(), $options = array()) {
- return $this->request($url, $headers, $data, Requests::PUT, $options);
- }
-
- /**
- * Send a PATCH request
- *
- * Note: Unlike {@see post} and {@see put}, `$headers` is required, as the
- * specification recommends that should send an ETag
- *
- * @link https://tools.ietf.org/html/rfc5789
- */
- public function patch($url, $headers, $data = array(), $options = array()) {
- return $this->request($url, $headers, $data, Requests::PATCH, $options);
- }
- /**#@-*/
-
- /**
- * Main interface for HTTP requests
- *
- * This method initiates a request and sends it via a transport before
- * parsing.
- *
- * @see Requests::request()
- *
- * @throws Requests_Exception On invalid URLs (`nonhttp`)
- *
- * @param string $url URL to request
- * @param array $headers Extra headers to send with the request
- * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests
- * @param string $type HTTP request type (use Requests constants)
- * @param array $options Options for the request (see {@see Requests::request})
- * @return Requests_Response
- */
- public function request($url, $headers = array(), $data = array(), $type = Requests::GET, $options = array()) {
- $request = $this->merge_request(compact('url', 'headers', 'data', 'options'));
-
- return Requests::request($request['url'], $request['headers'], $request['data'], $type, $request['options']);
- }
-
- /**
- * Send multiple HTTP requests simultaneously
- *
- * @see Requests::request_multiple()
- *
- * @param array $requests Requests data (see {@see Requests::request_multiple})
- * @param array $options Global and default options (see {@see Requests::request})
- * @return array Responses (either Requests_Response or a Requests_Exception object)
- */
- public function request_multiple($requests, $options = array()) {
- foreach ($requests as $key => $request) {
- $requests[$key] = $this->merge_request($request, false);
- }
-
- $options = array_merge($this->options, $options);
-
- // Disallow forcing the type, as that's a per request setting
- unset($options['type']);
-
- return Requests::request_multiple($requests, $options);
- }
-
- /**
- * Merge a request's data with the default data
- *
- * @param array $request Request data (same form as {@see request_multiple})
- * @param boolean $merge_options Should we merge options as well?
- * @return array Request data
- */
- protected function merge_request($request, $merge_options = true) {
- if ($this->url !== null) {
- $request['url'] = Requests_IRI::absolutize($this->url, $request['url']);
- $request['url'] = $request['url']->uri;
- }
-
- if (empty($request['headers'])) {
- $request['headers'] = array();
- }
- $request['headers'] = array_merge($this->headers, $request['headers']);
-
- if (empty($request['data'])) {
- if (is_array($this->data)) {
- $request['data'] = $this->data;
- }
- }
- elseif (is_array($request['data']) && is_array($this->data)) {
- $request['data'] = array_merge($this->data, $request['data']);
- }
-
- if ($merge_options !== false) {
- $request['options'] = array_merge($this->options, $request['options']);
-
- // Disallow forcing the type, as that's a per request setting
- unset($request['options']['type']);
- }
-
- return $request;
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Transport.php b/srcs/wordpress/wp-includes/Requests/Transport.php
deleted file mode 100644
index 7e4a262..0000000
--- a/srcs/wordpress/wp-includes/Requests/Transport.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Base HTTP transport
- *
- * @package Requests
- * @subpackage Transport
- */
-
-/**
- * Base HTTP transport
- *
- * @package Requests
- * @subpackage Transport
- */
-interface Requests_Transport {
- /**
- * Perform a request
- *
- * @param string $url URL to request
- * @param array $headers Associative array of request headers
- * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
- * @param array $options Request options, see {@see Requests::response()} for documentation
- * @return string Raw HTTP result
- */
- public function request($url, $headers = array(), $data = array(), $options = array());
-
- /**
- * Send multiple requests simultaneously
- *
- * @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see Requests_Transport::request}
- * @param array $options Global options, see {@see Requests::response()} for documentation
- * @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well)
- */
- public function request_multiple($requests, $options);
-
- /**
- * Self-test whether the transport can be used
- * @return bool
- */
- public static function test();
-} \ No newline at end of file
diff --git a/srcs/wordpress/wp-includes/Requests/Transport/cURL.php b/srcs/wordpress/wp-includes/Requests/Transport/cURL.php
deleted file mode 100644
index 4429edb..0000000
--- a/srcs/wordpress/wp-includes/Requests/Transport/cURL.php
+++ /dev/null
@@ -1,542 +0,0 @@
-<?php
-/**
- * cURL HTTP transport
- *
- * @package Requests
- * @subpackage Transport
- */
-
-/**
- * cURL HTTP transport
- *
- * @package Requests
- * @subpackage Transport
- */
-class Requests_Transport_cURL implements Requests_Transport {
- const CURL_7_10_5 = 0x070A05;
- const CURL_7_16_2 = 0x071002;
-
- /**
- * Raw HTTP data
- *
- * @var string
- */
- public $headers = '';
-
- /**
- * Raw body data
- *
- * @var string
- */
- public $response_data = '';
-
- /**
- * Information on the current request
- *
- * @var array cURL information array, see {@see https://secure.php.net/curl_getinfo}
- */
- public $info;
-
- /**
- * Version string
- *
- * @var long
- */
- public $version;
-
- /**
- * cURL handle
- *
- * @var resource
- */
- protected $handle;
-
- /**
- * Hook dispatcher instance
- *
- * @var Requests_Hooks
- */
- protected $hooks;
-
- /**
- * Have we finished the headers yet?
- *
- * @var boolean
- */
- protected $done_headers = false;
-
- /**
- * If streaming to a file, keep the file pointer
- *
- * @var resource
- */
- protected $stream_handle;
-
- /**
- * How many bytes are in the response body?
- *
- * @var int
- */
- protected $response_bytes;
-
- /**
- * What's the maximum number of bytes we should keep?
- *
- * @var int|bool Byte count, or false if no limit.
- */
- protected $response_byte_limit;
-
- /**
- * Constructor
- */
- public function __construct() {
- $curl = curl_version();
- $this->version = $curl['version_number'];
- $this->handle = curl_init();
-
- curl_setopt($this->handle, CURLOPT_HEADER, false);
- curl_setopt($this->handle, CURLOPT_RETURNTRANSFER, 1);
- if ($this->version >= self::CURL_7_10_5) {
- curl_setopt($this->handle, CURLOPT_ENCODING, '');
- }
- if (defined('CURLOPT_PROTOCOLS')) {
- curl_setopt($this->handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
- }
- if (defined('CURLOPT_REDIR_PROTOCOLS')) {
- curl_setopt($this->handle, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
- }
- }
-
- /**
- * Destructor
- */
- public function __destruct() {
- if (is_resource($this->handle)) {
- curl_close($this->handle);
- }
- }
-
- /**
- * Perform a request
- *
- * @throws Requests_Exception On a cURL error (`curlerror`)
- *
- * @param string $url URL to request
- * @param array $headers Associative array of request headers
- * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
- * @param array $options Request options, see {@see Requests::response()} for documentation
- * @return string Raw HTTP result
- */
- public function request($url, $headers = array(), $data = array(), $options = array()) {
- $this->hooks = $options['hooks'];
-
- $this->setup_handle($url, $headers, $data, $options);
-
- $options['hooks']->dispatch('curl.before_send', array(&$this->handle));
-
- if ($options['filename'] !== false) {
- $this->stream_handle = fopen($options['filename'], 'wb');
- }
-
- $this->response_data = '';
- $this->response_bytes = 0;
- $this->response_byte_limit = false;
- if ($options['max_bytes'] !== false) {
- $this->response_byte_limit = $options['max_bytes'];
- }
-
- if (isset($options['verify'])) {
- if ($options['verify'] === false) {
- curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($this->handle, CURLOPT_SSL_VERIFYPEER, 0);
- }
- elseif (is_string($options['verify'])) {
- curl_setopt($this->handle, CURLOPT_CAINFO, $options['verify']);
- }
- }
-
- if (isset($options['verifyname']) && $options['verifyname'] === false) {
- curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0);
- }
-
- curl_exec($this->handle);
- $response = $this->response_data;
-
- $options['hooks']->dispatch('curl.after_send', array());
-
- if (curl_errno($this->handle) === 23 || curl_errno($this->handle) === 61) {
- // Reset encoding and try again
- curl_setopt($this->handle, CURLOPT_ENCODING, 'none');
-
- $this->response_data = '';
- $this->response_bytes = 0;
- curl_exec($this->handle);
- $response = $this->response_data;
- }
-
- $this->process_response($response, $options);
-
- // Need to remove the $this reference from the curl handle.
- // Otherwise Requests_Transport_cURL wont be garbage collected and the curl_close() will never be called.
- curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, null);
- curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, null);
-
- return $this->headers;
- }
-
- /**
- * Send multiple requests simultaneously
- *
- * @param array $requests Request data
- * @param array $options Global options
- * @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well)
- */
- public function request_multiple($requests, $options) {
- // If you're not requesting, we can't get any responses ¯\_(ツ)_/¯
- if (empty($requests)) {
- return array();
- }
-
- $multihandle = curl_multi_init();
- $subrequests = array();
- $subhandles = array();
-
- $class = get_class($this);
- foreach ($requests as $id => $request) {
- $subrequests[$id] = new $class();
- $subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']);
- $request['options']['hooks']->dispatch('curl.before_multi_add', array(&$subhandles[$id]));
- curl_multi_add_handle($multihandle, $subhandles[$id]);
- }
-
- $completed = 0;
- $responses = array();
-
- $request['options']['hooks']->dispatch('curl.before_multi_exec', array(&$multihandle));
-
- do {
- $active = false;
-
- do {
- $status = curl_multi_exec($multihandle, $active);
- }
- while ($status === CURLM_CALL_MULTI_PERFORM);
-
- $to_process = array();
-
- // Read the information as needed
- while ($done = curl_multi_info_read($multihandle)) {
- $key = array_search($done['handle'], $subhandles, true);
- if (!isset($to_process[$key])) {
- $to_process[$key] = $done;
- }
- }
-
- // Parse the finished requests before we start getting the new ones
- foreach ($to_process as $key => $done) {
- $options = $requests[$key]['options'];
- if (CURLE_OK !== $done['result']) {
- //get error string for handle.
- $reason = curl_error($done['handle']);
- $exception = new Requests_Exception_Transport_cURL(
- $reason,
- Requests_Exception_Transport_cURL::EASY,
- $done['handle'],
- $done['result']
- );
- $responses[$key] = $exception;
- $options['hooks']->dispatch('transport.internal.parse_error', array(&$responses[$key], $requests[$key]));
- }
- else {
- $responses[$key] = $subrequests[$key]->process_response($subrequests[$key]->response_data, $options);
-
- $options['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$key], $requests[$key]));
- }
-
- curl_multi_remove_handle($multihandle, $done['handle']);
- curl_close($done['handle']);
-
- if (!is_string($responses[$key])) {
- $options['hooks']->dispatch('multiple.request.complete', array(&$responses[$key], $key));
- }
- $completed++;
- }
- }
- while ($active || $completed < count($subrequests));
-
- $request['options']['hooks']->dispatch('curl.after_multi_exec', array(&$multihandle));
-
- curl_multi_close($multihandle);
-
- return $responses;
- }
-
- /**
- * Get the cURL handle for use in a multi-request
- *
- * @param string $url URL to request
- * @param array $headers Associative array of request headers
- * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
- * @param array $options Request options, see {@see Requests::response()} for documentation
- * @return resource Subrequest's cURL handle
- */
- public function &get_subrequest_handle($url, $headers, $data, $options) {
- $this->setup_handle($url, $headers, $data, $options);
-
- if ($options['filename'] !== false) {
- $this->stream_handle = fopen($options['filename'], 'wb');
- }
-
- $this->response_data = '';
- $this->response_bytes = 0;
- $this->response_byte_limit = false;
- if ($options['max_bytes'] !== false) {
- $this->response_byte_limit = $options['max_bytes'];
- }
- $this->hooks = $options['hooks'];
-
- return $this->handle;
- }
-
- /**
- * Setup the cURL handle for the given data
- *
- * @param string $url URL to request
- * @param array $headers Associative array of request headers
- * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
- * @param array $options Request options, see {@see Requests::response()} for documentation
- */
- protected function setup_handle($url, $headers, $data, $options) {
- $options['hooks']->dispatch('curl.before_request', array(&$this->handle));
-
- // Force closing the connection for old versions of cURL (<7.22).
- if ( ! isset( $headers['Connection'] ) ) {
- $headers['Connection'] = 'close';
- }
-
- $headers = Requests::flatten($headers);
-
- if (!empty($data)) {
- $data_format = $options['data_format'];
-
- if ($data_format === 'query') {
- $url = self::format_get($url, $data);
- $data = '';
- }
- elseif (!is_string($data)) {
- $data = http_build_query($data, null, '&');
- }
- }
-
- switch ($options['type']) {
- case Requests::POST:
- curl_setopt($this->handle, CURLOPT_POST, true);
- curl_setopt($this->handle, CURLOPT_POSTFIELDS, $data);
- break;
- case Requests::HEAD:
- curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']);
- curl_setopt($this->handle, CURLOPT_NOBODY, true);
- break;
- case Requests::TRACE:
- curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']);
- break;
- case Requests::PATCH:
- case Requests::PUT:
- case Requests::DELETE:
- case Requests::OPTIONS:
- default:
- curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']);
- if (!empty($data)) {
- curl_setopt($this->handle, CURLOPT_POSTFIELDS, $data);
- }
- }
-
- // cURL requires a minimum timeout of 1 second when using the system
- // DNS resolver, as it uses `alarm()`, which is second resolution only.
- // There's no way to detect which DNS resolver is being used from our
- // end, so we need to round up regardless of the supplied timeout.
- //
- // https://github.com/curl/curl/blob/4f45240bc84a9aa648c8f7243be7b79e9f9323a5/lib/hostip.c#L606-L609
- $timeout = max($options['timeout'], 1);
-
- if (is_int($timeout) || $this->version < self::CURL_7_16_2) {
- curl_setopt($this->handle, CURLOPT_TIMEOUT, ceil($timeout));
- }
- else {
- curl_setopt($this->handle, CURLOPT_TIMEOUT_MS, round($timeout * 1000));
- }
-
- if (is_int($options['connect_timeout']) || $this->version < self::CURL_7_16_2) {
- curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT, ceil($options['connect_timeout']));
- }
- else {
- curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT_MS, round($options['connect_timeout'] * 1000));
- }
- curl_setopt($this->handle, CURLOPT_URL, $url);
- curl_setopt($this->handle, CURLOPT_REFERER, $url);
- curl_setopt($this->handle, CURLOPT_USERAGENT, $options['useragent']);
- if (!empty($headers)) {
- curl_setopt($this->handle, CURLOPT_HTTPHEADER, $headers);
- }
- if ($options['protocol_version'] === 1.1) {
- curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
- }
- else {
- curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
- }
-
- if (true === $options['blocking']) {
- curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, array(&$this, 'stream_headers'));
- curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, array(&$this, 'stream_body'));
- curl_setopt($this->handle, CURLOPT_BUFFERSIZE, Requests::BUFFER_SIZE);
- }
- }
-
- /**
- * Process a response
- *
- * @param string $response Response data from the body
- * @param array $options Request options
- * @return string HTTP response data including headers
- */
- public function process_response($response, $options) {
- if ($options['blocking'] === false) {
- $fake_headers = '';
- $options['hooks']->dispatch('curl.after_request', array(&$fake_headers));
- return false;
- }
- if ($options['filename'] !== false) {
- fclose($this->stream_handle);
- $this->headers = trim($this->headers);
- }
- else {
- $this->headers .= $response;
- }
-
- if (curl_errno($this->handle)) {
- $error = sprintf(
- 'cURL error %s: %s',
- curl_errno($this->handle),
- curl_error($this->handle)
- );
- throw new Requests_Exception($error, 'curlerror', $this->handle);
- }
- $this->info = curl_getinfo($this->handle);
-
- $options['hooks']->dispatch('curl.after_request', array(&$this->headers, &$this->info));
- return $this->headers;
- }
-
- /**
- * Collect the headers as they are received
- *
- * @param resource $handle cURL resource
- * @param string $headers Header string
- * @return integer Length of provided header
- */
- public function stream_headers($handle, $headers) {
- // Why do we do this? cURL will send both the final response and any
- // interim responses, such as a 100 Continue. We don't need that.
- // (We may want to keep this somewhere just in case)
- if ($this->done_headers) {
- $this->headers = '';
- $this->done_headers = false;
- }
- $this->headers .= $headers;
-
- if ($headers === "\r\n") {
- $this->done_headers = true;
- }
- return strlen($headers);
- }
-
- /**
- * Collect data as it's received
- *
- * @since 1.6.1
- *
- * @param resource $handle cURL resource
- * @param string $data Body data
- * @return integer Length of provided data
- */
- public function stream_body($handle, $data) {
- $this->hooks->dispatch('request.progress', array($data, $this->response_bytes, $this->response_byte_limit));
- $data_length = strlen($data);
-
- // Are we limiting the response size?
- if ($this->response_byte_limit) {
- if ($this->response_bytes === $this->response_byte_limit) {
- // Already at maximum, move on
- return $data_length;
- }
-
- if (($this->response_bytes + $data_length) > $this->response_byte_limit) {
- // Limit the length
- $limited_length = ($this->response_byte_limit - $this->response_bytes);
- $data = substr($data, 0, $limited_length);
- }
- }
-
- if ($this->stream_handle) {
- fwrite($this->stream_handle, $data);
- }
- else {
- $this->response_data .= $data;
- }
-
- $this->response_bytes += strlen($data);
- return $data_length;
- }
-
- /**
- * Format a URL given GET data
- *
- * @param string $url
- * @param array|object $data Data to build query using, see {@see https://secure.php.net/http_build_query}
- * @return string URL with data
- */
- protected static function format_get($url, $data) {
- if (!empty($data)) {
- $url_parts = parse_url($url);
- if (empty($url_parts['query'])) {
- $query = $url_parts['query'] = '';
- }
- else {
- $query = $url_parts['query'];
- }
-
- $query .= '&' . http_build_query($data, null, '&');
- $query = trim($query, '&');
-
- if (empty($url_parts['query'])) {
- $url .= '?' . $query;
- }
- else {
- $url = str_replace($url_parts['query'], $query, $url);
- }
- }
- return $url;
- }
-
- /**
- * Whether this transport is valid
- *
- * @codeCoverageIgnore
- * @return boolean True if the transport is valid, false otherwise.
- */
- public static function test($capabilities = array()) {
- if (!function_exists('curl_init') || !function_exists('curl_exec')) {
- return false;
- }
-
- // If needed, check that our installed curl version supports SSL
- if (isset($capabilities['ssl']) && $capabilities['ssl']) {
- $curl_version = curl_version();
- if (!(CURL_VERSION_SSL & $curl_version['features'])) {
- return false;
- }
- }
-
- return true;
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Transport/fsockopen.php b/srcs/wordpress/wp-includes/Requests/Transport/fsockopen.php
deleted file mode 100644
index c7c61d3..0000000
--- a/srcs/wordpress/wp-includes/Requests/Transport/fsockopen.php
+++ /dev/null
@@ -1,444 +0,0 @@
-<?php
-/**
- * fsockopen HTTP transport
- *
- * @package Requests
- * @subpackage Transport
- */
-
-/**
- * fsockopen HTTP transport
- *
- * @package Requests
- * @subpackage Transport
- */
-class Requests_Transport_fsockopen implements Requests_Transport {
- /**
- * Second to microsecond conversion
- *
- * @var integer
- */
- const SECOND_IN_MICROSECONDS = 1000000;
-
- /**
- * Raw HTTP data
- *
- * @var string
- */
- public $headers = '';
-
- /**
- * Stream metadata
- *
- * @var array Associative array of properties, see {@see https://secure.php.net/stream_get_meta_data}
- */
- public $info;
-
- /**
- * What's the maximum number of bytes we should keep?
- *
- * @var int|bool Byte count, or false if no limit.
- */
- protected $max_bytes = false;
-
- protected $connect_error = '';
-
- /**
- * Perform a request
- *
- * @throws Requests_Exception On failure to connect to socket (`fsockopenerror`)
- * @throws Requests_Exception On socket timeout (`timeout`)
- *
- * @param string $url URL to request
- * @param array $headers Associative array of request headers
- * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
- * @param array $options Request options, see {@see Requests::response()} for documentation
- * @return string Raw HTTP result
- */
- public function request($url, $headers = array(), $data = array(), $options = array()) {
- $options['hooks']->dispatch('fsockopen.before_request');
-
- $url_parts = parse_url($url);
- if (empty($url_parts)) {
- throw new Requests_Exception('Invalid URL.', 'invalidurl', $url);
- }
- $host = $url_parts['host'];
- $context = stream_context_create();
- $verifyname = false;
- $case_insensitive_headers = new Requests_Utility_CaseInsensitiveDictionary($headers);
-
- // HTTPS support
- if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') {
- $remote_socket = 'ssl://' . $host;
- if (!isset($url_parts['port'])) {
- $url_parts['port'] = 443;
- }
-
- $context_options = array(
- 'verify_peer' => true,
- // 'CN_match' => $host,
- 'capture_peer_cert' => true
- );
- $verifyname = true;
-
- // SNI, if enabled (OpenSSL >=0.9.8j)
- if (defined('OPENSSL_TLSEXT_SERVER_NAME') && OPENSSL_TLSEXT_SERVER_NAME) {
- $context_options['SNI_enabled'] = true;
- if (isset($options['verifyname']) && $options['verifyname'] === false) {
- $context_options['SNI_enabled'] = false;
- }
- }
-
- if (isset($options['verify'])) {
- if ($options['verify'] === false) {
- $context_options['verify_peer'] = false;
- }
- elseif (is_string($options['verify'])) {
- $context_options['cafile'] = $options['verify'];
- }
- }
-
- if (isset($options['verifyname']) && $options['verifyname'] === false) {
- $context_options['verify_peer_name'] = false;
- $verifyname = false;
- }
-
- stream_context_set_option($context, array('ssl' => $context_options));
- }
- else {
- $remote_socket = 'tcp://' . $host;
- }
-
- $this->max_bytes = $options['max_bytes'];
-
- if (!isset($url_parts['port'])) {
- $url_parts['port'] = 80;
- }
- $remote_socket .= ':' . $url_parts['port'];
-
- set_error_handler(array($this, 'connect_error_handler'), E_WARNING | E_NOTICE);
-
- $options['hooks']->dispatch('fsockopen.remote_socket', array(&$remote_socket));
-
- $socket = stream_socket_client($remote_socket, $errno, $errstr, ceil($options['connect_timeout']), STREAM_CLIENT_CONNECT, $context);
-
- restore_error_handler();
-
- if ($verifyname && !$this->verify_certificate_from_context($host, $context)) {
- throw new Requests_Exception('SSL certificate did not match the requested domain name', 'ssl.no_match');
- }
-
- if (!$socket) {
- if ($errno === 0) {
- // Connection issue
- throw new Requests_Exception(rtrim($this->connect_error), 'fsockopen.connect_error');
- }
-
- throw new Requests_Exception($errstr, 'fsockopenerror', null, $errno);
- }
-
- $data_format = $options['data_format'];
-
- if ($data_format === 'query') {
- $path = self::format_get($url_parts, $data);
- $data = '';
- }
- else {
- $path = self::format_get($url_parts, array());
- }
-
- $options['hooks']->dispatch('fsockopen.remote_host_path', array(&$path, $url));
-
- $request_body = '';
- $out = sprintf("%s %s HTTP/%.1F\r\n", $options['type'], $path, $options['protocol_version']);
-
- if ($options['type'] !== Requests::TRACE) {
- if (is_array($data)) {
- $request_body = http_build_query($data, null, '&');
- }
- else {
- $request_body = $data;
- }
-
- if (!empty($data)) {
- if (!isset($case_insensitive_headers['Content-Length'])) {
- $headers['Content-Length'] = strlen($request_body);
- }
-
- if (!isset($case_insensitive_headers['Content-Type'])) {
- $headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
- }
- }
- }
-
- if (!isset($case_insensitive_headers['Host'])) {
- $out .= sprintf('Host: %s', $url_parts['host']);
-
- if (( 'http' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 80 ) || ( 'https' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 443 )) {
- $out .= ':' . $url_parts['port'];
- }
- $out .= "\r\n";
- }
-
- if (!isset($case_insensitive_headers['User-Agent'])) {
- $out .= sprintf("User-Agent: %s\r\n", $options['useragent']);
- }
-
- $accept_encoding = $this->accept_encoding();
- if (!isset($case_insensitive_headers['Accept-Encoding']) && !empty($accept_encoding)) {
- $out .= sprintf("Accept-Encoding: %s\r\n", $accept_encoding);
- }
-
- $headers = Requests::flatten($headers);
-
- if (!empty($headers)) {
- $out .= implode("\r\n", $headers) . "\r\n";
- }
-
- $options['hooks']->dispatch('fsockopen.after_headers', array(&$out));
-
- if (substr($out, -2) !== "\r\n") {
- $out .= "\r\n";
- }
-
- if (!isset($case_insensitive_headers['Connection'])) {
- $out .= "Connection: Close\r\n";
- }
-
- $out .= "\r\n" . $request_body;
-
- $options['hooks']->dispatch('fsockopen.before_send', array(&$out));
-
- fwrite($socket, $out);
- $options['hooks']->dispatch('fsockopen.after_send', array($out));
-
- if (!$options['blocking']) {
- fclose($socket);
- $fake_headers = '';
- $options['hooks']->dispatch('fsockopen.after_request', array(&$fake_headers));
- return '';
- }
-
- $timeout_sec = (int) floor($options['timeout']);
- if ($timeout_sec == $options['timeout']) {
- $timeout_msec = 0;
- }
- else {
- $timeout_msec = self::SECOND_IN_MICROSECONDS * $options['timeout'] % self::SECOND_IN_MICROSECONDS;
- }
- stream_set_timeout($socket, $timeout_sec, $timeout_msec);
-
- $response = $body = $headers = '';
- $this->info = stream_get_meta_data($socket);
- $size = 0;
- $doingbody = false;
- $download = false;
- if ($options['filename']) {
- $download = fopen($options['filename'], 'wb');
- }
-
- while (!feof($socket)) {
- $this->info = stream_get_meta_data($socket);
- if ($this->info['timed_out']) {
- throw new Requests_Exception('fsocket timed out', 'timeout');
- }
-
- $block = fread($socket, Requests::BUFFER_SIZE);
- if (!$doingbody) {
- $response .= $block;
- if (strpos($response, "\r\n\r\n")) {
- list($headers, $block) = explode("\r\n\r\n", $response, 2);
- $doingbody = true;
- }
- }
-
- // Are we in body mode now?
- if ($doingbody) {
- $options['hooks']->dispatch('request.progress', array($block, $size, $this->max_bytes));
- $data_length = strlen($block);
- if ($this->max_bytes) {
- // Have we already hit a limit?
- if ($size === $this->max_bytes) {
- continue;
- }
- if (($size + $data_length) > $this->max_bytes) {
- // Limit the length
- $limited_length = ($this->max_bytes - $size);
- $block = substr($block, 0, $limited_length);
- }
- }
-
- $size += strlen($block);
- if ($download) {
- fwrite($download, $block);
- }
- else {
- $body .= $block;
- }
- }
- }
- $this->headers = $headers;
-
- if ($download) {
- fclose($download);
- }
- else {
- $this->headers .= "\r\n\r\n" . $body;
- }
- fclose($socket);
-
- $options['hooks']->dispatch('fsockopen.after_request', array(&$this->headers, &$this->info));
- return $this->headers;
- }
-
- /**
- * Send multiple requests simultaneously
- *
- * @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see Requests_Transport::request}
- * @param array $options Global options, see {@see Requests::response()} for documentation
- * @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well)
- */
- public function request_multiple($requests, $options) {
- $responses = array();
- $class = get_class($this);
- foreach ($requests as $id => $request) {
- try {
- $handler = new $class();
- $responses[$id] = $handler->request($request['url'], $request['headers'], $request['data'], $request['options']);
-
- $request['options']['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$id], $request));
- }
- catch (Requests_Exception $e) {
- $responses[$id] = $e;
- }
-
- if (!is_string($responses[$id])) {
- $request['options']['hooks']->dispatch('multiple.request.complete', array(&$responses[$id], $id));
- }
- }
-
- return $responses;
- }
-
- /**
- * Retrieve the encodings we can accept
- *
- * @return string Accept-Encoding header value
- */
- protected static function accept_encoding() {
- $type = array();
- if (function_exists('gzinflate')) {
- $type[] = 'deflate;q=1.0';
- }
-
- if (function_exists('gzuncompress')) {
- $type[] = 'compress;q=0.5';
- }
-
- $type[] = 'gzip;q=0.5';
-
- return implode(', ', $type);
- }
-
- /**
- * Format a URL given GET data
- *
- * @param array $url_parts
- * @param array|object $data Data to build query using, see {@see https://secure.php.net/http_build_query}
- * @return string URL with data
- */
- protected static function format_get($url_parts, $data) {
- if (!empty($data)) {
- if (empty($url_parts['query'])) {
- $url_parts['query'] = '';
- }
-
- $url_parts['query'] .= '&' . http_build_query($data, null, '&');
- $url_parts['query'] = trim($url_parts['query'], '&');
- }
- if (isset($url_parts['path'])) {
- if (isset($url_parts['query'])) {
- $get = $url_parts['path'] . '?' . $url_parts['query'];
- }
- else {
- $get = $url_parts['path'];
- }
- }
- else {
- $get = '/';
- }
- return $get;
- }
-
- /**
- * Error handler for stream_socket_client()
- *
- * @param int $errno Error number (e.g. E_WARNING)
- * @param string $errstr Error message
- */
- public function connect_error_handler($errno, $errstr) {
- // Double-check we can handle it
- if (($errno & E_WARNING) === 0 && ($errno & E_NOTICE) === 0) {
- // Return false to indicate the default error handler should engage
- return false;
- }
-
- $this->connect_error .= $errstr . "\n";
- return true;
- }
-
- /**
- * Verify the certificate against common name and subject alternative names
- *
- * Unfortunately, PHP doesn't check the certificate against the alternative
- * names, leading things like 'https://www.github.com/' to be invalid.
- * Instead
- *
- * @see https://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1
- *
- * @throws Requests_Exception On failure to connect via TLS (`fsockopen.ssl.connect_error`)
- * @throws Requests_Exception On not obtaining a match for the host (`fsockopen.ssl.no_match`)
- * @param string $host Host name to verify against
- * @param resource $context Stream context
- * @return bool
- */
- public function verify_certificate_from_context($host, $context) {
- $meta = stream_context_get_options($context);
-
- // If we don't have SSL options, then we couldn't make the connection at
- // all
- if (empty($meta) || empty($meta['ssl']) || empty($meta['ssl']['peer_certificate'])) {
- throw new Requests_Exception(rtrim($this->connect_error), 'ssl.connect_error');
- }
-
- $cert = openssl_x509_parse($meta['ssl']['peer_certificate']);
-
- return Requests_SSL::verify_certificate($host, $cert);
- }
-
- /**
- * Whether this transport is valid
- *
- * @codeCoverageIgnore
- * @return boolean True if the transport is valid, false otherwise.
- */
- public static function test($capabilities = array()) {
- if (!function_exists('fsockopen')) {
- return false;
- }
-
- // If needed, check that streams support SSL
- if (isset($capabilities['ssl']) && $capabilities['ssl']) {
- if (!extension_loaded('openssl') || !function_exists('openssl_x509_parse')) {
- return false;
- }
-
- // Currently broken, thanks to https://github.com/facebook/hhvm/issues/2156
- if (defined('HHVM_VERSION')) {
- return false;
- }
- }
-
- return true;
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php b/srcs/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php
deleted file mode 100644
index 2c97893..0000000
--- a/srcs/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/**
- * Case-insensitive dictionary, suitable for HTTP headers
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * Case-insensitive dictionary, suitable for HTTP headers
- *
- * @package Requests
- * @subpackage Utilities
- */
-class Requests_Utility_CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate {
- /**
- * Actual item data
- *
- * @var array
- */
- protected $data = array();
-
- /**
- * Creates a case insensitive dictionary.
- *
- * @param array $data Dictionary/map to convert to case-insensitive
- */
- public function __construct(array $data = array()) {
- foreach ($data as $key => $value) {
- $this->offsetSet($key, $value);
- }
- }
-
- /**
- * Check if the given item exists
- *
- * @param string $key Item key
- * @return boolean Does the item exist?
- */
- public function offsetExists($key) {
- $key = strtolower($key);
- return isset($this->data[$key]);
- }
-
- /**
- * Get the value for the item
- *
- * @param string $key Item key
- * @return string Item value
- */
- public function offsetGet($key) {
- $key = strtolower($key);
- if (!isset($this->data[$key])) {
- return null;
- }
-
- return $this->data[$key];
- }
-
- /**
- * Set the given item
- *
- * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
- *
- * @param string $key Item name
- * @param string $value Item value
- */
- public function offsetSet($key, $value) {
- if ($key === null) {
- throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
- }
-
- $key = strtolower($key);
- $this->data[$key] = $value;
- }
-
- /**
- * Unset the given header
- *
- * @param string $key
- */
- public function offsetUnset($key) {
- unset($this->data[strtolower($key)]);
- }
-
- /**
- * Get an iterator for the data
- *
- * @return ArrayIterator
- */
- public function getIterator() {
- return new ArrayIterator($this->data);
- }
-
- /**
- * Get the headers as an array
- *
- * @return array Header data
- */
- public function getAll() {
- return $this->data;
- }
-}
diff --git a/srcs/wordpress/wp-includes/Requests/Utility/FilteredIterator.php b/srcs/wordpress/wp-includes/Requests/Utility/FilteredIterator.php
deleted file mode 100644
index 76a29e7..0000000
--- a/srcs/wordpress/wp-includes/Requests/Utility/FilteredIterator.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * Iterator for arrays requiring filtered values
- *
- * @package Requests
- * @subpackage Utilities
- */
-
-/**
- * Iterator for arrays requiring filtered values
- *
- * @package Requests
- * @subpackage Utilities
- */
-class Requests_Utility_FilteredIterator extends ArrayIterator {
- /**
- * Callback to run as a filter
- *
- * @var callable
- */
- protected $callback;
-
- /**
- * Create a new iterator
- *
- * @param array $data
- * @param callable $callback Callback to be called on each value
- */
- public function __construct($data, $callback) {
- parent::__construct($data);
-
- $this->callback = $callback;
- }
-
- /**
- * Get the current item's value after filtering
- *
- * @return string
- */
- public function current() {
- $value = parent::current();
- $value = call_user_func($this->callback, $value);
- return $value;
- }
-}