/usr/share/php/Horde/Imap/Client/Socket/Catenate.php is in php-horde-imap-client 2.29.12-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | <?php
/**
* Copyright 2012-2016 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2012-2016 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
*/
/**
* Methods for the Socket driver used for a CATENATE command.
*
* NOTE: This class is NOT intended to be accessed outside of a Base object.
* There is NO guarantees that the API of this class will not change across
* versions.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2012-2016 Horde LLC
* @internal
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
*/
class Horde_Imap_Client_Socket_Catenate
{
/**
* Socket object.
*
* @var Horde_Imap_Client_Socket
*/
protected $_socket;
/**
* Constructor.
*
* @param Horde_Imap_Client_Socket $socket Socket object.
*/
public function __construct(Horde_Imap_Client_Socket $socket)
{
$this->_socket = $socket;
}
/**
* Given an IMAP URL, fetches the corresponding part.
*
* @param Horde_Imap_Client_Url_Imap $url An IMAP URL.
*
* @return resource The section contents in a stream. Returns null if
* the part could not be found.
*
* @throws Horde_Imap_Client_Exception
*/
public function fetchFromUrl(Horde_Imap_Client_Url_Imap $url)
{
$ids_ob = $this->_socket->getIdsOb($url->uid);
// BODY[]
if (is_null($url->section)) {
$query = new Horde_Imap_Client_Fetch_Query();
$query->fullText(array(
'peek' => true
));
$fetch = $this->_socket->fetch($url->mailbox, $query, array(
'ids' => $ids_ob
));
return $fetch[$url->uid]->getFullMsg(true);
}
$section = trim($url->section);
// BODY[<#.>HEADER.FIELDS<.NOT>()]
if (($pos = stripos($section, 'HEADER.FIELDS')) !== false) {
$hdr_pos = strpos($section, '(');
$cmd = substr($section, 0, $hdr_pos);
$query = new Horde_Imap_Client_Fetch_Query();
$query->headers(
'section',
explode(' ', substr($section, $hdr_pos + 1, strrpos($section, ')') - $hdr_pos)),
array(
'id' => ($pos ? substr($section, 0, $pos - 1) : 0),
'notsearch' => (stripos($cmd, '.NOT') !== false),
'peek' => true
)
);
$fetch = $this->_socket->fetch($url->mailbox, $query, array(
'ids' => $ids_ob
));
return $fetch[$url->uid]->getHeaders('section', Horde_Imap_Client_Data_Fetch::HEADER_STREAM);
}
// BODY[#]
if (is_numeric(substr($section, -1))) {
$query = new Horde_Imap_Client_Fetch_Query();
$query->bodyPart($section, array(
'peek' => true
));
$fetch = $this->_socket->fetch($url->mailbox, $query, array(
'ids' => $ids_ob
));
return $fetch[$url->uid]->getBodyPart($section, true);
}
// BODY[<#.>HEADER]
if (($pos = stripos($section, 'HEADER')) !== false) {
$id = $pos
? substr($section, 0, $pos - 1)
: 0;
$query = new Horde_Imap_Client_Fetch_Query();
$query->headerText(array(
'id' => $id,
'peek' => true
));
$fetch = $this->_socket->fetch($url->mailbox, $query, array(
'ids' => $ids_ob
));
return $fetch[$url->uid]->getHeaderText($id, Horde_Imap_Client_Data_Fetch::HEADER_STREAM);
}
// BODY[<#.>TEXT]
if (($pos = stripos($section, 'TEXT')) !== false) {
$id = $pos
? substr($section, 0, $pos - 1)
: 0;
$query = new Horde_Imap_Client_Fetch_Query();
$query->bodyText(array(
'id' => $id,
'peek' => true
));
$fetch = $this->_socket->fetch($url->mailbox, $query, array(
'ids' => $ids_ob
));
return $fetch[$url->uid]->getBodyText($id, true);
}
// BODY[<#.>MIMEHEADER]
if (($pos = stripos($section, 'MIME')) !== false) {
$id = $pos
? substr($section, 0, $pos - 1)
: 0;
$query = new Horde_Imap_Client_Fetch_Query();
$query->mimeHeader($id, array(
'peek' => true
));
$fetch = $this->_socket->fetch($url->mailbox, $query, array(
'ids' => $ids_ob
));
return $fetch[$url->uid]->getMimeHeader($id, Horde_Imap_Client_Data_Fetch::HEADER_STREAM);
}
return null;
}
}
|