aboutsummaryrefslogtreecommitdiff
path: root/src/slave
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2015-04-08 17:23:25 -0400
committerGreg Hudson <ghudson@mit.edu>2015-04-13 17:48:03 -0400
commitc19fee0a748dd26ba6ac62118cf4b9ebec36ba2f (patch)
tree5992fadff4cf827057289df84bb81ed6d2d6604d /src/slave
parent2098124705cdc7abd5321e1dee32dc843547eab3 (diff)
downloadkrb5-c19fee0a748dd26ba6ac62118cf4b9ebec36ba2f.zip
krb5-c19fee0a748dd26ba6ac62118cf4b9ebec36ba2f.tar.gz
krb5-c19fee0a748dd26ba6ac62118cf4b9ebec36ba2f.tar.bz2
In kpropd, poll after finishing resync
When kpropd operates in iprop mode, full resyncs are handled by a child process. After a full resync, we want to poll for incremental updates, as the dump we received may have come from a pre-existing dump file which was not current. To make this polling happen promptly, signal the parent process from the child process after a dump is received. With this change, t_iprop.py no longer has to prod kpropd after a full resync occurs, so remove that logic. ticket: 8161
Diffstat (limited to 'src/slave')
-rw-r--r--src/slave/kpropd.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c
index 18a8e1d..1bac58e 100644
--- a/src/slave/kpropd.c
+++ b/src/slave/kpropd.c
@@ -298,7 +298,7 @@ main(int argc, char **argv)
/*
* This is the iprop case. We'll fork a child to run do_standalone(). The
* parent will run do_iprop(). We try to kill the child if we get killed.
- * Catch SIGUSR1 so tests can use it to interrupt the sleep timer and force
+ * Catch SIGUSR1, which can be used to interrupt the sleep timer and force
* an iprop request.
*/
signal_wrapper(SIGHUP, kill_do_standalone);
@@ -440,6 +440,10 @@ do_standalone()
close(s);
+ /* If we are the fullprop child in iprop mode, notify the parent
+ * process that it should poll for incremental updates. */
+ if (fullprop_child == 0)
+ kill(getppid(), SIGUSR1);
if (runonce)
exit(0);
}