From 72f6010fc7dd68ea2ecd9431f906d077a7c20181 Mon Sep 17 00:00:00 2001 From: Jan Synacek Date: Thu, 14 Feb 2013 16:26:20 +0100 Subject: LogicalFile: support deleting directories --- src/logicalfile/LMI_UnixDirectoryProvider.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/logicalfile') diff --git a/src/logicalfile/LMI_UnixDirectoryProvider.c b/src/logicalfile/LMI_UnixDirectoryProvider.c index d70aae7..47d095a 100644 --- a/src/logicalfile/LMI_UnixDirectoryProvider.c +++ b/src/logicalfile/LMI_UnixDirectoryProvider.c @@ -17,6 +17,8 @@ * * Authors: Jan Synacek */ +#include +#include #include #include "LMI_UnixDirectory.h" #include "file.h" @@ -81,7 +83,7 @@ static CMPIStatus LMI_UnixDirectoryCreateInstance( if (mkdir(path, 0777) < 0) { char errmsg[BUFLEN]; - snprintf(errmsg, BUFLEN, "Can't mkdir: %s", path); + snprintf(errmsg, BUFLEN, "Can't mkdir: %s (%s)", path, strerror(errno)); CMReturnWithChars(_cb, CMPI_RC_ERR_FAILED, errmsg); } @@ -105,7 +107,17 @@ static CMPIStatus LMI_UnixDirectoryDeleteInstance( const CMPIResult* cr, const CMPIObjectPath* cop) { - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); + CMPIStatus st; + CMPIData pathd = CMGetKey(cop, "Name", &st); + const char *path = KChars(pathd.value.string); + + if (rmdir(path) < 0) { + char errmsg[BUFLEN]; + snprintf(errmsg, BUFLEN, "Can't mkdir: %s (%s)", path, strerror(errno)); + CMReturnWithChars(_cb, CMPI_RC_ERR_FAILED, errmsg); + } + + CMReturn(CMPI_RC_OK); } static CMPIStatus LMI_UnixDirectoryExecQuery( -- cgit