Merge branch 'ds/close-object-store'
[gitweb.git] / trace2 / tr2_dst.c
index c3d82ca6a4bd852ed175c0800f31ce08bfb32ea3..5dda0ca1cdb5d09a8cdfb27dd45d4436f3e8aa6f 100644 (file)
@@ -1,17 +1,7 @@
 #include "cache.h"
 #include "trace2/tr2_dst.h"
 #include "trace2/tr2_sid.h"
-
-/*
- * If a Trace2 target cannot be opened for writing, we should issue a
- * warning to stderr, but this is very annoying if the target is a pipe
- * or socket and beyond the user's control -- especially since every
- * git command (and sub-command) will print the message.  So we silently
- * eat these warnings and just discard the trace data.
- *
- * Enable the following environment variable to see these warnings.
- */
-#define TR2_ENVVAR_DST_DEBUG "GIT_TR2_DST_DEBUG"
+#include "trace2/tr2_sysenv.h"
 
 /*
  * How many attempts we will make at creating an automatically-named trace file.
@@ -23,7 +13,7 @@ static int tr2_dst_want_warning(void)
        static int tr2env_dst_debug = -1;
 
        if (tr2env_dst_debug == -1) {
-               const char *env_value = getenv(TR2_ENVVAR_DST_DEBUG);
+               const char *env_value = tr2_sysenv_get(TR2_SYSENV_DST_DEBUG);
                if (!env_value || !*env_value)
                        tr2env_dst_debug = 0;
                else
@@ -75,7 +65,8 @@ static int tr2_dst_try_auto_path(struct tr2_dst *dst, const char *tgt_prefix)
                if (tr2_dst_want_warning())
                        warning("trace2: could not open '%.*s' for '%s' tracing: %s",
                                (int) base_path_len, path.buf,
-                               dst->env_var_name, strerror(errno));
+                               tr2_sysenv_display_name(dst->sysenv_var),
+                               strerror(errno));
 
                tr2_dst_trace_disable(dst);
                strbuf_release(&path);
@@ -97,7 +88,9 @@ static int tr2_dst_try_path(struct tr2_dst *dst, const char *tgt_value)
        if (fd == -1) {
                if (tr2_dst_want_warning())
                        warning("trace2: could not open '%s' for '%s' tracing: %s",
-                               tgt_value, dst->env_var_name, strerror(errno));
+                               tgt_value,
+                               tr2_sysenv_display_name(dst->sysenv_var),
+                               strerror(errno));
 
                tr2_dst_trace_disable(dst);
                return 0;
@@ -171,7 +164,8 @@ static int tr2_dst_try_unix_domain_socket(struct tr2_dst *dst,
        if (!path || !*path) {
                if (tr2_dst_want_warning())
                        warning("trace2: invalid AF_UNIX value '%s' for '%s' tracing",
-                               tgt_value, dst->env_var_name);
+                               tgt_value,
+                               tr2_sysenv_display_name(dst->sysenv_var));
 
                tr2_dst_trace_disable(dst);
                return 0;
@@ -181,7 +175,7 @@ static int tr2_dst_try_unix_domain_socket(struct tr2_dst *dst,
            strlen(path) >= sizeof(((struct sockaddr_un *)0)->sun_path)) {
                if (tr2_dst_want_warning())
                        warning("trace2: invalid AF_UNIX path '%s' for '%s' tracing",
-                               path, dst->env_var_name);
+                               path, tr2_sysenv_display_name(dst->sysenv_var));
 
                tr2_dst_trace_disable(dst);
                return 0;
@@ -203,7 +197,8 @@ static int tr2_dst_try_unix_domain_socket(struct tr2_dst *dst,
 error:
        if (tr2_dst_want_warning())
                warning("trace2: could not connect to socket '%s' for '%s' tracing: %s",
-                       path, dst->env_var_name, strerror(e));
+                       path, tr2_sysenv_display_name(dst->sysenv_var),
+                       strerror(e));
 
        tr2_dst_trace_disable(dst);
        return 0;
@@ -223,7 +218,7 @@ static void tr2_dst_malformed_warning(struct tr2_dst *dst,
        struct strbuf buf = STRBUF_INIT;
 
        strbuf_addf(&buf, "trace2: unknown value for '%s': '%s'",
-                   dst->env_var_name, tgt_value);
+                   tr2_sysenv_display_name(dst->sysenv_var), tgt_value);
        warning("%s", buf.buf);
 
        strbuf_release(&buf);
@@ -239,7 +234,7 @@ int tr2_dst_get_trace_fd(struct tr2_dst *dst)
 
        dst->initialized = 1;
 
-       tgt_value = getenv(dst->env_var_name);
+       tgt_value = tr2_sysenv_get(dst->sysenv_var);
 
        if (!tgt_value || !strcmp(tgt_value, "") || !strcmp(tgt_value, "0") ||
            !strcasecmp(tgt_value, "false")) {
@@ -305,7 +300,8 @@ void tr2_dst_write_line(struct tr2_dst *dst, struct strbuf *buf_line)
                return;
 
        if (tr2_dst_want_warning())
-               warning("unable to write trace to '%s': %s", dst->env_var_name,
+               warning("unable to write trace to '%s': %s",
+                       tr2_sysenv_display_name(dst->sysenv_var),
                        strerror(errno));
        tr2_dst_trace_disable(dst);
 }