# HG changeset patch # User Matt Johnston # Date 1423842473 -28800 # Node ID 24135c8e1d46c5dd74665899a28d8b67930334ed # Parent 363c0feca5d47ed26b8380afa10daf948d482c8e Add envirnonment variable for debug timestamps to roughly match network timestamps (in tshark) diff -r 363c0feca5d4 -r 24135c8e1d46 common-session.c --- 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; diff -r 363c0feca5d4 -r 24135c8e1d46 dbutil.c --- 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, ...) { diff -r 363c0feca5d4 -r 24135c8e1d46 dbutil.h --- 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