]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/NNTPD.pm
daemon: do more immortal allocations up front
[public-inbox.git] / lib / PublicInbox / NNTPD.pm
index 32848d7c583e28f0a671af1bec55d071bd92d7ea..451f4d4183bf52875e5f3e800f269c331ccffa14 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2018 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2020 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # represents an NNTPD (currently a singleton),
@@ -7,7 +7,7 @@ package PublicInbox::NNTPD;
 use strict;
 use warnings;
 use Sys::Hostname;
-require PublicInbox::Config;
+use PublicInbox::Config;
 
 sub new {
        my ($class) = @_;
@@ -25,6 +25,8 @@ sub new {
                out => \*STDOUT,
                grouplist => [],
                servername => $name,
+               greet => \"201 $name ready - post via email\r\n",
+               # accept_tls => { SSL_server => 1, ..., SSL_reuse_ctx => ... }
        }, $class;
 }
 
@@ -43,6 +45,10 @@ sub refresh_groups () {
                        # Only valid if msgmap and search works
                        $new->{$ngname} = $ng;
                        push @list, $ng;
+
+                       # preload to avoid fragmentation:
+                       $ng->description;
+                       $ng->base_url;
                }
        });
        @list = sort { $a->{newsgroup} cmp $b->{newsgroup} } @list;