]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/NetReader.pm
No ext_urls
[public-inbox.git] / lib / PublicInbox / NetReader.pm
index 4da19ab969b5710d91f1cb7831cf6690580d3057..4de2583e00ddeb307aea560da2b9070e3dadf99c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # common reader code for IMAP and NNTP (and maybe JMAP)
@@ -359,6 +359,7 @@ sub imap_common_init ($;$) {
                                mic_for($self, $uri, $mic_common, $lei) //
                                die "Unable to continue\n";
                next unless $self->isa('PublicInbox::NetWriter');
+               next if $self->{-skip_creat};
                my $dst = $orig_uri->mailbox // next;
                next if $mic->exists($dst); # already exists
                $mic->create($dst) or die "CREATE $dst failed <$orig_uri>: $@";
@@ -480,7 +481,7 @@ sub itrk_last ($$;$$) {
        my ($self, $uri, $r_uidval, $mic) = @_;
        return (undef, undef, $r_uidval) unless $self->{incremental};
        my ($itrk, $l_uid, $l_uidval);
-       if (defined(my $lms = $self->{-lms_ro})) { # LeiMailSync or 0
+       if (defined(my $lms = $self->{-lms_rw})) { # LeiMailSync or 0
                $uri->uidvalidity($r_uidval) if defined $r_uidval;
                if ($mic) {
                        my $auth = $mic->Authmechanism // '';
@@ -684,7 +685,13 @@ sub mic_get {
        }
        my $mic = mic_new($self, $mic_arg, $sec, $uri);
        $cached //= {}; # invalid placeholder if no cache enabled
-       $mic && $mic->IsConnected ? ($cached->{$sec} = $mic) : undef;
+       if ($mic && $mic->IsConnected) {
+               $cached->{$sec} = $mic;
+       } else {
+               warn 'IMAP LastError: ',$mic->LastError, "\n" if $mic;
+               warn "IMAP errno: $!\n" if $!;
+               undef;
+       }
 }
 
 sub imap_each {