mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-25 18:19:22 +03:00
v1.2.5.406
This commit is contained in:
parent
03602d0c0f
commit
04430868b1
431 changed files with 64715 additions and 0 deletions
79
rainloop/v/1.2.5.406/app/libraries/Buzz/Util/CookieJar.php
Normal file
79
rainloop/v/1.2.5.406/app/libraries/Buzz/Util/CookieJar.php
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
|
||||
namespace Buzz\Util;
|
||||
|
||||
use Buzz\Message\MessageInterface;
|
||||
use Buzz\Message\RequestInterface;
|
||||
|
||||
class CookieJar
|
||||
{
|
||||
protected $cookies = array();
|
||||
|
||||
public function setCookies($cookies)
|
||||
{
|
||||
$this->cookies = array();
|
||||
foreach ($cookies as $cookie) {
|
||||
$this->addCookie($cookie);
|
||||
}
|
||||
}
|
||||
|
||||
public function getCookies()
|
||||
{
|
||||
return $this->cookies;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a cookie to the current cookie jar.
|
||||
*
|
||||
* @param Cookie $cookie A cookie object
|
||||
*/
|
||||
public function addCookie(Cookie $cookie)
|
||||
{
|
||||
$this->cookies[] = $cookie;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds Cookie headers to the supplied request.
|
||||
*
|
||||
* @param RequestInterface $request A request object
|
||||
*/
|
||||
public function addCookieHeaders(RequestInterface $request)
|
||||
{
|
||||
foreach ($this->cookies as $cookie) {
|
||||
if ($cookie->matchesRequest($request)) {
|
||||
$request->addHeader($cookie->toCookieHeader());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes Set-Cookie headers from a request/response pair.
|
||||
*
|
||||
* @param RequestInterface $request A request object
|
||||
* @param MessageInterface $response A response object
|
||||
*/
|
||||
public function processSetCookieHeaders(RequestInterface $request, MessageInterface $response)
|
||||
{
|
||||
foreach ($response->getHeader('Set-Cookie', false) as $header) {
|
||||
$cookie = new Cookie();
|
||||
$cookie->fromSetCookieHeader($header, parse_url($request->getHost(), PHP_URL_HOST));
|
||||
|
||||
$this->addCookie($cookie);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes expired cookies.
|
||||
*/
|
||||
public function clearExpiredCookies()
|
||||
{
|
||||
foreach ($this->cookies as $i => $cookie) {
|
||||
if ($cookie->isExpired()) {
|
||||
unset($this->cookies[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
// reset array keys
|
||||
$this->cookies = array_values($this->cookies);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue