Hi Minh
Ack (review only).
It should be OK to call unsetenv all the time though?
man page:
The unsetenv() function deletes the variable name from the
environment. If name does not exist in the environment,
then the function succeeds, and the environment is unchanged.
On 13/07/18 20:53, Minh Chau wrote:
If amfnd has OSAF_LOCAL_NODE_LOG and THREAD_TRACE_BUFFER enabled,
the component launched by amfnd will have these variables enabled
too, that is not expected by components.
Patch unsets OSAF_LOCAL_NODE_LOG and THREAD_TRACE_BUFFER in main()
if amfnd has them set.
---
src/amf/amfnd/main.cc | 12 ++++++++++++
src/base/logtrace.cc | 8 ++++++++
src/base/logtrace.h | 11 +++++++++++
3 files changed, 31 insertions(+)
diff --git a/src/amf/amfnd/main.cc b/src/amf/amfnd/main.cc
index 2b435ff..07915ca 100644
--- a/src/amf/amfnd/main.cc
+++ b/src/amf/amfnd/main.cc
@@ -190,6 +190,18 @@ int main(int argc, char *argv[]) {
syslog(LOG_WARNING, "failed to unset SA_ENABLE_EXTENDED_NAMES");
}
+ if (logtrace_is_local_node_log_enabled()) {
+ if (unsetenv("OSAF_LOCAL_NODE_LOG") != 0) {
+ syslog(LOG_WARNING, "failed to unset OSAF_LOCAL_NODE_LOG");
+ }
+ }
+
+ if (logtrace_is_thread_trace_buffer_enabled()) {
+ if (unsetenv("THREAD_TRACE_BUFFER") != 0) {
+ syslog(LOG_WARNING, "failed to unset THREAD_TRACE_BUFFER");
+ }
+ }
+
if (__init_avnd() != NCSCC_RC_SUCCESS) {
syslog(LOG_ERR, "__init_avd() failed");
goto done;
diff --git a/src/base/logtrace.cc b/src/base/logtrace.cc
index f755d71..c241af7 100644
--- a/src/base/logtrace.cc
+++ b/src/base/logtrace.cc
@@ -257,6 +257,14 @@ int logtrace_exit_daemon() {
return 0;
}
+bool logtrace_is_local_node_log_enabled() {
+ return global::enable_osaf_log;
+}
+
+bool logtrace_is_thread_trace_buffer_enabled() {
+ return global::thread_trace_buffer_size > 0;
+}
+
int logtrace_init_daemon(const char *ident, const char *pathname,
unsigned tracemask, int logmask) {
if (signal(SIGUSR2, sigusr2_handler) == SIG_ERR) {
diff --git a/src/base/logtrace.h b/src/base/logtrace.h
index 32d051a..6527ba8 100644
--- a/src/base/logtrace.h
+++ b/src/base/logtrace.h
@@ -102,6 +102,17 @@ extern int logtrace_init_daemon(const char *ident, const
char *pathname,
*/
extern int logtrace_exit_daemon();
+/*
+ * logtrace_is_local_node_log_enabled
+ *
+ */
+extern bool logtrace_is_local_node_log_enabled();
+
+/*
+ * logtrace_is_thread_trace_buffer_enabled
+ */
+extern bool logtrace_is_thread_trace_buffer_enabled();
+
/**
* trace_category_set - Set the mask used for trace filtering.
*
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel