From d66944d34d4969c2ba1ed1495e2dda91af665156 Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Fri, 21 May 2010 11:09:11 +0200 Subject: Remove signal event if child was terminated by a signal --- src/providers/ipa/ipa_dyndns.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/providers/ipa/ipa_dyndns.c') 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); } -- cgit