From: Eric Wong Date: Sat, 9 Sep 2023 01:48:37 +0000 (+0000) Subject: imapd: lazy-load IMAPsearchqp for Parse::RecDescent X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43690b473b0c068e1587f93d1869aec95dbbc127;p=thirdparty%2Fpublic-inbox.git imapd: lazy-load IMAPsearchqp for Parse::RecDescent This enables the t/pop3d.t test to pass when Parse::RecDescent is not available. --- diff --git a/lib/PublicInbox/IMAP.pm b/lib/PublicInbox/IMAP.pm index 00f99ef75..3c64cefa4 100644 --- a/lib/PublicInbox/IMAP.pm +++ b/lib/PublicInbox/IMAP.pm @@ -39,7 +39,6 @@ use PublicInbox::DS qw(now); use PublicInbox::GitAsyncCat; use Text::ParseWords qw(parse_line); use Errno qw(EAGAIN); -use PublicInbox::IMAPsearchqp; my $Address; for my $mod (qw(Email::Address::XS Mail::Address)) { @@ -1088,6 +1087,7 @@ sub search_uid_range { # long_response sub parse_imap_query ($$) { my ($self, $query) = @_; + # IMAPsearchqp gets loaded in IMAPD->refresh_groups my $q = PublicInbox::IMAPsearchqp::parse($self, $query); if (ref($q)) { my $max = $self->{ibx}->over(1)->max; diff --git a/lib/PublicInbox/IMAPD.pm b/lib/PublicInbox/IMAPD.pm index 78323e57c..bdadb7a35 100644 --- a/lib/PublicInbox/IMAPD.pm +++ b/lib/PublicInbox/IMAPD.pm @@ -55,6 +55,7 @@ sub _refresh_ibx { # pi_cfg->each_inbox cb sub refresh_groups { my ($self, $sig) = @_; my $pi_cfg = PublicInbox::Config->new; + require PublicInbox::IMAPsearchqp; $self->{mailboxes} = $pi_cfg->{-imap_mailboxes} // do { my $mailboxes = $self->{mailboxes} = {}; my $cache = eval { $pi_cfg->ALL->misc->nntpd_cache_load } // {}; diff --git a/t/pop3d.t b/t/pop3d.t index dc52b0cf8..001ceda88 100644 --- a/t/pop3d.t +++ b/t/pop3d.t @@ -276,7 +276,7 @@ EOF like($x, qr/\Adataready\0+\z/, 'got dataready accf for pop3s'); $x = getsockopt($stls, IPPROTO_TCP, $PublicInbox::Daemon::SO_ACCEPTFILTER); - is($x, undef, 'no BSD accept filter for plain IMAP'); + is($x, undef, 'no BSD accept filter for plain POP3'); }; $td->kill;