diff options
author | Greg Hudson <ghudson@mit.edu> | 2015-04-08 17:23:25 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2015-04-13 17:48:03 -0400 |
commit | c19fee0a748dd26ba6ac62118cf4b9ebec36ba2f (patch) | |
tree | 5992fadff4cf827057289df84bb81ed6d2d6604d /src/slave | |
parent | 2098124705cdc7abd5321e1dee32dc843547eab3 (diff) | |
download | krb5-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.c | 6 |
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); } |