[PATCH 1/4] delayer: Code cleanup
Christoph Biedl <[email protected]> Mon, 15 Jan 2024 18:00:00 +0100
| Newsgroups | gmane.network.inn |
|---|---|
| Message-ID | <[email protected]> |
* Enable strict and warnings, and declare variables. * Use safe pipe open. * Drop $eof, it's not used. --- contrib/delayer.in | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/contrib/delayer.in b/contrib/delayer.in index abef0d4e2..5febfc04d 100644 --- a/contrib/delayer.in +++ b/contrib/delayer.in @@ -15,31 +15,33 @@ # done by christian mock <[email protected]> sometime in july 1998, # and put into the public domain. # -$delay = shift || die "usage: $0 delay prog-n-args\n"; -$timeout = $delay; -$eof = 0; +use strict; +use warnings; -open(OUT, "|" . join(" ", @ARGV)) || die "open |prog-n-args: $!\n"; +my $delay = shift || die "usage: $0 delay prog-n-args\n"; + +my $timeout = $delay; + +open(OUT, "|-", @ARGV) || die "open |prog-n-args: $!\n"; #select(OUT); #$| = 1; #select(STDOUT); -$rin = ''; +my $rin = ''; +my $rout; vec($rin, fileno(STDIN), 1) = 1; -while (!$eof || $#queue >= 0) { - if (!$eof) { - ($nfound, $timeleft) = select($rout = $rin, undef, undef, $timeout); - } else { - sleep($timeout); - } - $now = time(); - $exp = $now + $delay; +my @queue; - if (!$eof && vec($rout, fileno(STDIN), 1)) { - $line = <STDIN>; +while (1) { + my ($nfound, $timeleft) = select($rout = $rin, undef, undef, $timeout); + my $now = time(); + my $exp = $now + $delay; + + if (vec($rout, fileno(STDIN), 1)) { + my $line = <STDIN>; if (!defined $line) { # exit NOW! foreach (@queue) { s/^[^:]+://g; @@ -57,13 +59,11 @@ while (!$eof || $#queue >= 0) { next; } - ($first, $line) = split(/:/, $queue[0], 2); + my ($first, $line) = split(/:/, $queue[0], 2); while ($#queue >= 0 && $first <= $now) { print OUT $line; shift(@queue); ($first, $line) = split(/:/, $queue[0], 2); } $timeout = $first - $now; - } - -- 2.39.2 -- inn-workers mailing list [email protected] https://lists.isc.org/mailman/listinfo/inn-workers