changeset 1021:24135c8e1d46

Add envirnonment variable for debug timestamps to roughly match network timestamps (in tshark)
author Matt Johnston <matt@ucc.asn.au>
date Fri, 13 Feb 2015 23:47:53 +0800
parents 363c0feca5d4
children 4121ca987e6a
files common-session.c dbutil.c dbutil.h
diffstat 3 files changed, 22 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/common-session.c	Fri Feb 13 23:17:23 2015 +0800
+++ b/common-session.c	Fri Feb 13 23:47:53 2015 +0800
@@ -53,6 +53,10 @@
 void common_session_init(int sock_in, int sock_out) {
 	time_t now;
 
+#ifdef DEBUG_TRACE
+	debug_start_net();
+#endif
+
 	TRACE(("enter session_init"))
 
 	ses.sock_in = sock_in;
--- a/dbutil.c	Fri Feb 13 23:17:23 2015 +0800
+++ b/dbutil.c	Fri Feb 13 23:47:53 2015 +0800
@@ -151,19 +151,32 @@
 
 #ifdef DEBUG_TRACE
 
+static double debug_start_time = -1;
+
+void debug_start_net()
+{
+	if (getenv("DROPBEAR_DEBUG_NET_TIMESTAMP"))
+	{
+    	/* Timestamps start from first network activity */
+	    struct timeval tv;
+	    gettimeofday(&tv, NULL);
+	    debug_start_time = tv.tv_sec + (tv.tv_usec / 1000000.0);
+	    TRACE(("Resetting Dropbear TRACE timestamps"))
+	}
+}
+
 static double time_since_start()
 {
-    static double start_time = -1;
     double nowf;
     struct timeval tv;
     gettimeofday(&tv, NULL);
     nowf = tv.tv_sec + (tv.tv_usec / 1000000.0);
-    if (start_time < 0)
+    if (debug_start_time < 0)
     {
-        start_time = nowf;
+        debug_start_time = nowf;
         return 0;
     }
-    return nowf - start_time;
+    return nowf - debug_start_time;
 }
 
 void dropbear_trace(const char* format, ...) {
--- a/dbutil.h	Fri Feb 13 23:17:23 2015 +0800
+++ b/dbutil.h	Fri Feb 13 23:47:53 2015 +0800
@@ -58,6 +58,7 @@
 void dropbear_trace2(const char* format, ...) ATTRIB_PRINTF(1,2);
 void printhex(const char * label, const unsigned char * buf, int len);
 void printmpint(const char *label, mp_int *mp);
+void debug_start_net();
 extern int debug_trace;
 #endif