|
@@ -113,7 +113,13 @@ function sqimap_read_data_list ($imap_stream, $tag_uid, $handle_errors, &$respon
|
|
$char = $read{0};
|
|
$char = $read{0};
|
|
switch ($char)
|
|
switch ($char)
|
|
{
|
|
{
|
|
- case $tag{0}:
|
|
|
|
|
|
+ case '+':
|
|
|
|
+ default:
|
|
|
|
+ $read = sqimap_fgets($imap_stream);
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case $tag{0}:
|
|
|
|
+ {
|
|
/* get the command */
|
|
/* get the command */
|
|
$arg = '';
|
|
$arg = '';
|
|
$i = strlen($tag)+1;
|
|
$i = strlen($tag)+1;
|
|
@@ -125,15 +131,15 @@ function sqimap_read_data_list ($imap_stream, $tag_uid, $handle_errors, &$respon
|
|
if ($arg && $found_tag==$tag) {
|
|
if ($arg && $found_tag==$tag) {
|
|
switch ($arg)
|
|
switch ($arg)
|
|
{
|
|
{
|
|
- case 'OK':
|
|
|
|
- case 'BAD':
|
|
|
|
- case 'NO':
|
|
|
|
- case 'BYE':
|
|
|
|
- case 'PREAUTH':
|
|
|
|
|
|
+ case 'OK':
|
|
|
|
+ case 'BAD':
|
|
|
|
+ case 'NO':
|
|
|
|
+ case 'BYE':
|
|
|
|
+ case 'PREAUTH':
|
|
$response = $arg;
|
|
$response = $arg;
|
|
$message = trim(substr($read,$i+strlen($arg)));
|
|
$message = trim(substr($read,$i+strlen($arg)));
|
|
break 3;
|
|
break 3;
|
|
- default:
|
|
|
|
|
|
+ default:
|
|
/* this shouldn't happen */
|
|
/* this shouldn't happen */
|
|
$response = $arg;
|
|
$response = $arg;
|
|
$message = trim(substr($read,$i+strlen($arg)));
|
|
$message = trim(substr($read,$i+strlen($arg)));
|
|
@@ -145,7 +151,10 @@ function sqimap_read_data_list ($imap_stream, $tag_uid, $handle_errors, &$respon
|
|
$read = sqimap_fgets($imap_stream);
|
|
$read = sqimap_fgets($imap_stream);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case '*':
|
|
|
|
|
|
+ } // end case $tag{0}
|
|
|
|
+
|
|
|
|
+ case '*':
|
|
|
|
+ {
|
|
if (preg_match('/^\*\s\d+\sFETCH/',$read)) {
|
|
if (preg_match('/^\*\s\d+\sFETCH/',$read)) {
|
|
/* check for literal */
|
|
/* check for literal */
|
|
$s = substr($read,-3);
|
|
$s = substr($read,-3);
|
|
@@ -209,20 +218,19 @@ function sqimap_read_data_list ($imap_stream, $tag_uid, $handle_errors, &$respon
|
|
break 1;
|
|
break 1;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
- case '+':
|
|
|
|
- $read = sqimap_fgets($imap_stream);
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- $read = sqimap_fgets($imap_stream);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ } // end case '*'
|
|
|
|
+ } // end switch
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /* Set $resultlist array */
|
|
if (!empty($data)) {
|
|
if (!empty($data)) {
|
|
$resultlist[] = $data;
|
|
$resultlist[] = $data;
|
|
}
|
|
}
|
|
elseif (empty($resultlist)) {
|
|
elseif (empty($resultlist)) {
|
|
$resultlist[] = array();
|
|
$resultlist[] = array();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /* Return result or handle errors */
|
|
if ($handle_errors == false) {
|
|
if ($handle_errors == false) {
|
|
return( $resultlist );
|
|
return( $resultlist );
|
|
}
|
|
}
|