--- smtpprox Thu Mar 1 21:37:46 2001
+++ smtpprox-solaris251 Fri Mar 9 18:55:30 2001
@@ -16,6 +16,8 @@
use lib '.';
use MSDW::SMTP::Server;
use MSDW::SMTP::Client;
+use IPC::SysV qw(IPC_PRIVATE S_IRWXU IPC_CREAT SEM_UNDO);
+use IPC::Semaphore;
=head1 NAME
@@ -104,6 +106,9 @@
my $server = MSDW::SMTP::Server->new(interface => $srcaddr, port => $srcport);
+my $sem = IPC::Semaphore->new(IPC_PRIVATE, 1, S_IRWXU | IPC_CREAT) || die;
+$sem->setall(1) or die "Semaphore create failed\n";
+
# This should allow a kill on the parent to also blow away the
# children, I hope
my %children;
@@ -141,7 +146,9 @@
}
while (1) {
+ $sem->op(0, -1,SEM_UNDO) or die;
$server->accept(%opts);
+ $sem->op(0, 1, SEM_UNDO) or die;
my $client = MSDW::SMTP::Client->new(interface => $dstaddr, port => $dstport);
my $banner = $client->hear;
$banner = "$debugtrace.$$" if defined $d