about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/NNTP.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 939fc3a6..094d26df 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -653,6 +653,19 @@ sub cmd_xover ($;$) {
         });
 }
 
+sub cmd_xpath ($$) {
+        my ($self, $mid) = @_;
+        return r501 unless $mid =~ /\A<(.+)>\z/;
+        $mid = $1;
+        my @paths;
+        foreach my $ng (values %{$self->{nntpd}->{groups}}) {
+                my $n = $ng->mm->num_for($mid);
+                push @paths, "$ng->{name}/$n" if defined $n;
+        }
+        return '430 no such article on server' unless @paths;
+        '223 '.join(' ', @paths);
+}
+
 sub res ($$) {
         my ($self, $line) = @_;
         do_write($self, $line . "\r\n");