diff options
Diffstat (limited to 'src/logicalfile/LMI_SymbolicLinkProvider.c')
-rw-r--r-- | src/logicalfile/LMI_SymbolicLinkProvider.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/logicalfile/LMI_SymbolicLinkProvider.c b/src/logicalfile/LMI_SymbolicLinkProvider.c index c93c087..ea88a8b 100644 --- a/src/logicalfile/LMI_SymbolicLinkProvider.c +++ b/src/logicalfile/LMI_SymbolicLinkProvider.c @@ -25,6 +25,7 @@ static const CMPIBroker* _cb = NULL; static void LMI_SymbolicLinkInitialize() { + lmi_init(provider_name, _cb, provider_config_defaults); } static CMPIStatus LMI_SymbolicLinkCleanup( @@ -61,18 +62,18 @@ static CMPIStatus LMI_SymbolicLinkGetInstance( const CMPIObjectPath* cop, const char** properties) { - LMI_SymbolicLink lmi_file; - const char *path; - char rpath[PATH_MAX]; + CMPIStatus st = {.rc = CMPI_RC_OK}; + logicalfile_t logicalfile; - LMI_SymbolicLink_InitFromObjectPath(&lmi_file, _cb, cop); - path = KChars(lmi_file.Name.value); - fill_basic(SymbolicLink, path, S_IFLNK, "No such symlink: %s"); - realpath(path, rpath); - LMI_SymbolicLink_Set_TargetFile(&lmi_file, rpath); + st = lmi_check_required(_cb, cop); + check_status(st); - KReturnInstance(cr, lmi_file); - CMReturn(CMPI_RC_OK); + LMI_SymbolicLink_InitFromObjectPath(&logicalfile.lf.symboliclink, _cb, cop); + st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFLNK, "No such symlink: %s"); + check_status(st); + + KReturnInstance(cr, logicalfile.lf.symboliclink); + return st; } static CMPIStatus LMI_SymbolicLinkCreateInstance( @@ -155,3 +156,6 @@ KONKRET_REGISTRATION( "LMI_SymbolicLink", "instance method") /* vi: set et: */ +/* Local Variables: */ +/* indent-tabs-mode: nil */ +/* End: */ |