summaryrefslogtreecommitdiffstats
path: root/src/logicalfile
diff options
context:
space:
mode:
authorJan Synacek <jsynacek@redhat.com>2014-04-29 08:33:13 +0200
committerJan Synacek <jsynacek@redhat.com>2014-04-30 15:54:14 +0200
commit55f63d29f5d2b4e82979d71386df58394e87ef5a (patch)
tree34227f5696df9b3a85c5999d2fd48f50be82681f /src/logicalfile
parentdab89c6afb2a2b339ebadea3d47e841cd749b5ef (diff)
downloadopenlmi-providers-55f63d29f5d2b4e82979d71386df58394e87ef5a.tar.gz
openlmi-providers-55f63d29f5d2b4e82979d71386df58394e87ef5a.tar.xz
openlmi-providers-55f63d29f5d2b4e82979d71386df58394e87ef5a.zip
libopenlmi: reorganize and gather
Make naming consistent. Gather common functionality into one library and try to use it across all providers. Introduce libtool-style versioning for libraries.
Diffstat (limited to 'src/logicalfile')
-rw-r--r--src/logicalfile/CMakeLists.txt2
-rw-r--r--src/logicalfile/LMI_DataFileProvider.c4
-rw-r--r--src/logicalfile/LMI_DirectoryContainsFileProvider.c60
-rw-r--r--src/logicalfile/LMI_FIFOPipeFileProvider.c4
-rw-r--r--src/logicalfile/LMI_FileIdentityProvider.c48
-rw-r--r--src/logicalfile/LMI_RootDirectoryProvider.c40
-rw-r--r--src/logicalfile/LMI_SymbolicLinkProvider.c12
-rw-r--r--src/logicalfile/LMI_UnixDeviceFileProvider.c4
-rw-r--r--src/logicalfile/LMI_UnixDirectoryProvider.c12
-rw-r--r--src/logicalfile/LMI_UnixFileProvider.c2
-rw-r--r--src/logicalfile/LMI_UnixSocketProvider.c4
-rw-r--r--src/logicalfile/file.c89
-rw-r--r--src/logicalfile/file.h50
13 files changed, 106 insertions, 225 deletions
diff --git a/src/logicalfile/CMakeLists.txt b/src/logicalfile/CMakeLists.txt
index 3a09a4a..4e7e8fa 100644
--- a/src/logicalfile/CMakeLists.txt
+++ b/src/logicalfile/CMakeLists.txt
@@ -27,7 +27,7 @@ if(LIBSELINUX_FOUND EQUAL 1)
endif(LIBSELINUX_FOUND EQUAL 1)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMPI_INCLUDE_DIR})
-target_link_libraries(${LIBRARY_NAME} openlmicommon
+target_link_libraries(${LIBRARY_NAME} openlmi
${KONKRETCMPI_LIBRARIES}
${LIBUDEV_LIBRARIES}
${LIBSELINUX_LIBRARIES})
diff --git a/src/logicalfile/LMI_DataFileProvider.c b/src/logicalfile/LMI_DataFileProvider.c
index 6abf9a4..cef3219 100644
--- a/src/logicalfile/LMI_DataFileProvider.c
+++ b/src/logicalfile/LMI_DataFileProvider.c
@@ -66,11 +66,11 @@ static CMPIStatus LMI_DataFileGetInstance(
logicalfile_t logicalfile;
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_DataFile_InitFromObjectPath(&logicalfile.lf.datafile, _cb, cop);
st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFREG, "Not a regular file: %s");
- check_status(st);
+ lmi_check_status(st);
KReturnInstance(cr, logicalfile.lf.datafile);
return st;
diff --git a/src/logicalfile/LMI_DirectoryContainsFileProvider.c b/src/logicalfile/LMI_DirectoryContainsFileProvider.c
index 2033804..bcf6d14 100644
--- a/src/logicalfile/LMI_DirectoryContainsFileProvider.c
+++ b/src/logicalfile/LMI_DirectoryContainsFileProvider.c
@@ -51,17 +51,17 @@ static CMPIStatus logicalfile_objectpath_from_path(
CMReturnWithChars(_cb, CMPI_RC_ERR_NOT_FOUND, err);
} else {
get_class_from_stat(&sb, fileclass);
- st = check_assoc_class(_cb, namespace, resultClass, fileclass);
- if (st.rc == RC_ERR_CLASS_CHECK_FAILED) {
+ st = lmi_check_assoc_class(_cb, namespace, resultClass, fileclass);
+ if (st.rc == LMI_RC_ERR_CLASS_CHECK_FAILED) {
st.rc = CMPI_RC_OK;
*o = NULL;
return st;
}
/* check status again for other possible errors */
- check_status(st);
+ lmi_check_status(st);
st = get_fsinfo_from_stat(_cb, &sb, abspath, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
}
CIM_LogicalFileRef cim_lfr;
@@ -107,7 +107,7 @@ static CMPIStatus dir_file_objectpaths(
dirname = g_path_get_dirname(path);
st = logicalfile_objectpath_from_path(dirname, resultClass, namespace, &o);
g_free(dirname);
- check_status(st);
+ lmi_check_status(st);
if (o) {
ops[i++] = o;
}
@@ -160,24 +160,24 @@ static CMPIStatus associators(
int group = -1;
int rgroup = -1;
- st = check_assoc_class(_cb, ns, assocClass, LMI_DirectoryContainsFile_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, assocClass, LMI_DirectoryContainsFile_ClassName);
+ lmi_check_class_check_status(st);
/* role && resultRole checks */
if (role) {
- if (strcmp(role, GROUP_COMPONENT) != 0 && strcmp(role, PART_COMPONENT) != 0) {
+ if (strcmp(role, LMI_GROUP_COMPONENT) != 0 && strcmp(role, LMI_PART_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
- } else if (strcmp(role, GROUP_COMPONENT) == 0) {
+ } else if (strcmp(role, LMI_GROUP_COMPONENT) == 0) {
group = 1;
- } else if (strcmp(role, PART_COMPONENT) == 0) {
+ } else if (strcmp(role, LMI_PART_COMPONENT) == 0) {
group = 0;
}
}
if (resultRole) {
- if (strcmp(resultRole, GROUP_COMPONENT) != 0 && strcmp(resultRole, PART_COMPONENT) != 0) {
+ if (strcmp(resultRole, LMI_GROUP_COMPONENT) != 0 && strcmp(resultRole, LMI_PART_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
- } else if (strcmp(resultRole, GROUP_COMPONENT) == 0) {
+ } else if (strcmp(resultRole, LMI_GROUP_COMPONENT) == 0) {
rgroup = 1;
- } else if (strcmp(resultRole, PART_COMPONENT) == 0) {
+ } else if (strcmp(resultRole, LMI_PART_COMPONENT) == 0) {
rgroup = 0;
}
}
@@ -193,7 +193,7 @@ static CMPIStatus associators(
if (st.rc != CMPI_RC_OK) {
return st;
}
- path = get_string_property_from_op(cop, "Name");
+ path = lmi_get_string_property_from_objectpath(cop, "Name");
if (!path)
CMReturnWithChars(_cb, CMPI_RC_ERR_NOT_FOUND, "Cannot find Name property in provided LMI_UnixDirectory");
st = dir_file_objectpaths(cc, cr, resultClass, group, rgroup, properties, ns, path, refs, &count);
@@ -223,11 +223,11 @@ static CMPIStatus associators(
if (group == 1 || rgroup == 0) {
CMReturn(CMPI_RC_OK);
}
- path = get_string_property_from_op(cop, "Name");
+ path = lmi_get_string_property_from_objectpath(cop, "Name");
if (!path)
CMReturnWithChars(_cb, CMPI_RC_ERR_NOT_FOUND, "Cannot find Name property in provided CIM_logicalFile");
- st = check_assoc_class(_cb, ns, resultClass, LMI_UnixDirectory_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, resultClass, LMI_UnixDirectory_ClassName);
+ lmi_check_class_check_status(st);
CIM_DirectoryRef lmi_dr;
CIM_DirectoryRef_Init(&lmi_dr, _cb, ns);
@@ -236,7 +236,7 @@ static CMPIStatus associators(
char *fsclassname = NULL;
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
gchar *dirname = g_path_get_dirname(path);
fill_logicalfile(CIM_DirectoryRef, &lmi_dr, dirname, fsclassname, fsname, LMI_UnixDirectory_ClassName);
@@ -283,14 +283,14 @@ static CMPIStatus references(
CMPIInstance *ci;
int group = -1;
- st = check_assoc_class(_cb, ns, assocClass, LMI_DirectoryContainsFile_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, assocClass, LMI_DirectoryContainsFile_ClassName);
+ lmi_check_class_check_status(st);
if (role) {
- if (strcmp(role, GROUP_COMPONENT) != 0 && strcmp(role, PART_COMPONENT) != 0) {
+ if (strcmp(role, LMI_GROUP_COMPONENT) != 0 && strcmp(role, LMI_PART_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
- } else if (strcmp(role, GROUP_COMPONENT) == 0) {
+ } else if (strcmp(role, LMI_GROUP_COMPONENT) == 0) {
group = 1;
- } else if (strcmp(role, PART_COMPONENT) == 0) {
+ } else if (strcmp(role, LMI_PART_COMPONENT) == 0) {
group = 0;
}
}
@@ -302,12 +302,12 @@ static CMPIStatus references(
if (CMClassPathIsA(_cb, cop, LMI_UnixDirectory_ClassName, &st)) {
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
- path = get_string_property_from_op(cop, "Name");
+ lmi_check_status(st);
+ path = lmi_get_string_property_from_objectpath(cop, "Name");
if (!path)
CMReturnWithChars(_cb, CMPI_RC_ERR_NOT_FOUND, "Cannot find Name property in provided LMI_UnixDirectory");
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
/* got GroupComponent - DirectoryRef */
fill_logicalfile(CIM_DirectoryRef, &lmi_dr, path, fsclassname, fsname, LMI_UnixDirectory_ClassName);
o = CIM_DirectoryRef_ToObjectPath(&lmi_dr, &st);
@@ -318,7 +318,7 @@ static CMPIStatus references(
CMPIObjectPath *refs[MAX_REFS];
unsigned int count = 0;
st = dir_file_objectpaths(cc, cr, NULL, group, -1, properties, ns, path, refs, &count);
- check_status(st);
+ lmi_check_status(st);
if (count > MAX_REFS) {
CMReturnWithChars(_cb, CMPI_RC_ERR_NOT_FOUND, "Too many files in a single directory...");
}
@@ -336,13 +336,13 @@ static CMPIStatus references(
}
} else if (CMClassPathIsA(_cb, cop, CIM_LogicalFile_ClassName, &st)) {
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
- path = get_string_property_from_op(cop, "Name");
+ lmi_check_status(st);
+ path = lmi_get_string_property_from_objectpath(cop, "Name");
if (!path)
CMReturnWithChars(_cb, CMPI_RC_ERR_NOT_FOUND, "Cannot find Name property in provided CIM_LogicalFile");
get_class_from_path(path, ccname);
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
/* got PartComponent - LogicalFileRef */
if (group == 1) {
CMReturn(CMPI_RC_OK);
diff --git a/src/logicalfile/LMI_FIFOPipeFileProvider.c b/src/logicalfile/LMI_FIFOPipeFileProvider.c
index 49062bd..1330f56 100644
--- a/src/logicalfile/LMI_FIFOPipeFileProvider.c
+++ b/src/logicalfile/LMI_FIFOPipeFileProvider.c
@@ -66,11 +66,11 @@ static CMPIStatus LMI_FIFOPipeFileGetInstance(
logicalfile_t logicalfile;
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_FIFOPipeFile_InitFromObjectPath(&logicalfile.lf.fifopipefile, _cb, cop);
st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFIFO, "No such FIFO: %s");
- check_status(st);
+ lmi_check_status(st);
KReturnInstance(cr, logicalfile.lf.fifopipefile);
return st;
diff --git a/src/logicalfile/LMI_FileIdentityProvider.c b/src/logicalfile/LMI_FileIdentityProvider.c
index 82010b8..b1a8599 100644
--- a/src/logicalfile/LMI_FileIdentityProvider.c
+++ b/src/logicalfile/LMI_FileIdentityProvider.c
@@ -48,25 +48,25 @@ static CMPIStatus associators(
char *fsname = NULL;
char *fsclassname = NULL;
- st = check_assoc_class(_cb, ns, assocClass, LMI_FileIdentity_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, assocClass, LMI_FileIdentity_ClassName);
+ lmi_check_class_check_status(st);
if (CMClassPathIsA(_cb, cop, LMI_UnixFile_ClassName, &st)) {
/* got UnixFile - SameElement */
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
- path = get_string_property_from_op(cop, "LFName");
+ path = lmi_get_string_property_from_objectpath(cop, "LFName");
get_class_from_path(path, fileclass);
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
- st = check_assoc_class(_cb, ns, resultClass, fileclass);
- check_class_check_status(st);
- if (role && strcmp(role, SAME_ELEMENT) != 0) {
+ st = lmi_check_assoc_class(_cb, ns, resultClass, fileclass);
+ lmi_check_class_check_status(st);
+ if (role && strcmp(role, LMI_SAME_ELEMENT) != 0) {
CMReturn(CMPI_RC_OK);
}
- if (resultRole && strcmp(resultRole, SYSTEM_ELEMENT) != 0) {
+ if (resultRole && strcmp(resultRole, LMI_SYSTEM_ELEMENT) != 0) {
CMReturn(CMPI_RC_OK);
}
@@ -78,22 +78,22 @@ static CMPIStatus associators(
} else if (CMClassPathIsA(_cb, cop, CIM_LogicalFile_ClassName, &st)) {
/* got LogicalFile - SystemElement */
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
- path = get_string_property_from_op(cop, "Name");
+ path = lmi_get_string_property_from_objectpath(cop, "Name");
- st = check_assoc_class(_cb, ns, resultClass, LMI_UnixFile_ClassName);
- check_class_check_status(st);
- if (role && strcmp(role, SYSTEM_ELEMENT) != 0) {
+ st = lmi_check_assoc_class(_cb, ns, resultClass, LMI_UnixFile_ClassName);
+ lmi_check_class_check_status(st);
+ if (role && strcmp(role, LMI_SYSTEM_ELEMENT) != 0) {
CMReturn(CMPI_RC_OK);
}
- if (resultRole && strcmp(resultRole, SAME_ELEMENT) != 0) {
+ if (resultRole && strcmp(resultRole, LMI_SAME_ELEMENT) != 0) {
CMReturn(CMPI_RC_OK);
}
get_class_from_path(path, fileclass);
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
LMI_UnixFile lmi_uf;
LMI_UnixFile_Init(&lmi_uf, _cb, ns);
@@ -138,8 +138,8 @@ static CMPIStatus references(
char *fsname = NULL;
char *fsclassname = NULL;
- st = check_assoc_class(_cb, ns, assocClass, LMI_FileIdentity_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, assocClass, LMI_FileIdentity_ClassName);
+ lmi_check_class_check_status(st);
LMI_FileIdentity_Init(&lmi_fi, _cb, ns);
@@ -152,12 +152,12 @@ static CMPIStatus references(
return st;
}
- path = get_string_property_from_op(cop, "LFName");
+ path = lmi_get_string_property_from_objectpath(cop, "LFName");
get_class_from_path(path, fileclass);
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
- if (role && strcmp(role, SAME_ELEMENT) != 0) {
+ if (role && strcmp(role, LMI_SAME_ELEMENT) != 0) {
CMReturn(CMPI_RC_OK);
}
@@ -178,13 +178,13 @@ static CMPIStatus references(
return st;
}
- if (role && strcmp(role, SYSTEM_ELEMENT) != 0) {
+ if (role && strcmp(role, LMI_SYSTEM_ELEMENT) != 0) {
CMReturn(CMPI_RC_OK);
}
- path = get_string_property_from_op(cop, "Name");
+ path = lmi_get_string_property_from_objectpath(cop, "Name");
get_class_from_path(path, fileclass);
st = get_fsinfo_from_path(_cb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
/* SameElement */
LMI_UnixFile lmi_uf;
diff --git a/src/logicalfile/LMI_RootDirectoryProvider.c b/src/logicalfile/LMI_RootDirectoryProvider.c
index 9c2a2db..4ada3f5 100644
--- a/src/logicalfile/LMI_RootDirectoryProvider.c
+++ b/src/logicalfile/LMI_RootDirectoryProvider.c
@@ -41,25 +41,25 @@ static CMPIStatus associators(
CMPIStatus st;
const char *ns = KNameSpace(cop);
const char *comp_ccname = get_system_creation_class_name();
- const char *path = get_string_property_from_op(cop, "Name");
+ const char *path = lmi_get_string_property_from_objectpath(cop, "Name");
char *fsname = NULL;
char *fsclassname = NULL;
const char *systemname = lmi_get_system_creation_class_name();
- st = check_assoc_class(_cb, ns, assocClass, LMI_RootDirectory_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, assocClass, LMI_RootDirectory_ClassName);
+ lmi_check_class_check_status(st);
st = get_fsinfo_from_path(_cb, "/", &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
if (CMClassPathIsA(_cb, cop, LMI_UnixDirectory_ClassName, &st)) {
/* got LMI_UnixDirectory - PartComponent */
- st = check_assoc_class(_cb, ns, resultClass, comp_ccname);
- check_class_check_status(st);
- if (role && strcmp(role, PART_COMPONENT) != 0) {
+ st = lmi_check_assoc_class(_cb, ns, resultClass, comp_ccname);
+ lmi_check_class_check_status(st);
+ if (role && strcmp(role, LMI_PART_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
}
- if (resultRole && strcmp(resultRole, GROUP_COMPONENT) != 0) {
+ if (resultRole && strcmp(resultRole, LMI_GROUP_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
}
/* ignore this association if the directory is not root */
@@ -75,12 +75,12 @@ static CMPIStatus associators(
}
} else if (CMClassPathIsA(_cb, cop, systemname, &st)) {
/* got CIM_ComputerSystem - GroupComponent */
- st = check_assoc_class(_cb, ns, resultClass, LMI_UnixDirectory_ClassName);
- check_class_check_status(st);
- if (role && strcmp(role, GROUP_COMPONENT) != 0) {
+ st = lmi_check_assoc_class(_cb, ns, resultClass, LMI_UnixDirectory_ClassName);
+ lmi_check_class_check_status(st);
+ if (role && strcmp(role, LMI_GROUP_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
}
- if (resultRole && strcmp(resultRole, PART_COMPONENT) != 0) {
+ if (resultRole && strcmp(resultRole, LMI_PART_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
}
@@ -117,24 +117,24 @@ static CMPIStatus references(
CMPIInstance *ci;
CMPIStatus st;
const char *ns = KNameSpace(cop);
- const char *path = get_string_property_from_op(cop, "Name");
+ const char *path = lmi_get_string_property_from_objectpath(cop, "Name");
char ccname[BUFLEN];
get_class_from_path(path, ccname);
const char *systemname = lmi_get_system_creation_class_name();
- st = check_assoc_class(_cb, ns, assocClass, LMI_RootDirectory_ClassName);
- check_class_check_status(st);
+ st = lmi_check_assoc_class(_cb, ns, assocClass, LMI_RootDirectory_ClassName);
+ lmi_check_class_check_status(st);
char *fsname = NULL;
char *fsclassname = NULL;
st = get_fsinfo_from_path(_cb, "/", &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
LMI_RootDirectory_Init(&lmi_rd, _cb, ns);
if (strcmp(ccname, LMI_UnixDirectory_ClassName) == 0) {
/* got UnixDirectory - PartComponent */
- if (role && strcmp(role, PART_COMPONENT) != 0) {
+ if (role && strcmp(role, LMI_PART_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
}
/* ignore this association if the directory is not root */
@@ -142,14 +142,14 @@ static CMPIStatus references(
CMReturn(CMPI_RC_OK);
}
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_RootDirectory_SetObjectPath_PartComponent(&lmi_rd, cop);
LMI_RootDirectory_SetObjectPath_GroupComponent(&lmi_rd,
lmi_get_computer_system());
} else if (CMClassPathIsA(_cb, cop, systemname, &st)) {
/* got CIM_ComputerSystem - GroupComponent */
- if (role && strcmp(role, GROUP_COMPONENT) != 0) {
+ if (role && strcmp(role, LMI_GROUP_COMPONENT) != 0) {
CMReturn(CMPI_RC_OK);
}
LMI_RootDirectory_SetObjectPath_GroupComponent(&lmi_rd, cop);
@@ -218,7 +218,7 @@ static CMPIStatus LMI_RootDirectoryEnumInstances(
LMI_UnixDirectory lmi_ud;
LMI_UnixDirectory_Init(&lmi_ud, _cb, ns);
st = get_fsinfo_from_path(_cb, "/", &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
fill_logicalfile(LMI_UnixDirectory, &lmi_ud, "/", fsclassname, fsname, LMI_UnixDirectory_ClassName);
o = LMI_UnixDirectory_ToObjectPath(&lmi_ud, NULL);
LMI_RootDirectory_SetObjectPath_PartComponent(&lmi_rd, o);
diff --git a/src/logicalfile/LMI_SymbolicLinkProvider.c b/src/logicalfile/LMI_SymbolicLinkProvider.c
index e200316..68a6142 100644
--- a/src/logicalfile/LMI_SymbolicLinkProvider.c
+++ b/src/logicalfile/LMI_SymbolicLinkProvider.c
@@ -66,11 +66,11 @@ static CMPIStatus LMI_SymbolicLinkGetInstance(
logicalfile_t logicalfile;
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_SymbolicLink_InitFromObjectPath(&logicalfile.lf.symboliclink, _cb, cop);
st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFLNK, "No such symlink: %s");
- check_status(st);
+ lmi_check_status(st);
KReturnInstance(cr, logicalfile.lf.symboliclink);
return st;
@@ -85,12 +85,12 @@ static CMPIStatus LMI_SymbolicLinkCreateInstance(
{
CMPIStatus st = {.rc = CMPI_RC_OK};
CMPIObjectPath *iop = CMGetObjectPath(ci, &st);
- check_status(st);
+ lmi_check_status(st);
st = lmi_check_required(_cb, cc, iop);
- check_status(st);
+ lmi_check_status(st);
- const char *path = get_string_property_from_instance(ci, "Name");
- const char *target = get_string_property_from_instance(ci, "TargetFile");
+ const char *path = lmi_get_string_property_from_instance(ci, "Name");
+ const char *target = lmi_get_string_property_from_instance(ci, "TargetFile");
bool allow = lmi_read_config_boolean("LMI_SymbolicLink", "AllowSymlink");
diff --git a/src/logicalfile/LMI_UnixDeviceFileProvider.c b/src/logicalfile/LMI_UnixDeviceFileProvider.c
index ab1ec01..3062094 100644
--- a/src/logicalfile/LMI_UnixDeviceFileProvider.c
+++ b/src/logicalfile/LMI_UnixDeviceFileProvider.c
@@ -66,11 +66,11 @@ static CMPIStatus LMI_UnixDeviceFileGetInstance(
logicalfile_t logicalfile;
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_UnixDeviceFile_InitFromObjectPath(&logicalfile.lf.unixdevicefile, _cb, cop);
st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFCHR | S_IFBLK, "No such device: %s");
- check_status(st);
+ lmi_check_status(st);
KReturnInstance(cr, logicalfile.lf.unixdevicefile);
return st;
diff --git a/src/logicalfile/LMI_UnixDirectoryProvider.c b/src/logicalfile/LMI_UnixDirectoryProvider.c
index 0f19cbb..1ca995b 100644
--- a/src/logicalfile/LMI_UnixDirectoryProvider.c
+++ b/src/logicalfile/LMI_UnixDirectoryProvider.c
@@ -66,11 +66,11 @@ static CMPIStatus LMI_UnixDirectoryGetInstance(
logicalfile_t logicalfile;
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_UnixDirectory_InitFromObjectPath(&logicalfile.lf.unixdirectory, _cb, cop);
st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFDIR, "Not a directory: %s");
- check_status(st);
+ lmi_check_status(st);
KReturnInstance(cr, logicalfile.lf.unixdirectory);
return st;
@@ -85,11 +85,11 @@ static CMPIStatus LMI_UnixDirectoryCreateInstance(
{
CMPIStatus st;
CMPIObjectPath *iop = CMGetObjectPath(ci, &st);
- check_status(st);
+ lmi_check_status(st);
st = lmi_check_required(_cb, cc, iop);
- check_status(st);
+ lmi_check_status(st);
- const char *path = get_string_property_from_op(iop, "Name");
+ const char *path = lmi_get_string_property_from_objectpath(iop, "Name");
bool allow = lmi_read_config_boolean("LMI_UnixDirectory", "AllowMkdir");
if (allow && mkdir(path, 0777) < 0) {
@@ -125,7 +125,7 @@ static CMPIStatus LMI_UnixDirectoryDeleteInstance(
const CMPIResult* cr,
const CMPIObjectPath* cop)
{
- const char *path = get_string_property_from_op(cop, "Name");
+ const char *path = lmi_get_string_property_from_objectpath(cop, "Name");
bool allow = lmi_read_config_boolean("LMI_UnixDirectory", "AllowRmdir");
if (allow && rmdir(path) < 0) {
diff --git a/src/logicalfile/LMI_UnixFileProvider.c b/src/logicalfile/LMI_UnixFileProvider.c
index b17da5f..52e7b9c 100644
--- a/src/logicalfile/LMI_UnixFileProvider.c
+++ b/src/logicalfile/LMI_UnixFileProvider.c
@@ -140,7 +140,7 @@ static CMPIStatus LMI_UnixFileGetInstance(
fsname = (char *) KChars(lmi_file.FSName.value);
fsclassname = (char *) KChars(lmi_file.FSCreationClassName.value);
st = get_fsinfo_from_stat(_cb, &sb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
LMI_UnixFile_Set_FSCreationClassName(&lmi_file, fsclassname);
LMI_UnixFile_Set_FSName(&lmi_file, fsname);
get_class_from_stat(&sb, aux);
diff --git a/src/logicalfile/LMI_UnixSocketProvider.c b/src/logicalfile/LMI_UnixSocketProvider.c
index a637f33..d19753c 100644
--- a/src/logicalfile/LMI_UnixSocketProvider.c
+++ b/src/logicalfile/LMI_UnixSocketProvider.c
@@ -66,11 +66,11 @@ static CMPIStatus LMI_UnixSocketGetInstance(
logicalfile_t logicalfile;
st = lmi_check_required(_cb, cc, cop);
- check_status(st);
+ lmi_check_status(st);
LMI_UnixSocket_InitFromObjectPath(&logicalfile.lf.unixsocket, _cb, cop);
st = stat_logicalfile_and_fill(_cb, &logicalfile, S_IFSOCK, "No such socket: %s");
- check_status(st);
+ lmi_check_status(st);
KReturnInstance(cr, logicalfile.lf.unixsocket);
return st;
diff --git a/src/logicalfile/file.c b/src/logicalfile/file.c
index ac68b6f..03c99da 100644
--- a/src/logicalfile/file.c
+++ b/src/logicalfile/file.c
@@ -29,40 +29,6 @@ const ConfigEntry *provider_config_defaults = (const ConfigEntry *)&(ConfigEntry
const char *provider_name = "logicalfile";
-CMPIStatus lmi_check_required(
- const CMPIBroker *b,
- const CMPIContext *ctx,
- const CMPIObjectPath *o)
-{
- const char *prop;
-
- CMPIStatus st;
- CMPIData data;
- /* check computer system creation class name */
- data = CMGetKey(o, "CSCreationClassName", &st);
- check_status(st);
- if (CMIsNullValue(data)) {
- CMReturnWithChars(b, CMPI_RC_ERR_FAILED, "CSCreationClassName is empty");
- }
- prop = get_string_property_from_op(o, "CSCreationClassName");
- if (strcmp(prop, lmi_get_system_creation_class_name()) != 0) {
- CMReturnWithChars(b, CMPI_RC_ERR_FAILED, "Wrong CSCreationClassName");
- }
-
- /* check fqdn */
- data = CMGetKey(o, "CSName", &st);
- check_status(st);
- if (CMIsNullValue(data)) {
- CMReturnWithChars(b, CMPI_RC_ERR_FAILED, "CSName is empty");
- }
- prop = get_string_property_from_op(o, "CSName");
- if (strcmp(prop, lmi_get_system_name()) != 0) {
- CMReturnWithChars(b, CMPI_RC_ERR_FAILED, "Wrong CSName");
- }
-
- CMReturn(CMPI_RC_OK);
-}
-
void get_class_from_stat(const struct stat *sb, char *fileclass) {
(S_ISREG(sb->st_mode)) ? strcpy(fileclass, "LMI_DataFile") :
(S_ISDIR(sb->st_mode)) ? strcpy(fileclass, "LMI_UnixDirectory") :
@@ -99,14 +65,14 @@ CMPIStatus get_fsinfo_from_stat(const CMPIBroker *b, const struct stat *sb, cons
udev_ctx = udev_new();
if (!udev_ctx) {
- return_with_status(b, &st, ERR_FAILED, "Could not create udev context");
+ lmi_return_with_status(b, &st, ERR_FAILED, "Could not create udev context");
}
udev_dev = udev_device_new_from_devnum(udev_ctx, 'b', sb->st_dev);
if ((dev_name = udev_device_get_property_value(udev_dev, "ID_FS_UUID_ENC"))) {
if (!*fsname) {
if (asprintf(fsname, "UUID=%s", dev_name) < 0) {
- return_with_status(b, &st, ERR_FAILED, "asprintf failed");
+ lmi_return_with_status(b, &st, ERR_FAILED, "asprintf failed");
}
}
if (!*fsclassname) {
@@ -115,7 +81,7 @@ CMPIStatus get_fsinfo_from_stat(const CMPIBroker *b, const struct stat *sb, cons
} else if ((dev_name = udev_device_get_property_value(udev_dev, "DEVNAME"))) {
if (!*fsname) {
if (asprintf(fsname, "DEVICE=%s", dev_name) < 0) {
- return_with_status(b, &st, ERR_FAILED, "asprintf failed");
+ lmi_return_with_status(b, &st, ERR_FAILED, "asprintf failed");
}
}
if (!*fsclassname) {
@@ -124,7 +90,7 @@ CMPIStatus get_fsinfo_from_stat(const CMPIBroker *b, const struct stat *sb, cons
} else {
if (!*fsname) {
if (asprintf(fsname, "PATH=%s", path) < 0) {
- return_with_status(b, &st, ERR_FAILED, "asprintf failed");
+ lmi_return_with_status(b, &st, ERR_FAILED, "asprintf failed");
}
}
if (!*fsclassname) {
@@ -143,51 +109,12 @@ CMPIStatus get_fsinfo_from_path(const CMPIBroker *b, const char *path, char **fs
struct stat sb;
if (lstat(path, &sb) < 0) {
- return_with_status(b, &st, ERR_FAILED, "lstat(2) failed");
+ lmi_return_with_status(b, &st, ERR_FAILED, "lstat(2) failed");
}
return get_fsinfo_from_stat(b, &sb, path, fsclassname, fsname);
}
-const char *get_string_property_from_op(const CMPIObjectPath *o, const char *prop)
-{
- CMPIData d;
- d = CMGetKey(o, prop, NULL);
- return KChars(d.value.string);
-}
-
-const char *get_string_property_from_instance(const CMPIInstance *i, const char *prop)
-{
- CMPIData d;
- d = CMGetProperty(i, prop, NULL);
- return KChars(d.value.string);
-}
-
-CMPIStatus check_assoc_class(
- const CMPIBroker *cb,
- const char *namespace,
- const char *assocClass,
- const char *class)
-{
- CMPIObjectPath *o;
- CMPIStatus st = {.rc = CMPI_RC_OK};
-
- o = CMNewObjectPath(cb, namespace, class, &st);
- if (!o) {
- /* assume that status has been properly set */
- return st;
- } else if (st.rc != CMPI_RC_OK) {
- CMRelease(o);
- return st;
- }
- if (assocClass && !CMClassPathIsA(cb, o, assocClass, &st)) {
- CMRelease(o);
- st.rc = RC_ERR_CLASS_CHECK_FAILED;
- return st;
- }
- CMRelease(o);
- return st;
-}
CMPIStatus stat_logicalfile_and_fill(
const CMPIBroker *b,
@@ -214,7 +141,7 @@ CMPIStatus stat_logicalfile_and_fill(
fsname = (char *) KChars(lf->lf.datafile.FSName.value);
fsclassname = (char *) KChars(lf->lf.datafile.FSCreationClassName.value);
st = get_fsinfo_from_stat(b, &sb, path, &fsclassname, &fsname);
- check_status(st);
+ lmi_check_status(st);
switch(mode) {
case S_IFREG:
@@ -264,10 +191,6 @@ CMPIStatus stat_logicalfile_and_fill(
return st;
}
-void _dump_objectpath(const CMPIObjectPath *o)
-{
- printf("OP: %s\n", CMGetCharsPtr(o->ft->toString(o, NULL), NULL));
-}
/* vi: set et: */
/* Local Variables: */
/* indent-tabs-mode: nil */
diff --git a/src/logicalfile/file.h b/src/logicalfile/file.h
index d2f573b..a5291ed 100644
--- a/src/logicalfile/file.h
+++ b/src/logicalfile/file.h
@@ -20,48 +20,27 @@
#ifndef _FILE_H
#define _FILE_H
-#include <linux/limits.h>
#include <sys/stat.h>
#include <dirent.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
#include <libgen.h>
-#include <konkret/konkret.h>
-#include <assert.h>
#include <libudev.h>
-#include <errno.h>
-#include <unistd.h>
+#include <assert.h>
#include "LMI_DataFile.h"
#include "LMI_UnixDeviceFile.h"
#include "LMI_SymbolicLink.h"
#include "LMI_UnixDirectory.h"
#include "LMI_UnixSocket.h"
#include "LMI_FIFOPipeFile.h"
-#include "globals.h"
-
-#ifndef BUFLEN
- #define BUFLEN 512
-#endif
-#ifndef PATH_MAX
- #define PATH_MAX 4096
-#endif
+#include "openlmi.h"
const ConfigEntry *provider_config_defaults;
const char *provider_name;
#define FSCREATIONCLASSNAME_LOCAL "LMI_LocalFileSystem"
#define FSCREATIONCLASSNAME_TRANSIENT "LMI_TransientFileSystem"
-#define GROUP_COMPONENT "GroupComponent"
-#define PART_COMPONENT "PartComponent"
-#define SAME_ELEMENT "SameElement"
-#define SYSTEM_ELEMENT "SystemElement"
#define DEVTYPE_BLK 2
#define DEVTYPE_CHR 3
-/* CMPI_RC_ERR_<error> values end at 200. 0xFF should be safe. */
-#define RC_ERR_CLASS_CHECK_FAILED 0xFF
-
#define sb_permmask(sb) ((sb).st_mode & (S_IRWXU | S_IRWXG | S_IRWXO))
#define sb_isreadable(sb) ( \
(sb_permmask(sb) & S_IRUSR) || \
@@ -78,7 +57,6 @@ const char *provider_name;
(sb_permmask(sb) & S_IXGRP) || \
(sb_permmask(sb) & S_IXOTH) \
)
-#define stoms(t) ((t)*1000000)
#define fill_logicalfile(type, obj, name, fsclassname, fsname, creation_class) \
type##_Set_Name((obj), (name)); \
@@ -96,23 +74,8 @@ const char *provider_name;
LMI_##cmpitype##_Set_Writeable(lmi_file, sb_iswriteable(sb)); \
LMI_##cmpitype##_Set_Executable(lmi_file, sb_isexecutable(sb)); \
LMI_##cmpitype##_Set_FileSize(lmi_file, sb.st_size); \
- LMI_##cmpitype##_Set_LastAccessed(lmi_file, CMNewDateTimeFromBinary(b, stoms(sb.st_atime), 0, NULL)); \
- LMI_##cmpitype##_Set_LastModified(lmi_file, CMNewDateTimeFromBinary(b, stoms(sb.st_mtime), 0, NULL));
-
-#define check_status(st) \
- if (st.rc != CMPI_RC_OK) { \
- return st; \
- }
-
-#define check_class_check_status(st) \
- if (st.rc == RC_ERR_CLASS_CHECK_FAILED) { \
- CMReturn(CMPI_RC_OK); \
- } \
- check_status(st);
-
-#define return_with_status(b, st, code, msg) \
- KSetStatus2(b, st, code, msg); \
- return *(st);
+ LMI_##cmpitype##_Set_LastAccessed(lmi_file, CMNewDateTimeFromBinary(b, LMI_SECS_TO_MS(sb.st_atime), 0, NULL)); \
+ LMI_##cmpitype##_Set_LastModified(lmi_file, CMNewDateTimeFromBinary(b, LMI_SECS_TO_MS(sb.st_mtime), 0, NULL));
typedef struct {
union {
@@ -125,16 +88,11 @@ typedef struct {
} lf;
} logicalfile_t;
-CMPIStatus lmi_check_required(const CMPIBroker *, const CMPIContext *, const CMPIObjectPath *);
void get_class_from_stat(const struct stat *, char *);
int get_class_from_path(const char *, char *);
CMPIStatus get_fsinfo_from_stat(const CMPIBroker *, const struct stat *, const char *, char **, char **);
CMPIStatus get_fsinfo_from_path(const CMPIBroker *, const char *, char **, char **);
-const char *get_string_property_from_op(const CMPIObjectPath *, const char *);
-const char *get_string_property_from_instance(const CMPIInstance *, const char *);
-CMPIStatus check_assoc_class(const CMPIBroker *, const char *, const char *, const char *);
CMPIStatus stat_logicalfile_and_fill(const CMPIBroker *, logicalfile_t *, mode_t, const char *);
-void _dump_objectpath(const CMPIObjectPath *);
#endif /* _FILE_H */
/* vi: set et: */