]> git.g-eek.se Git - interimap.git/commitdiff
Drop the 'read-only' option.
authorGuilhem Moulin <guilhem@fripost.org>
Mon, 27 Jul 2015 20:52:21 +0000 (22:52 +0200)
committerGuilhem Moulin <guilhem@fripost.org>
Mon, 27 Jul 2015 21:48:06 +0000 (23:48 +0200)
It didn't really work since STORE commands are answered with a tagged OK
response for instance.

lib/Net/IMAP/Sync.pm

index 677f9916c7a34e21058d6a119be6194967b398c8..3faab63a05d75c3c1ce9623f36d840569bdc14e0 100644 (file)
@@ -47,7 +47,6 @@ my %OPTIONS = (
     password => qr/\A([\x01-\x7F]+)\z/,
     auth => qr/\A($RE_ATOM_CHAR+(?: $RE_ATOM_CHAR+)*)\z/,
     command => qr/\A(\/\P{Control}+)\z/,
-    'read-only' => qr/\A(YES|NO)\z/i,
     SSL_fingerprint => qr/\A([A-Za-z0-9]+\$\p{AHex}+)\z/,
     SSL_cipher_list => qr/\A(\P{Control}+)\z/,
     SSL_verify_trusted_peer => qr/\A(YES|NO)\z/i,
@@ -210,10 +209,6 @@ our $IMAP_text;
 #
 #   - 'name': An optional instance name to include in log messages.
 #
-#   - 'read-only': Use only commands that don't modify the server state.
-#      In particular, use EXAMINE in place of SELECT for mailbox
-#      selection.
-#
 #   - 'extra-attrs': An attribute or list of extra attributes to FETCH
 #     when getting new mails, in addition to (MODSEQ FLAGS INTERNALDATE
 #     BODY.PEEK[]).
@@ -225,9 +220,6 @@ sub new($%) {
     my $self = { @_ };
     bless $self, $class;
 
-    # whether we're allowed to to use read-write command
-    $self->{'read-only'} = uc ($self->{'read-only'} // 'NO') ne 'YES' ? 0 : 1;
-
     # the IMAP state: one of 'UNAUTH', 'AUTH', 'SELECTED' or 'LOGOUT'
     # (cf RFC 3501 section 3)
     $self->{_STATE} = '';
@@ -479,14 +471,12 @@ sub search($$) {
 
 # $self->select($mailbox)
 # $self->examine($mailbox)
-#   Issue a SELECT or EXAMINE command for the $mailbox. (Always use
-#   EXAMINE if the 'read-only' flag is set.)  Upon success, change the
-#   state to SELECTED, otherwise go back to AUTH.
+#   Issue a SELECT or EXAMINE command for the $mailbox. Upon success,
+#   change the state to SELECTED, otherwise go back to AUTH.
 sub select($$) {
     my $self = shift;
     my $mailbox = shift;
-    my $cmd = $self->{'read-only'} ? 'EXAMINE' : 'SELECT';
-    $self->_select_or_examine($cmd, $mailbox);
+    $self->_select_or_examine('SELECT', $mailbox);
 }
 sub examine($$) {
     my $self = shift;
@@ -514,16 +504,14 @@ sub noop($) {
 
 # $self->create($mailbox)
 # $self->delete($mailbox)
-#   CREATE or DELETE $mailbox.  Requires the 'read-only' flag to be unset.
+#   CREATE or DELETE $mailbox.
 sub create($$) {
     my ($self, $mailbox) = @_;
-    $self->fail("Server is read-only.") if $self->{'read-only'};
     $self->_send("CREATE ".quote($mailbox));
     $self->log("Created mailbox ".$mailbox) unless $self->{quiet};
 }
 sub delete($$) {
     my ($self, $mailbox) = @_;
-    $self->fail("Server is read-only.") if $self->{'read-only'};
     $self->_send("DELETE ".quote($mailbox));
     $self->log("Deleted mailbox ".$mailbox) unless $self->{quiet};
     delete $self->{_CACHE}->{$mailbox};
@@ -532,14 +520,12 @@ sub delete($$) {
 
 
 # $self->rename($oldname, $newname)
-#   RENAME the mailbox $oldname to $newname.  Requires the 'read-only'
-#   flag to be unset.
+#   RENAME the mailbox $oldname to $newname.
 #   /!\ Requires a LIST command to be issued to determine the hierarchy
 #       delimiter for the original name.
 sub rename($$$) {
     my ($self, $from, $to) = @_;
     my $delim = $self->{_CACHE}->{$from}->{DELIMITER} if defined $self->{_CACHE}->{$from};
-    $self->fail("Server is read-only.") if $self->{'read-only'};
     $self->_send("RENAME ".quote($from).' '.quote($to));
     $self->log("Renamed mailbox ".$from.' to '.$to) unless $self->{quiet};
     $self->{_CACHE}->{$to}  = delete $self->{_CACHE}->{$from}  if exists $self->{_CACHE}->{$from};
@@ -557,17 +543,14 @@ sub rename($$$) {
 
 # $self->subscribe($mailbox)
 # $self->unsubscribe($mailbox)
-#   SUBSCRIBE or UNSUBSCRIBE $mailbox.  Requires the 'read-only' flag to
-#   be unset.
+#   SUBSCRIBE or UNSUBSCRIBE $mailbox.
 sub subscribe($$) {
     my ($self, $mailbox) = @_;
-    $self->fail("Server is read-only.") if $self->{'read-only'};
     $self->_send("SUBSCRIBE ".quote($mailbox));
     $self->log("Subscribed to mailbox ".$mailbox) unless $self->{quiet};
 }
 sub unsubscribe($$) {
     my ($self, $mailbox) = @_;
-    $self->fail("Server is read-only.") if $self->{'read-only'};
     $self->_send("UNSUBSCRIBE ".quote($mailbox));
     $self->log("Unsubscribed to mailbox ".$mailbox) unless $self->{quiet};
 }
@@ -639,7 +622,6 @@ sub append($$@) {
     my $self = shift;
     my $mailbox = shift;
     return unless @_;
-    $self->fail("Server is read-only.") if $self->{'read-only'};
     $self->fail("Server did not advertise UIDPLUS (RFC 4315) capability.")
         if $self->incapable('UIDPLUS');
 
@@ -1234,9 +1216,8 @@ sub _open_mailbox($$) {
 
 
 # $self->_select_or_examine($command, $mailbox)
-#   Issue a SELECT or EXAMINE command for the $mailbox. (Always use
-#   EXAMINE if the 'read-only' flag is set.)  Upon success, change the
-#   state to SELECTED, otherwise go back to AUTH.
+#   Issue a SELECT or EXAMINE command for the $mailbox.  Upon success,
+#   change the state to SELECTED, otherwise go back to AUTH.
 sub _select_or_examine($$$) {
     my $self = shift;
     my $command = shift;