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

Reply via email to