osaf/services/saf/logsv/lgs/lgs_imm.c | 5 +++--
osaf/services/saf/logsv/lgs/lgs_util.c | 13 ++++++++++++-
osaf/services/saf/logsv/lgs/lgs_util.h | 3 +--
3 files changed, 16 insertions(+), 5 deletions(-)
Fix changing groupname for file ownership that files are reowened when
change is applied.
diff --git a/osaf/services/saf/logsv/lgs/lgs_imm.c
b/osaf/services/saf/logsv/lgs/lgs_imm.c
--- a/osaf/services/saf/logsv/lgs/lgs_imm.c
+++ b/osaf/services/saf/logsv/lgs/lgs_imm.c
@@ -1844,7 +1844,8 @@ void logRootDirectory_filemove(
* @param new_logDataGroupname[in]
* String contains new group.
*/
-void logDataGroupname_fileown(const char *new_logDataGroupname){
+void logDataGroupname_fileown(const char *new_logDataGroupname)
+{
TRACE_ENTER();
log_stream_t *stream;
@@ -1860,7 +1861,7 @@ void logDataGroupname_fileown(const char
*/
stream = log_stream_getnext_by_name(NULL);
while (stream != NULL) {
- lgs_own_log_files_h(stream);
+ lgs_own_log_files_h(stream, new_logDataGroupname);
stream = log_stream_getnext_by_name(stream->name);
}
}
diff --git a/osaf/services/saf/logsv/lgs/lgs_util.c
b/osaf/services/saf/logsv/lgs/lgs_util.c
--- a/osaf/services/saf/logsv/lgs/lgs_util.c
+++ b/osaf/services/saf/logsv/lgs/lgs_util.c
@@ -606,7 +606,7 @@ gid_t lgs_get_data_gid(char *groupname)
* @return: 0 on success
* -1 on error
*/
-int lgs_own_log_files_h(log_stream_t *stream)
+int lgs_own_log_files_h(log_stream_t *stream, const char *groupname)
{
lgsf_apipar_t apipar;
lgsf_retcode_t api_rc;
@@ -615,6 +615,7 @@ int lgs_own_log_files_h(log_stream_t *st
TRACE_ENTER2("stream %s",stream->name);
+ /* Set in parameter file_name */
n = snprintf(data_in->file_name, SA_MAX_NAME_LENGTH, "%s",
stream->fileName);
if (n >= SA_MAX_NAME_LENGTH) {
rc = -1;
@@ -622,6 +623,7 @@ int lgs_own_log_files_h(log_stream_t *st
goto done;
}
+ /* Set in parameter dir_path */
const char *logsv_root_dir = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
n = snprintf(data_in->dir_path, PATH_MAX, "%s/%s",
@@ -638,6 +640,15 @@ int lgs_own_log_files_h(log_stream_t *st
rc = -1;
goto done;
}
+
+ /* Set in parameter groupname */
+ n = snprintf(data_in->groupname, UT_NAMESIZE, "%s", groupname);
+ if (n > UT_NAMESIZE) {
+ LOG_WA("Group name > UT_NAMESIZE");
+ rc = -1;
+ goto done;
+ }
+
/* Fill in API structure */
apipar.req_code_in = LGSF_OWN_LOGFILES;
apipar.data_in_size = sizeof(olfbgh_t);
diff --git a/osaf/services/saf/logsv/lgs/lgs_util.h
b/osaf/services/saf/logsv/lgs/lgs_util.h
--- a/osaf/services/saf/logsv/lgs/lgs_util.h
+++ b/osaf/services/saf/logsv/lgs/lgs_util.h
@@ -66,6 +66,5 @@ extern bool lgs_relative_path_check_ts(c
extern int lgs_make_reldir_h(const char* path);
extern int lgs_check_path_exists_h(const char *path_to_check);
extern gid_t lgs_get_data_gid(char *groupname);
-extern int lgs_own_log_files_h(log_stream_t *stream);
-
+extern int lgs_own_log_files_h(log_stream_t *stream, const char *groupname);
#endif /* ifndef __LGS_UTIL_H */
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel