[tor-commits] [obfsproxy/master] Add logging to src/managed.c.

nickm at torproject.org nickm at torproject.org
Wed Jan 18 16:00:41 UTC 2012


commit 8754b6626d758adf138cd8fc06328ae24d3e7bd5
Author: George Kadianakis <desnacked at riseup.net>
Date:   Wed Jan 18 04:44:09 2012 +0200

    Add logging to src/managed.c.
---
 src/managed.c |   28 ++++++++++++++++++++++++++++
 src/util.c    |    6 ++++++
 src/util.h    |    2 ++
 3 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/managed.c b/src/managed.c
index d70c1cf..dfd8a3f 100644
--- a/src/managed.c
+++ b/src/managed.c
@@ -112,6 +112,27 @@ assert_proxy_env(managed_proxy_t *proxy)
   }
 }
 
+/** Log the environment variables that tor prepared for <b>proxy</b>. */
+static inline void
+log_proxy_env(managed_proxy_t *proxy)
+{
+  obfs_assert(proxy);
+
+  log_debug("Proxy environment:\n"
+            "state_loc: '%s'\nconf_proto_version: '%s'\ntransports: '%s'",
+            proxy->vars.state_loc,
+            proxy->vars.conf_proto_version,
+            proxy->vars.transports);
+
+  if (proxy->is_server) {
+    log_debug("Proxy environment (cont):\n"
+              "extended_port: '%s'\nor_port: '%s'\nbindaddrs: '%s'",
+              proxy->vars.extended_port,
+              proxy->vars.or_port,
+              proxy->vars.bindaddrs);
+  }
+}
+
 /**
    This function is used for obfsproxy to communicate with tor.
    Practically a wrapper of printf, it prints 'format' and the
@@ -125,6 +146,11 @@ print_protocol_line(const char *format, ...)
   va_start(ap,format);
   vprintf(format, ap);
   fflush(stdout);
+
+  /* log the protocol message */
+  log_debug("We sent:");
+  log_debug_raw(format, ap);
+
   va_end(ap);
 }
 
@@ -246,6 +272,8 @@ validate_environment(managed_proxy_t *proxy)
 
   assert_proxy_env(proxy);
 
+  if (log_do_debug()) log_proxy_env(proxy);
+
   if (proxy->is_server) {
     if (validate_bindaddrs(proxy->vars.bindaddrs, proxy->vars.transports) < 0) {
       status = ST_ENV_FAIL_BINDADDR;
diff --git a/src/util.c b/src/util.c
index c63a651..2e84cc6 100644
--- a/src/util.c
+++ b/src/util.c
@@ -595,3 +595,9 @@ log_debug(const char *format, ...)
 
   va_end(ap);
 }
+
+void
+log_debug_raw(const char *format, va_list ap)
+{
+  logv(LOG_SEV_DEBUG, format, ap);
+}
diff --git a/src/util.h b/src/util.h
index 8a7585b..a8588c2 100644
--- a/src/util.h
+++ b/src/util.h
@@ -171,6 +171,8 @@ void log_info(const char *format, ...)
 void log_debug(const char *format, ...)
   ATTR_PRINTF_1;
 
+void log_debug_raw(const char *format, va_list ap);
+
 /** Assertion checking.  We don't ever compile assertions out, and we
     want precise control over the error messages, so we use our own
     assertion macros. */





More information about the tor-commits mailing list