summaryrefslogtreecommitdiffstats
path: root/src/providers/ipa
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2010-05-21 11:09:11 +0200
committerStephen Gallagher <sgallagh@redhat.com>2010-05-23 12:15:59 -0400
commit209e37c000d1a236263af6dc89ca63909d1b8a45 (patch)
tree212467d22a3d009ca1c606c71d471be5725aeecd /src/providers/ipa
parentf60b2658390f612fffce74f6916abf6b0854ea4e (diff)
downloadsssd-209e37c000d1a236263af6dc89ca63909d1b8a45.tar.gz
sssd-209e37c000d1a236263af6dc89ca63909d1b8a45.tar.xz
sssd-209e37c000d1a236263af6dc89ca63909d1b8a45.zip
Remove signal event if child was terminated by a signal
Diffstat (limited to 'src/providers/ipa')
-rw-r--r--src/providers/ipa/ipa_dyndns.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/providers/ipa/ipa_dyndns.c b/src/providers/ipa/ipa_dyndns.c
index b1edc194c..a86c69680 100644
--- a/src/providers/ipa/ipa_dyndns.c
+++ b/src/providers/ipa/ipa_dyndns.c
@@ -514,13 +514,20 @@ static void ipa_dyndns_child_handler(int child_status,
{
struct tevent_req *req = talloc_get_type(pvt, struct tevent_req);
- if (WEXITSTATUS(child_status) != 0) {
+ if (WIFEXITED(child_status) && WEXITSTATUS(child_status) != 0) {
DEBUG(1, ("Dynamic DNS child failed with status [%d]\n",
child_status));
tevent_req_error(req, EIO);
return;
}
+ if WIFSIGNALED(child_status) {
+ DEBUG(1, ("Dynamic DNS child was terminated by signal [%d]\n",
+ WTERMSIG(child_status)));
+ tevent_req_error(req, EIO);
+ return;
+ }
+
tevent_req_done(req);
}