about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-09-19 02:03:36 +0000
committerEric Wong <e@80x24.org>2015-09-19 04:18:42 +0000
commit2d203f4a212d9b1401bddc861472a67dc2a2aef7 (patch)
treea1ee0bebf5cbbf7ca527fb353b3b09a4c32b7185 /lib
parentd4353d8104eb51a61a3e771faed42b56246ba56d (diff)
downloadpublic-inbox-2d203f4a212d9b1401bddc861472a67dc2a2aef7.tar.gz
This may be helpful for sorting out duplicates.
Diffstat (limited to 'lib')
-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");