]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/IMAPD.pm
imap: support IDLE
[public-inbox.git] / lib / PublicInbox / IMAPD.pm
index 1011d6a413b1cf4d5d9f6b0976b65cc4b37f2e5b..1922c16046a3119723e560eb18fdfc010bbc9bd2 100644 (file)
@@ -6,10 +6,28 @@
 package PublicInbox::IMAPD;
 use strict;
 use parent qw(PublicInbox::NNTPD);
+use PublicInbox::InboxIdle;
 
 sub new {
        my ($class) = @_;
-       $class->SUPER::new; # PublicInbox::NNTPD->new
+       bless {
+               groups => {},
+               err => \*STDERR,
+               out => \*STDOUT,
+               grouplist => [],
+               # accept_tls => { SSL_server => 1, ..., SSL_reuse_ctx => ... }
+               # idler => PublicInbox::InboxIdle
+       }, $class;
+}
+
+sub refresh_groups {
+       my ($self) = @_;
+       if (my $old_idler = delete $self->{idler}) {
+               $old_idler->close; # PublicInbox::DS::close
+       }
+       my $pi_config = PublicInbox::Config->new;
+       $self->{idler} = PublicInbox::InboxIdle->new($pi_config);
+       $self->SUPER::refresh_groups($pi_config);
 }
 
 1;