mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-07 16:37:02 +03:00
Small MailSo cleanup
This commit is contained in:
parent
f89a1cd3f9
commit
6982b57289
4 changed files with 18 additions and 19 deletions
|
|
@ -544,14 +544,14 @@ class ImapClient extends \MailSo\Net\NetClient
|
||||||
return $oResult;
|
return $oResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function yieldUntaggedResponses(string $sEndTag = null) : \Generator
|
// public function yieldUntaggedResponses() : \Generator
|
||||||
public function yieldUntaggedResponses(string $sEndTag = null) : iterable
|
public function yieldUntaggedResponses() : iterable
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$oResult = new ResponseCollection;
|
$oResult = new ResponseCollection;
|
||||||
|
|
||||||
if (\is_resource($this->ConnectionResource())) {
|
if (\is_resource($this->ConnectionResource())) {
|
||||||
$sEndTag = $sEndTag ?: $this->getCurrentTag();
|
$sEndTag = $this->getCurrentTag();
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
$oResponse = $this->partialParseResponse();
|
$oResponse = $this->partialParseResponse();
|
||||||
|
|
|
||||||
|
|
@ -82,9 +82,9 @@ trait ResponseParser
|
||||||
$bIsGotoDefault = false;
|
$bIsGotoDefault = false;
|
||||||
|
|
||||||
$sAtomBuilder = $bTreatAsAtom ? '' : null;
|
$sAtomBuilder = $bTreatAsAtom ? '' : null;
|
||||||
$aList = array();
|
$aResponseList = array();
|
||||||
if ($bRoot) {
|
if ($bRoot) {
|
||||||
$aList =& $oImapResponse->ResponseList;
|
$aResponseList =& $oImapResponse->ResponseList;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
@ -143,7 +143,7 @@ trait ResponseParser
|
||||||
if ($bTreatAsAtom) {
|
if ($bTreatAsAtom) {
|
||||||
$sAtomBuilder .= $sChar . $mResult . ('[' === $sChar ? ']' : ')');
|
$sAtomBuilder .= $sChar . $mResult . ('[' === $sChar ? ']' : ')');
|
||||||
} else {
|
} else {
|
||||||
$aList[] = $mResult;
|
$aResponseList[] = $mResult;
|
||||||
if ($bRoot && $oImapResponse->IsStatusResponse) {
|
if ($bRoot && $oImapResponse->IsStatusResponse) {
|
||||||
$oImapResponse->OptionalResponse = $mResult;
|
$oImapResponse->OptionalResponse = $mResult;
|
||||||
$bIsGotoDefault = true;
|
$bIsGotoDefault = true;
|
||||||
|
|
@ -164,13 +164,13 @@ trait ResponseParser
|
||||||
|
|
||||||
if ($this->partialResponseLiteralCallbacks($sParentToken, $sPreviousAtomUpperCase, $iLiteralLen)) {
|
if ($this->partialResponseLiteralCallbacks($sParentToken, $sPreviousAtomUpperCase, $iLiteralLen)) {
|
||||||
if (!$bTreatAsAtom) {
|
if (!$bTreatAsAtom) {
|
||||||
$aList[] = '';
|
$aResponseList[] = '';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$sLiteral = $this->partialResponseLiteral($iLiteralLen);
|
$sLiteral = $this->partialResponseLiteral($iLiteralLen);
|
||||||
if (null !== $sLiteral) {
|
if (null !== $sLiteral) {
|
||||||
if (!$bTreatAsAtom) {
|
if (!$bTreatAsAtom) {
|
||||||
$aList[] = $sLiteral;
|
$aResponseList[] = $sLiteral;
|
||||||
// $this->writeLog('{'.$iLiteralLen.'} '.$sLiteral, \LOG_INFO);
|
// $this->writeLog('{'.$iLiteralLen.'} '.$sLiteral, \LOG_INFO);
|
||||||
} else {
|
} else {
|
||||||
\SnappyMail\Log::notice('IMAP', 'Literal treated as atom and skipped');
|
\SnappyMail\Log::notice('IMAP', 'Literal treated as atom and skipped');
|
||||||
|
|
@ -220,7 +220,7 @@ trait ResponseParser
|
||||||
if ($bTreatAsAtom) {
|
if ($bTreatAsAtom) {
|
||||||
$sAtomBuilder .= \stripslashes(\substr($this->sResponseBuffer, $iPos, $iOffset + $iLength - $iPos + 1));
|
$sAtomBuilder .= \stripslashes(\substr($this->sResponseBuffer, $iPos, $iOffset + $iLength - $iPos + 1));
|
||||||
} else {
|
} else {
|
||||||
$aList[] = \stripslashes(\substr($this->sResponseBuffer, $iPos + 1, $iOffset + $iLength - $iPos - 1));
|
$aResponseList[] = \stripslashes(\substr($this->sResponseBuffer, $iPos + 1, $iOffset + $iLength - $iPos - 1));
|
||||||
}
|
}
|
||||||
$iPos = $iOffset + $iLength + 1;
|
$iPos = $iOffset + $iLength + 1;
|
||||||
break 2;
|
break 2;
|
||||||
|
|
@ -286,28 +286,28 @@ trait ResponseParser
|
||||||
if ($iPos > $iCharBlockStartPos || null !== $sAtomBuilder) {
|
if ($iPos > $iCharBlockStartPos || null !== $sAtomBuilder) {
|
||||||
$sLastCharBlock = \substr($this->sResponseBuffer, $iCharBlockStartPos, $iPos - $iCharBlockStartPos);
|
$sLastCharBlock = \substr($this->sResponseBuffer, $iCharBlockStartPos, $iPos - $iCharBlockStartPos);
|
||||||
if (null === $sAtomBuilder) {
|
if (null === $sAtomBuilder) {
|
||||||
$aList[] = 'NIL' === $sLastCharBlock ? null : $sLastCharBlock;
|
$aResponseList[] = 'NIL' === $sLastCharBlock ? null : $sLastCharBlock;
|
||||||
$sPreviousAtomUpperCase = \strtoupper($sLastCharBlock);
|
$sPreviousAtomUpperCase = \strtoupper($sLastCharBlock);
|
||||||
} else {
|
} else {
|
||||||
$sAtomBuilder .= $sLastCharBlock;
|
$sAtomBuilder .= $sLastCharBlock;
|
||||||
|
|
||||||
if (!$bTreatAsAtom) {
|
if (!$bTreatAsAtom) {
|
||||||
$aList[] = $sAtomBuilder;
|
$aResponseList[] = $sAtomBuilder;
|
||||||
$sPreviousAtomUpperCase = \strtoupper($sAtomBuilder);
|
$sPreviousAtomUpperCase = \strtoupper($sAtomBuilder);
|
||||||
$sAtomBuilder = null;
|
$sAtomBuilder = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bRoot) {
|
if ($bRoot) {
|
||||||
if (!isset($oImapResponse->Tag) && 1 === \count($aList)) {
|
if (!isset($oImapResponse->Tag) && 1 === \count($aResponseList)) {
|
||||||
$oImapResponse->setTag($aList[0]);
|
$oImapResponse->setTag($aResponseList[0]);
|
||||||
if ($this->getCurrentTag() === $oImapResponse->Tag) {
|
if ($this->getCurrentTag() === $oImapResponse->Tag) {
|
||||||
$oImapResponse->ResponseType = ResponseType::TAGGED;
|
$oImapResponse->ResponseType = ResponseType::TAGGED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!isset($oImapResponse->StatusOrIndex) && 2 === \count($aList))
|
else if (!isset($oImapResponse->StatusOrIndex) && 2 === \count($aResponseList))
|
||||||
{
|
{
|
||||||
$oImapResponse->setStatus($aList[1]);
|
$oImapResponse->setStatus($aResponseList[1]);
|
||||||
}
|
}
|
||||||
else if (ResponseType::CONTINUATION === $oImapResponse->ResponseType
|
else if (ResponseType::CONTINUATION === $oImapResponse->ResponseType
|
||||||
|| $oImapResponse->IsStatusResponse)
|
|| $oImapResponse->IsStatusResponse)
|
||||||
|
|
@ -321,7 +321,7 @@ trait ResponseParser
|
||||||
|
|
||||||
$this->iResponseBufParsedPos = $iPos;
|
$this->iResponseBufParsedPos = $iPos;
|
||||||
|
|
||||||
return $bTreatAsAtom ? $sAtomBuilder : $aList;
|
return $bTreatAsAtom ? $sAtomBuilder : $aResponseList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function partialResponseLiteral($iLiteralLen) : ?string
|
private function partialResponseLiteral($iLiteralLen) : ?string
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ class MailClient
|
||||||
))
|
))
|
||||||
), $iPrevUidNext.':*', true);
|
), $iPrevUidNext.':*', true);
|
||||||
|
|
||||||
foreach ($aFetchResponse as /* @var $oFetchResponse \MailSo\Imap\FetchResponse */ $oFetchResponse) {
|
foreach ($aFetchResponse as $oFetchResponse) {
|
||||||
$aFlags = \array_map('strtolower', $oFetchResponse->GetFetchValue(FetchType::FLAGS));
|
$aFlags = \array_map('strtolower', $oFetchResponse->GetFetchValue(FetchType::FLAGS));
|
||||||
|
|
||||||
if (!\in_array(\strtolower(MessageFlag::SEEN), $aFlags)) {
|
if (!\in_array(\strtolower(MessageFlag::SEEN), $aFlags)) {
|
||||||
|
|
@ -502,7 +502,7 @@ class MailClient
|
||||||
$aFetchIterator = $this->oImapClient->FetchIterate($aFetchItems, (string) $oRange, $oRange->UID);
|
$aFetchIterator = $this->oImapClient->FetchIterate($aFetchItems, (string) $oRange, $oRange->UID);
|
||||||
// FETCH does not respond in the id order of the SequenceSet, so we prefill $aCollection for the right sort order.
|
// FETCH does not respond in the id order of the SequenceSet, so we prefill $aCollection for the right sort order.
|
||||||
$aCollection = \array_fill_keys($oRange->getArrayCopy(), null);
|
$aCollection = \array_fill_keys($oRange->getArrayCopy(), null);
|
||||||
foreach ($aFetchIterator as /* @var $oFetchResponseItem \MailSo\Imap\FetchResponse */ $oFetchResponseItem) {
|
foreach ($aFetchIterator as $oFetchResponseItem) {
|
||||||
$id = $oRange->UID
|
$id = $oRange->UID
|
||||||
? $oFetchResponseItem->GetFetchValue(FetchType::UID)
|
? $oFetchResponseItem->GetFetchValue(FetchType::UID)
|
||||||
: $oFetchResponseItem->oImapResponse->ResponseList[1];
|
: $oFetchResponseItem->oImapResponse->ResponseList[1];
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ namespace SnappyMail\Imap;
|
||||||
|
|
||||||
use MailSo\Imap\Enumerations\FetchType;
|
use MailSo\Imap\Enumerations\FetchType;
|
||||||
use MailSo\Imap\Enumerations\MessageFlag;
|
use MailSo\Imap\Enumerations\MessageFlag;
|
||||||
use MailSo\Imap\FetchResponse;
|
|
||||||
use MailSo\Mime\Enumerations\Header;
|
use MailSo\Mime\Enumerations\Header;
|
||||||
|
|
||||||
class Sync
|
class Sync
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue