--- 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