From 62517f0d9de6152e0e888a39d1d31ab6e835c1b1 Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Wed, 8 Jan 2014 11:37:41 +0100 Subject: Implement LMI_SSSD::GetSupportedServices() --- src/sssd/LMI_SSSDProvider.c | 156 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 src/sssd/LMI_SSSDProvider.c diff --git a/src/sssd/LMI_SSSDProvider.c b/src/sssd/LMI_SSSDProvider.c new file mode 100644 index 0000000..aa9dcb3 --- /dev/null +++ b/src/sssd/LMI_SSSDProvider.c @@ -0,0 +1,156 @@ +#include +#include "LMI_SSSD.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_SSSDInitialize() +{ +} + +static CMPIStatus LMI_SSSDCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SSSDEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_SSSDEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SSSDGetInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + return KDefaultGetInstance( + _cb, mi, cc, cr, cop, properties); +} + +static CMPIStatus LMI_SSSDCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SSSDModifyInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci, + const char** properties) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SSSDDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SSSDExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +CMInstanceMIStub( + LMI_SSSD, + LMI_SSSD, + _cb, + LMI_SSSDInitialize()) + +static CMPIStatus LMI_SSSDMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SSSDInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_SSSD_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_SSSD, + LMI_SSSD, + _cb, + LMI_SSSDInitialize()) + +KUint32 LMI_SSSD_GetSupportedServices( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + KStringA* services, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + CMPIBoolean bret; + + bret = KStringA_Init(services, cb, 6); + if (!bret) { + KSetStatus(status, ERR_FAILED); + KUint32_Set(&result, 1); + return result; + } + + KStringA_Set(services, cb, 0, "nss"); + KStringA_Set(services, cb, 1, "pam"); + KStringA_Set(services, cb, 2, "sudo"); + KStringA_Set(services, cb, 3, "autofs"); + KStringA_Set(services, cb, 4, "ssh"); + KStringA_Set(services, cb, 5, "pac"); + + KSetStatus(status, OK); + KUint32_Set(&result, 0); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_SSSD", + "LMI_SSSD", + "instance method"); -- cgit