about summary refs log tree commit homepage
path: root/lib/PublicInbox/NNTP.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-06-30 04:27:55 +0000
committerEric Wong <e@80x24.org>2019-06-30 22:33:17 +0000
commit5769d488526b88a394b4b6741e77dd0e7441d248 (patch)
tree0c3df04121a6d5876976a672a37d7acb74415378 /lib/PublicInbox/NNTP.pm
parent38ba41513ee4c42414fbfadb6e6d2bf281fbedfd (diff)
downloadpublic-inbox-5769d488526b88a394b4b6741e77dd0e7441d248.tar.gz
Some clients may rely on this for STARTTLS support.
Diffstat (limited to 'lib/PublicInbox/NNTP.pm')
-rw-r--r--lib/PublicInbox/NNTP.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 57a67a50..d106e315 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -31,6 +31,14 @@ my @OVERVIEW = qw(Subject From Date Message-ID References Xref);
 my $OVERVIEW_FMT = join(":\r\n", @OVERVIEW, qw(Bytes Lines)) . ":\r\n";
 my $LIST_HEADERS = join("\r\n", @OVERVIEW,
                         qw(:bytes :lines Xref To Cc)) . "\r\n";
+my $CAPABILITIES = <<"";
+101 Capability list:\r
+VERSION 2\r
+READER\r
+NEWNEWS\r
+LIST ACTIVE ACTIVE.TIMES NEWSGROUPS OVERVIEW.FMT\r
+HDR\r
+OVER\r
 
 my $EXPMAP; # fd -> [ idle_time, $self ]
 my $expt;
@@ -121,6 +129,17 @@ sub process_line ($$) {
         res($self, $res);
 }
 
+# The keyword argument is not used (rfc3977 5.2.2)
+sub cmd_capabilities ($;$) {
+        my ($self, undef) = @_;
+        my $res = $CAPABILITIES;
+        if (ref($self->{sock}) ne 'IO::Socket::SSL' &&
+                        $self->{nntpd}->{accept_tls}) {
+                $res .= "STARTTLS\r\n";
+        }
+        $res .= '.';
+}
+
 sub cmd_mode ($$) {
         my ($self, $arg) = @_;
         $arg = uc $arg;