]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/HTTP.pm
tmpfile: give temporary files meaningful names
[public-inbox.git] / lib / PublicInbox / HTTP.pm
index 5afe167e7578f140fb568373864d1e30d58c985d..b43ef8701c615ac3e86e9b56d8e960ba952e5d80 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2018 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2019 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 #
 # Generic PSGI server for convenience.  It aims to provide
@@ -21,6 +21,7 @@ use IO::Handle;
 require PublicInbox::EvCleanup;
 use PublicInbox::DS qw(msg_more);
 use PublicInbox::Syscall qw(EPOLLIN EPOLLONESHOT);
+use PublicInbox::Tmpfile;
 use constant {
        CHUNK_START => -1,   # [a-f0-9]+\r\n
        CHUNK_END => -2,     # \r\n
@@ -325,8 +326,9 @@ sub response_write {
 }
 
 sub input_tmpfile ($) {
-       open($_[0], '+>', undef);
-       $_[0]->autoflush(1);
+       my $input = tmpfile('http.input', $_[0]->{sock}) or return;
+       $input->autoflush(1);
+       $input;
 }
 
 sub input_prepare {
@@ -338,10 +340,10 @@ sub input_prepare {
                        quit($self, 413);
                        return;
                }
-               input_tmpfile($input);
+               $input = input_tmpfile($self);
        } elsif (env_chunked($env)) {
                $len = CHUNK_START;
-               input_tmpfile($input);
+               $input = input_tmpfile($self);
        } else {
                $input = $null_io;
        }