periodic: fix anticongestion for scripts run after security
Revision 316342, which introduced the anticongestion feature, failed to consider that the periodic scripts are executed by a recursive invocation of periodic. The recursive invocation wrongly cleaned up a temporary file that should've been cleaned up only by the original invocation. The result is that if the first script that requests an anticongestion sleep runs after the security scripts, the sleep won't happen. Fix this bug by delaying cleanup until the end of the original invocation. PR: 236564 Submitted by: Yasuhiro KIMURA <yasu@utahime.org> Reviewed by: imp MFC after: 1 month
This commit is contained in:
parent
7384206a94
commit
a9ff79e3bb
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=351192
@ -78,6 +78,11 @@ arg=$1
|
|||||||
|
|
||||||
if [ -z "$PERIODIC_ANTICONGESTION_FILE" ] ; then
|
if [ -z "$PERIODIC_ANTICONGESTION_FILE" ] ; then
|
||||||
export PERIODIC_ANTICONGESTION_FILE=`mktemp ${TMPDIR:-/tmp}/periodic.anticongestion.XXXXXXXXXX`
|
export PERIODIC_ANTICONGESTION_FILE=`mktemp ${TMPDIR:-/tmp}/periodic.anticongestion.XXXXXXXXXX`
|
||||||
|
remove_periodic_anticongestion_file=yes
|
||||||
|
else
|
||||||
|
# We might be in a recursive invocation; let the top-level invocation
|
||||||
|
# remove the file.
|
||||||
|
remove_periodic_anticongestion_file=no
|
||||||
fi
|
fi
|
||||||
if tty > /dev/null 2>&1; then
|
if tty > /dev/null 2>&1; then
|
||||||
export PERIODIC_IS_INTERACTIVE=1
|
export PERIODIC_IS_INTERACTIVE=1
|
||||||
@ -147,4 +152,6 @@ esac
|
|||||||
} | output_pipe $arg "$context"
|
} | output_pipe $arg "$context"
|
||||||
|
|
||||||
rm -f $tmp_output
|
rm -f $tmp_output
|
||||||
rm -f $PERIODIC_ANTICONGESTION_FILE
|
if [ $remove_periodic_anticongestion_file = "yes" ] ; then
|
||||||
|
rm -f $PERIODIC_ANTICONGESTION_FILE
|
||||||
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user