summaryrefslogtreecommitdiff
path: root/omapip/dispatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'omapip/dispatch.c')
-rw-r--r--omapip/dispatch.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/omapip/dispatch.c b/omapip/dispatch.c
index ee402aed..2701d7b9 100644
--- a/omapip/dispatch.c
+++ b/omapip/dispatch.c
@@ -206,8 +206,9 @@ isc_result_t omapi_wait_for_completion (omapi_object_t *object,
if (waiter -> inner)
omapi_object_dereference (&waiter -> inner, MDL);
+ status = waiter -> waitstatus;
omapi_waiter_dereference (&waiter, MDL);
- return ISC_R_SUCCESS;
+ return status;;
}
isc_result_t omapi_one_dispatch (omapi_object_t *wo,
@@ -510,6 +511,14 @@ isc_result_t omapi_waiter_signal_handler (omapi_object_t *h,
if (!strcmp (name, "ready")) {
waiter = (omapi_waiter_object_t *)h;
waiter -> ready = 1;
+ waiter -> waitstatus = ISC_R_SUCCESS;
+ return ISC_R_SUCCESS;
+ }
+
+ if (!strcmp (name, "status")) {
+ waiter = (omapi_waiter_object_t *)h;
+ waiter -> ready = 1;
+ waiter -> waitstatus = va_arg (ap, isc_result_t);
return ISC_R_SUCCESS;
}