summaryrefslogtreecommitdiffstats
path: root/src/sssd/LMI_SSSDProviderProvider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sssd/LMI_SSSDProviderProvider.c')
-rw-r--r--src/sssd/LMI_SSSDProviderProvider.c39
1 files changed, 31 insertions, 8 deletions
diff --git a/src/sssd/LMI_SSSDProviderProvider.c b/src/sssd/LMI_SSSDProviderProvider.c
index 29397a2..57d738b 100644
--- a/src/sssd/LMI_SSSDProviderProvider.c
+++ b/src/sssd/LMI_SSSDProviderProvider.c
@@ -1,11 +1,13 @@
#include <konkret/konkret.h>
#include "LMI_SSSDProvider.h"
+#include "utils.h"
static const CMPIBroker* _cb = NULL;
-static void LMI_SSSDProviderInitialize()
-{
-}
+static void LMI_SSSDProviderInitialize(const CMPIContext *ctx)
+ {
+ lmi_init(PROVIDER_NAME, _cb, ctx, NULL);
+ }
static CMPIStatus LMI_SSSDProviderCleanup(
CMPIInstanceMI* mi,
@@ -32,7 +34,9 @@ static CMPIStatus LMI_SSSDProviderEnumInstances(
const CMPIObjectPath* cop,
const char** properties)
{
- CMReturn(CMPI_RC_OK);
+ /* no instances to enumerate */
+
+ CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
}
static CMPIStatus LMI_SSSDProviderGetInstance(
@@ -42,8 +46,27 @@ static CMPIStatus LMI_SSSDProviderGetInstance(
const CMPIObjectPath* cop,
const char** properties)
{
- return KDefaultGetInstance(
- _cb, mi, cc, cr, cop, properties);
+ const char *namespace = KNameSpace(cop);
+ LMI_SSSDProvider instance;
+ LMI_SSSDProviderRef ref;
+ CMPIStatus ret;
+
+ ret = LMI_SSSDProviderRef_InitFromObjectPath(&ref, _cb, cop);
+ if (!KOkay(ret)) {
+ return ret;
+ }
+
+ LMI_SSSDProvider_Init(&instance, _cb, namespace);
+ LMI_SSSDProvider_Set_Type(&instance, ref.Type.chars);
+ LMI_SSSDProvider_Set_Module(&instance, ref.Module.chars);
+
+ LMI_SSSDProvider_Set_Caption(&instance, "SSSD Provider Module");
+ LMI_SSSDProvider_Set_Description(&instance, "SSSD Provider Module");
+ LMI_SSSDProvider_Set_ElementName(&instance, ref.Type.chars);
+
+ KReturnInstance(cr, instance);
+
+ CMReturn(CMPI_RC_OK);
}
static CMPIStatus LMI_SSSDProviderCreateInstance(
@@ -91,7 +114,7 @@ CMInstanceMIStub(
LMI_SSSDProvider,
LMI_SSSDProvider,
_cb,
- LMI_SSSDProviderInitialize())
+ LMI_SSSDProviderInitialize(ctx))
static CMPIStatus LMI_SSSDProviderMethodCleanup(
CMPIMethodMI* mi,
@@ -118,7 +141,7 @@ CMMethodMIStub(
LMI_SSSDProvider,
LMI_SSSDProvider,
_cb,
- LMI_SSSDProviderInitialize())
+ LMI_SSSDProviderInitialize(ctx))
KONKRET_REGISTRATION(
"root/cimv2",