[Greylist-users] is alarm() thread-safe?
Fletcher Mattox
fletcher at cs.utexas.edu
Thu Jun 24 22:37:07 PDT 2004
Hi,
Someone recently suggested auto whitelisting peers which have a server
listening on port 25. This seemed like a good idea to me, so I wrote
some code to do it. In envrcpt_callback(), I have something like this:
my $ret = 0;
eval {
alarm 1;
$ret = &connect_to_server($server); # does a connect()
alarm 0;
};
and I have set a handler in the startup code like this:
$SIG{ALRM} = sub { die "timeout" };
This mostly works, but perl occasionally segfaults in the signal handler
called from libthread. Does this mean alarm() is not thread-safe?
If so, how can I timeout the connect() to my smtp peer?
I'm using perl 5.8.4 with sendmail 8.13.0 on Solaris 9.
Thanks
Fletcher
More information about the Greylist-users
mailing list