about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiXSearch.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-05-28 09:45:20 +0000
committerEric Wong <e@80x24.org>2021-05-28 18:28:05 +0000
commit74b5dc0569db5adb4cc931ce3c3b1b50507eb31d (patch)
tree517e3e6e920e73dcdd942e3df34bf958bc104d83 /lib/PublicInbox/LeiXSearch.pm
parent6778614fc11224b6b472a3830543c0f6635193f8 (diff)
downloadpublic-inbox-74b5dc0569db5adb4cc931ce3c3b1b50507eb31d.tar.gz
Every tick of the event loop can change the working directory,
so we need to restore it for every client if they operate
in different directories.

This would be easier if we had openat(2) and friends in Perl;
but Inline::C is practically required for lei, now.
Diffstat (limited to 'lib/PublicInbox/LeiXSearch.pm')
-rw-r--r--lib/PublicInbox/LeiXSearch.pm1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index e2a8e8e3..760f9718 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -394,6 +394,7 @@ Error closing $lei->{ovv}->{dst}: $!
 sub do_post_augment {
         my ($lei) = @_;
         my $l2m = $lei->{l2m} or return; # client disconnected
+        $lei->fchdir or return;
         my $err;
         eval { $l2m->post_augment($lei) };
         $err = $@;