diff options
Diffstat (limited to 'src/sssd/LMI_SSSDServiceProvider.c')
-rw-r--r-- | src/sssd/LMI_SSSDServiceProvider.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/sssd/LMI_SSSDServiceProvider.c b/src/sssd/LMI_SSSDServiceProvider.c index d79647e..47836ab 100644 --- a/src/sssd/LMI_SSSDServiceProvider.c +++ b/src/sssd/LMI_SSSDServiceProvider.c @@ -1,10 +1,12 @@ #include <konkret/konkret.h> #include "LMI_SSSDService.h" +#include "utils.h" static const CMPIBroker* _cb = NULL; -static void LMI_SSSDServiceInitialize() +static void LMI_SSSDServiceInitialize(const CMPIContext *ctx) { + lmi_init(PROVIDER_NAME, _cb, ctx, NULL); } static CMPIStatus LMI_SSSDServiceCleanup( @@ -32,6 +34,26 @@ static CMPIStatus LMI_SSSDServiceEnumInstances( const CMPIObjectPath* cop, const char** properties) { + LMI_SSSDService lmi_sssd; + const char *namespace = KNameSpace(cop); + const char *hostname = lmi_get_system_name(); + + /* LMI_SSSDService is a singleton. */ + + LMI_SSSDService_Init(&lmi_sssd, _cb, namespace); + LMI_SSSDService_Set_Name(&lmi_sssd, SERVICE_NAME); + LMI_SSSDService_Set_SystemName(&lmi_sssd, hostname); + LMI_SSSDService_Set_CreationClassName(&lmi_sssd, LMI_SSSDService_ClassName); + LMI_SSSDService_Set_SystemCreationClassName(&lmi_sssd, + lmi_get_system_creation_class_name()); + + LMI_SSSDService_Set_Caption(&lmi_sssd, SERVICE_NAME); + LMI_SSSDService_Set_Description(&lmi_sssd, + "System Security Services Daemon"); + LMI_SSSDService_Set_ElementName(&lmi_sssd, SERVICE_NAME); + + KReturnInstance(cr, lmi_sssd); + CMReturn(CMPI_RC_OK); } @@ -91,7 +113,7 @@ CMInstanceMIStub( LMI_SSSDService, LMI_SSSDService, _cb, - LMI_SSSDServiceInitialize()) + LMI_SSSDServiceInitialize(ctx)) static CMPIStatus LMI_SSSDServiceMethodCleanup( CMPIMethodMI* mi, @@ -118,7 +140,7 @@ CMMethodMIStub( LMI_SSSDService, LMI_SSSDService, _cb, - LMI_SSSDServiceInitialize()) + LMI_SSSDServiceInitialize(ctx)) KUint32 LMI_SSSDService_RequestStateChange( const CMPIBroker* cb, |