summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHansH111 <hans@atbas.org>2022-03-19 09:01:05 +0000
committerHansH111 <hans@atbas.org>2022-03-19 09:01:05 +0000
commitf7ea00bfb1e8626949e4e8032c9f1fc349079d83 (patch)
tree63643c41acf2ec06298064ef86ea89af6eaabb4d
parent182e1c3b1aae60e8ff1721a8d979f3e76f306baa (diff)
downloaddropbear-f7ea00bfb1e8626949e4e8032c9f1fc349079d83.tar.gz
Added DEBUG1,DEBUG2,DEBUG3 to separate functions while keeping TRACE and TRACE2.
-rw-r--r--dbutil.c57
-rw-r--r--dbutil.h5
-rw-r--r--debug.h39
3 files changed, 82 insertions, 19 deletions
diff --git a/dbutil.c b/dbutil.c
index adb87c5..4b0c63e 100644
--- a/dbutil.c
+++ b/dbutil.c
@@ -155,7 +155,7 @@ void dropbear_log(int priority, const char* format, ...) {
}
-#if DEBUG_TRACE
+#if DEBUG_TRACE
static double debug_start_time = -1;
@@ -185,21 +185,52 @@ static double time_since_start()
return nowf - debug_start_time;
}
-void dropbear_trace(const char* format, ...) {
- va_list param;
-
- if (!debug_trace) {
+static void dropbear_tracelevel(int level, const char *format, va_list param)
+{
+ if (debug_trace==0 || debug_trace < level) {
return;
}
- va_start(param, format);
- fprintf(stderr, "TRACE (%d) %f: ", getpid(), time_since_start());
+ fprintf(stderr, "TRACE%d (%d) %f: ", level, getpid(), time_since_start());
vfprintf(stderr, format, param);
fprintf(stderr, "\n");
- va_end(param);
}
+void dropbear_trace1(const char* format, ...) {
+ va_list param;
+ va_start(param, format);
+ dropbear_tracelevel(1,format, param);
+ va_end(param);
+}
+#if (DEBUG_TRACE>1)
void dropbear_trace2(const char* format, ...) {
+ va_list param;
+
+ va_start(param, format);
+ dropbear_tracelevel(2,format,param);
+ va_end(param);
+}
+#endif
+#if (DEBUG_TRACE>2)
+void dropbear_trace3(const char* format, ...) {
+ va_list param;
+
+ va_start(param, format);
+ dropbear_tracelevel(3,format,param);
+ va_end(param);
+}
+#endif
+#if (DEBUG_TRACE>3)
+void dropbear_trace4(const char* format, ...) {
+ va_list param;
+
+ va_start(param, format);
+ dropbear_tracelevel(4,format,param);
+ va_end(param);
+}
+#endif
+#if (DEBUG_TRACE>4)
+void dropbear_trace5(const char* format, ...) {
static int trace_env = -1;
va_list param;
@@ -207,17 +238,17 @@ void dropbear_trace2(const char* format, ...) {
trace_env = getenv("DROPBEAR_TRACE2") ? 1 : 0;
}
- if (!(debug_trace && trace_env)) {
+ if (!(debug_trace && trace_env)) {
return;
}
va_start(param, format);
- fprintf(stderr, "TRACE2 (%d) %f: ", getpid(), time_since_start());
- vfprintf(stderr, format, param);
- fprintf(stderr, "\n");
+ dropbear_tracelevel(5,format,param);
va_end(param);
}
-#endif /* DEBUG_TRACE */
+#endif
+#endif
+
/* Connect to a given unix socket. The socket is blocking */
#if ENABLE_CONNECT_UNIX
diff --git a/dbutil.h b/dbutil.h
index 87cd69d..c2d384a 100644
--- a/dbutil.h
+++ b/dbutil.h
@@ -47,8 +47,11 @@ void dropbear_log(int priority, const char* format, ...) ATTRIB_PRINTF(2,3) ;
void fail_assert(const char* expr, const char* file, int line) ATTRIB_NORETURN;
#if DEBUG_TRACE
-void dropbear_trace(const char* format, ...) ATTRIB_PRINTF(1,2);
+void dropbear_trace1(const char* format, ...) ATTRIB_PRINTF(1,2);
void dropbear_trace2(const char* format, ...) ATTRIB_PRINTF(1,2);
+void dropbear_trace3(const char* format, ...) ATTRIB_PRINTF(1,2);
+void dropbear_trace4(const char* format, ...) ATTRIB_PRINTF(1,2);
+void dropbear_trace5(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(void);
diff --git a/debug.h b/debug.h
index e1739e8..19833ca 100644
--- a/debug.h
+++ b/debug.h
@@ -48,15 +48,44 @@
/*#define DEBUG_KEXHASH*/
/*#define DEBUG_RSA*/
-/* you don't need to touch this block */
+
#if DEBUG_TRACE
extern int debug_trace;
-#define TRACE(X) dropbear_trace X;
-#define TRACE2(X) dropbear_trace2 X;
-#else /*DEBUG_TRACE*/
+#endif
+
+/* you don't need to touch this block */
+/* enable debug trace levels */
+#if (DEBUG_TRACE==1)
+#define DEBUG1(X) dropbear_trace1 X;
+#define DEBUG2(X)
+#define DEBUG3(X)
#define TRACE(X)
#define TRACE2(X)
-#endif /*DEBUG_TRACE*/
+#elif (DEBUG_TRACE==2)
+#define DEBUG1(X) dropbear_trace1 X;
+#define DEBUG2(X) dropbear_trace2 X;
+#define DEBUG3(X)
+#define TRACE(X)
+#define TRACE2(X)
+#elif (DEBUG_TRACE==3)
+#define DEBUG1(X) dropbear_trace1 X;
+#define DEBUG2(X) dropbear_trace2 X;
+#define DEBUG3(X) dropbear_trace3 X;
+#define TRACE(X)
+#define TRACE2(X)
+#elif (DEBUG_TRACE==4)
+#define DEBUG1(X) dropbear_trace1 X;
+#define DEBUG2(X) dropbear_trace2 X;
+#define DEBUG3(X) dropbear_trace3 X;
+#define TRACE(X) dropbear_trace4 X;
+#define TRACE2(X)
+#elif (DEBUG_TRACE==5)
+#define DEBUG1(X) dropbear_trace1 X;
+#define DEBUG2(X) dropbear_trace2 X;
+#define DEBUG3(X) dropbear_trace3 X;
+#define TRACE(X) dropbear_trace4 X;
+#define TRACE2(X) dropbear_trace5 X;
+#endif
/* To debug with GDB it is easier to run with no forking of child processes.
You will need to pass "-F" as well. */