chiark / gitweb /
prefork-interp: fixes and tests
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 11 Aug 2022 19:49:17 +0000 (20:49 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Aug 2022 20:21:10 +0000 (21:21 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
perl/Prefork.pm

index 4798563e3ab5ef3e196d8a387cb012c2f790c5ac..8de4aaf314d266b2583005d7ddcb4e7114a07d13 100644 (file)
@@ -5,8 +5,9 @@ our @ISA = qw(Exporter);
 our @EXPORT = qw(initialisation_complete);
 
 use Carp;
-use POSIX;
 use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
+use POSIX;
+use Sys::Syslog;
 
 our $logger;
 
@@ -23,7 +24,7 @@ sub server_quit ($) {
 
 # Returns in the executor process
 sub become_monitor () {
-  my $child = fork // fail("fork executor: $!");or 
+  my $child = fork // fail("fork executor: $!");
   if (!$child) {
     #---- executor ----
     open ::STDIN , "<& $call_fds[0]" or fail("dup for fd0");
@@ -115,8 +116,8 @@ sub initialisation_complete {
   foreach (@env_params) {
     $_ eq ($_+0) or croak "$env_name contains $_, not a number";
   }
-  open LISTEN, "<>&=$env_params[0]" or croak "listen fd: $!";
-  open CALL,   "<>&=$env_params[1]" or croak "listen fd: $!";
+  open LISTEN, "+>&=$env_params[0]" or croak "listen fd: $!";
+  open CALL,   "+>&=$env_params[1]" or croak "listen fd: $!";
   @call_fds = ($env_params[2], $env_params[3], 2);
 
   if (!$opts{no_openlog}) {
@@ -124,7 +125,7 @@ sub initialisation_complete {
            $opts{log_facility} // 'log_user');
   }
 
-  open NULL, "<>/dev/null" or croak "open /dev/null: $!";
+  open NULL, "+>/dev/null" or croak "open /dev/null: $!";
 
   #---- fork for server ----