select response.
* Tried to fix the broken del move next function and added a few arguments
to the dmn_expunge function because the globals scared me when I couldn't
get the job done.
scope and with register globals = on the mailbox-tree wasn't returned. We
should work on caching the mailbox-tree and rewrite the functions that make
use of the old mailbox_list function.
list.
Make use of the sorted list with id's from the session if the mailbox state
didn't change.
All performance related imap fixes were found after playing with thetereal.
If you want to try itt yourself:
tethereal -t a -ni lo -f 'port 143' -R 'imap.request'
with lo the interface.
the whole subscription list and looked up if the requested mailbox was part
of it. It's better to subscribe and surpress the NO response if already
subscribed.
when we added the INBOX response to the array at a later stage. This is
confirmed on PHP 4.1.2. The version I'm using (4.3.4) didn't had that
problem. Probably this fix us a php-bug workaround.
Added basic @package/@subpackage tags
The decode/ files were documented slightly more thoroughly, although they're almost self-explanatory anyway.
The individual functions in the functions/ files need to be documented though, and now that this commit is in, anyone willing to write docblocks for functions should get cracking ;)
the parent isn't marked as a special folder. This code forces the parents
of the special folders to also be marked as special. The rest of the subs
for the parent special should follow the movement of the parent in left_main
unsubscribed and we just add it to the list. No reason to check specificly
for LSUB "" "INBOX" or LIST "" "INBOX"
If there is no inbox then a select will produce an error message.
out of order reponses. Now it works.
In imap_mailbox te array with mailbox objects wasn't create correctly. It
contained double entries. That's fixed too.
This means we do the imap-call and don't wait for the response and continue
with the next mailbox.
Because we remember the issued tags we are able to retrieve the
imap-responses and assign the response to the correct mailbox.
The advantage of this method is that we don't have to wait on each response.
RFCs, but we didn't do that. For UW IMAP, force a LIST command on each
mailbox, this should also fix the \NoSelect on INBOX if it occurs.
Also updated the check for \NoSelect to include the LIST option as well as
LSUB.
enabling this code actually does good in uw (it hides the mail/ non-select
folder), and makes the folders all line up. In courier, folders no longer
appear (though they still are) subs of inbox... should we change this?
Retested code with exchange, cyrus, uw, and courier, all seem good now.
I'm trying to get it to match on "INBOX" or INBOX but nothing afterwards,
but some IMAP servers are returning an extra char or two on the end, so
a direct match is messing up, so I've tried something a little different
and told it to do a full match, but fail it if the next char after INBOX is
a delimiter (do we have a full list of possibilities?).
Tested on uw, courier, exchange, and cyrus, and the list builds nicely now.
uw still has some odd behaviours when you have a default folder prefix, but
the others seem a lot better... got to do some minor tweaks, and I think this
can go for full testing.
the default_folder_prefix area, also they return NIL for the delimiter which
means the previous regex would always fail as it is looking for a 1 char
delimiter between ""