2013-07-22 19:04:27 +02:00
|
|
|
--- httpd-2.4.6.orig/support/logresolve.pl.in
|
|
|
|
+++ httpd-2.4.6/support/logresolve.pl.in
|
|
|
|
@@ -57,6 +57,7 @@ $|=1;
|
2008-09-24 14:59:24 +02:00
|
|
|
|
|
|
|
use FileHandle;
|
|
|
|
use Socket;
|
|
|
|
+use File::Temp;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
no strict 'refs';
|
2013-07-22 19:04:27 +02:00
|
|
|
@@ -71,11 +72,13 @@ my $filename;
|
2008-09-24 14:59:24 +02:00
|
|
|
my %hash = ();
|
|
|
|
my $parent = $$;
|
|
|
|
|
|
|
|
+my $tempdir = File::Temp::tempdir("logresolve.pl2.sockets.XXXXXX", CLEANUP => 1);
|
|
|
|
+
|
|
|
|
my @children = ();
|
|
|
|
for (my $child = 1; $child <=$CHILDREN; $child++) {
|
|
|
|
my $f = fork();
|
|
|
|
if (!$f) {
|
|
|
|
- $filename = "./.socket.$parent.$child";
|
|
|
|
+ $filename = "$tempdir/socket.$parent.$child";
|
|
|
|
if (-e $filename) { unlink($filename) || warn "$filename .. $!\n";}
|
|
|
|
&child($child);
|
|
|
|
exit(0);
|
2013-07-22 19:04:27 +02:00
|
|
|
@@ -91,9 +94,9 @@ sub cleanup {
|
2008-09-24 14:59:24 +02:00
|
|
|
# die kiddies, die
|
|
|
|
kill(15, @children);
|
|
|
|
for (my $child = 1; $child <=$CHILDREN; $child++) {
|
|
|
|
- if (-e "./.socket.$parent.$child") {
|
|
|
|
- unlink("./.socket.$parent.$child")
|
|
|
|
- || warn ".socket.$parent.$child $!";
|
|
|
|
+ if (-e "$tempdir/socket.$parent.$child") {
|
|
|
|
+ unlink("$tempdir/socket.$parent.$child")
|
|
|
|
+ || warn "$tempdir/socket.$parent.$child $!";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2013-07-22 19:04:27 +02:00
|
|
|
@@ -113,7 +116,7 @@ sub parent {
|
2008-09-24 14:59:24 +02:00
|
|
|
if (!socket($CHILDSOCK{$child}, AF_UNIX, SOCK_STREAM, $PROTOCOL)) {
|
|
|
|
warn "parent socket to child failed $!";
|
|
|
|
}
|
|
|
|
- $filename = "./.socket.$parent.$child";
|
|
|
|
+ $filename = "$tempdir/socket.$parent.$child";
|
|
|
|
my $response;
|
|
|
|
do {
|
|
|
|
$response = connect($CHILDSOCK{$child}, sockaddr_un($filename));
|
2013-07-22 19:04:27 +02:00
|
|
|
@@ -176,7 +179,7 @@ sub child {
|
2008-09-24 14:59:24 +02:00
|
|
|
# create a socket to communicate with parent
|
|
|
|
socket(INBOUND, AF_UNIX, SOCK_STREAM, $PROTOCOL)
|
|
|
|
|| die "Error with Socket: !$\n";
|
|
|
|
- $filename = "./.socket.$parent.$me";
|
|
|
|
+ $filename = "$tempdir/socket.$parent.$me";
|
|
|
|
bind(INBOUND, sockaddr_un($filename))
|
|
|
|
|| die "Error Binding $filename: $!\n";
|
|
|
|
listen(INBOUND, 5) || die "Error Listening: $!\n";
|