# HG changeset patch # User Matthias Förste foerste@schlittermann.de # Date 1313409212 -7200 # Node ID 1c208b4d0a79b747583612c4590add92ba1e107d # Parent 46636ca4f3b0e9a3015c9268dc0573a1023b4ca4 catch term signal even if no packet matching the filter arrives diff -r 46636ca4f3b0 -r 1c208b4d0a79 dns-autoslave --- a/dns-autoslave Fri Aug 12 15:13:51 2011 +0200 +++ b/dns-autoslave Mon Aug 15 13:53:32 2011 +0200 @@ -8,6 +8,7 @@ use Net::DNS::Packet; use Fcntl ":flock"; use AppConfig; +use POSIX qw(SIGTERM); # Es kommen Zeilen # add slave domain.com @@ -78,10 +79,14 @@ exit 0; } - $SIG{TERM} = sub { warn "Exit.\n"; unlink $Cf->pid; exit 0; }; + POSIX::sigaction(SIGTERM, POSIX::SigAction->new(sub { Net::Pcap::breakloop($pcap); } )) + or die "Error setting SIGTERM Handler: $!\n"; close(STDIN); close(STDOUT); close(STDERR); close(PID); $0 = ME." [capturing]"; Net::Pcap::loop($pcap, -1, \&process, undef); + warn "Exit.\n"; + unlink $Cf->pid; + exit 0; }