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

Reply via email to