From 05727fbf963bee726e99e383855567235cc3d9ba Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 23 May 2021 21:36:51 +0000 Subject: lei_mail_sync: reject IMAP URLs w/o UIDVALIDITY It's inappropriate to store sync information without UIDVALIDITY, so add an assertion to prevent it. --- lib/PublicInbox/LeiMailSync.pm | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/PublicInbox/LeiMailSync.pm b/lib/PublicInbox/LeiMailSync.pm index b2986686..63076fa1 100644 --- a/lib/PublicInbox/LeiMailSync.pm +++ b/lib/PublicInbox/LeiMailSync.pm @@ -7,6 +7,7 @@ use strict; use v5.10.1; use DBI; use PublicInbox::ContentHash qw(git_sha); +use Carp (); sub dbh_new { my ($self, $rw) = @_; @@ -88,6 +89,10 @@ UPDATE folders SET loc = ? WHERE fid = ? EOM return $fid; } + } elsif ($rw && $folder =~ m!\Aimaps?://!i) { + require PublicInbox::URIimap; + PublicInbox::URIimap->new($folder)->uidvalidity // + Carp::croak("BUG: $folder has no UIDVALIDITY"); } return unless $rw; -- cgit v1.2.3-24-ge0c7