From b4cafb696bf10d46c4b26d4b4a1da15e5292eb9f Mon Sep 17 00:00:00 2001 From: Radek Novacek Date: Thu, 26 Jul 2012 10:29:55 +0200 Subject: service: Better error handling in provider --- src/service/Linux_ServiceProvider.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/service/Linux_ServiceProvider.c b/src/service/Linux_ServiceProvider.c index 7cbf54b..a0c8ccc 100644 --- a/src/service/Linux_ServiceProvider.c +++ b/src/service/Linux_ServiceProvider.c @@ -53,19 +53,18 @@ static CMPIStatus Linux_ServiceEnumInstances( CMPIStatus st; CMPIEnumeration* e; if (!(e = _cb->bft->enumerateInstanceNames(_cb, cc, cop, &st))) { - KReturn(ERR_FAILED); + KReturn2(_cb, ERR_FAILED, "Unable to enumerate instances of Linux_Service"); } CMPIData cd; while (CMHasNext(e, &st)) { cd = CMGetNext(e, &st); if (st.rc || cd.type != CMPI_ref) { - KReturn(ERR_FAILED); + KReturn2(_cb, ERR_FAILED, "Enumerate instances didn't returned list of references"); } - CMPIInstance *in = _cb->bft->getInstance(_cb, cc, cd.value.ref, properties, &st); if (st.rc) { - KReturn(ERR_FAILED); + KReturn2(_cb, ERR_FAILED, "Unable to get instance of Linux_Service"); } cr->ft->returnInstance(cr, in); } @@ -101,8 +100,11 @@ static CMPIStatus Linux_ServiceGetInstance( } KReturnInstance(cr, w); + Service_End_Enum(enumhdl); + KReturn(OK); + } else { + KReturn(ERR_NOT_FOUND); } - KReturn(OK); } static CMPIStatus Linux_ServiceCreateInstance( -- cgit