[Bps-public-commit] r9835 - in Net-IMAP-Server: lib/Net/IMAP/Server lib/Net/IMAP/Server/Command
alexmv at bestpractical.com
alexmv at bestpractical.com
Thu Dec 6 19:12:33 EST 2007
Author: alexmv
Date: Thu Dec 6 19:12:33 2007
New Revision: 9835
Modified:
Net-IMAP-Server/ (props changed)
Net-IMAP-Server/lib/Net/IMAP/Server/Command/Select.pm
Net-IMAP-Server/lib/Net/IMAP/Server/Connection.pm
Net-IMAP-Server/lib/Net/IMAP/Server/Mailbox.pm
Log:
r25507 at zoq-fot-pik: chmrr | 2007-12-06 19:12:23 -0500
* 'FETCH *' is valid to fetch the last message
* Add a callback to a mailbox when it is unselected
* uidnext-1 isn't the last uid; go actually find the uid
* References to messages are also stored in $mailbox->uids; clean
that out on prep_for_destroy, as well
* read-only setting for examine should be set after the select
Modified: Net-IMAP-Server/lib/Net/IMAP/Server/Command/Select.pm
==============================================================================
--- Net-IMAP-Server/lib/Net/IMAP/Server/Command/Select.pm (original)
+++ Net-IMAP-Server/lib/Net/IMAP/Server/Command/Select.pm Thu Dec 6 19:12:33 2007
@@ -25,9 +25,9 @@
my $self = shift;
my $mailbox = $self->connection->model->lookup( $self->parsed_options );
- $self->connection->selected_read_only(1) if $self->command eq "Examine";
$mailbox->poll;
$self->connection->selected($mailbox);
+ $self->connection->selected_read_only(1) if $self->command eq "Examine";
$self->untagged_response(
'FLAGS (' . join( ' ', $mailbox->flags ) . ')' );
Modified: Net-IMAP-Server/lib/Net/IMAP/Server/Connection.pm
==============================================================================
--- Net-IMAP-Server/lib/Net/IMAP/Server/Connection.pm (original)
+++ Net-IMAP-Server/lib/Net/IMAP/Server/Connection.pm Thu Dec 6 19:12:33 2007
@@ -141,8 +141,11 @@
sub selected {
my $self = shift;
- $self->send_untagged if @_ and $self->selected;
- $self->selected_read_only(0) if @_ and $self->selected;
+ if (@_ and $self->selected) {
+ $self->send_untagged;
+ $self->selected->close;
+ $self->selected_read_only(0);
+ }
return $self->_selected(@_);
}
@@ -209,6 +212,8 @@
$ids{$_}++ for @{ $messages } + 0, $1 .. @{ $messages } + 0;
} elsif (/^(\d+)$/) {
$ids{$1}++;
+ } elsif (/^\*$/) {
+ $ids{@{$messages} + 0}++;
}
}
return
Modified: Net-IMAP-Server/lib/Net/IMAP/Server/Mailbox.pm
==============================================================================
--- Net-IMAP-Server/lib/Net/IMAP/Server/Mailbox.pm (original)
+++ Net-IMAP-Server/lib/Net/IMAP/Server/Mailbox.pm Thu Dec 6 19:12:33 2007
@@ -95,9 +95,11 @@
if (/^(\d+):(\d+)$/) {
$ids{$_}++ for $2 > $1 ? $1 .. $2 : $2 .. $1;
} elsif (/^(\d+):\*$/ or /^\*:(\d+)$/) {
- $ids{$_}++ for $self->uidnext - 1, $1 .. $self->uidnext - 1;
+ $ids{$_}++ for $self->messages->[-1]->uid, $1 .. $self->messages->[-1]->uid;
} elsif (/^(\d+)$/) {
$ids{$1}++;
+ } elsif (/^\*$/) {
+ $ids{ $self->messages->[-1]->uid }++;
}
}
return
@@ -246,10 +248,13 @@
$_->prep_for_destroy for @kids;
my @messages = @{$self->messages || []};
$self->messages([]);
+ $self->uids({});
$_->prep_for_destroy for @messages;
$self->parent(undef);
}
+sub close {}
+
package Email::IMAPFolder;
use base 'Email::Folder';
use YAML;
More information about the Bps-public-commit
mailing list