From: Michael M Slusarz Date: Mon, 6 Jul 2009 03:52:58 +0000 (-0600) Subject: Add stream fetch() output to Cclient driver X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=98864eceaab4946bd6470a6993bebba54296c4e1;p=horde.git Add stream fetch() output to Cclient driver --- diff --git a/framework/Imap_Client/lib/Horde/Imap/Client/Cclient.php b/framework/Imap_Client/lib/Horde/Imap/Client/Cclient.php index e75915628..542dbf830 100644 --- a/framework/Imap_Client/lib/Horde/Imap/Client/Cclient.php +++ b/framework/Imap_Client/lib/Horde/Imap/Client/Cclient.php @@ -1010,6 +1010,12 @@ class Horde_Imap_Client_Cclient extends Horde_Imap_Client_Base } else { $ret[$id]['fullmsg'] = $tmp; } + + if (!empty($c_val['stream'])) { + $ptr = fopen('php://temp', 'r+'); + fwrite($ptr, $tmp); + $ret[$id]['fullmsg'] = $ptr; + } } break; @@ -1045,9 +1051,14 @@ class Horde_Imap_Client_Cclient extends Horde_Imap_Client_Base $tmp = substr($tmp, $val['start'], $val['length']); } - if (!empty($val['parse']) && - ($type == Horde_Imap_Client::FETCH_BODYPART)) { - $tmp = Horde_Mime_Headers::parseHeaders($tmp); + if ($type == Horde_Imap_Client::FETCH_BODYPART) { + if (!empty($val['parse'])) { + $tmp = Horde_Mime_Headers::parseHeaders($tmp); + } elseif (!empty($val['stream'])) { + $ptr = fopen('php://temp', 'r+'); + fwrite($ptr, $tmp); + $tmp = $ptr; + } } $ret[$id][$label][$val['id']] = $tmp; @@ -1086,6 +1097,12 @@ class Horde_Imap_Client_Cclient extends Horde_Imap_Client_Base $ret[$id]['bodytext'][$val['id']] = $tmp; } } + + if (!empty($val['stream'])) { + $ptr = fopen('php://temp', 'r+'); + fwrite($ptr, $ret[$id]['bodytext'][$val['id']); + $ret[$id]['bodytext'][$val['id']] = $ptr; + } } } break; diff --git a/framework/Imap_Client/lib/Horde/Imap/Client/Socket.php b/framework/Imap_Client/lib/Horde/Imap/Client/Socket.php index 52b05a0be..24b2ce1a4 100644 --- a/framework/Imap_Client/lib/Horde/Imap/Client/Socket.php +++ b/framework/Imap_Client/lib/Horde/Imap/Client/Socket.php @@ -2176,8 +2176,7 @@ class Horde_Imap_Client_Socket extends Horde_Imap_Client_Base case Horde_Imap_Client::FETCH_HEADERS: if (empty($val['label'])) { throw new Horde_Imap_Client_Exception('Need a unique label when doing a headers field search.'); - } - if (empty($val['headers'])) { + } elseif (empty($val['headers'])) { throw new Horde_Imap_Client_Exception('Need headers to query when doing a headers field search.'); } $fp['parseheaders'] = !empty($val['parse']);