Adapt programs to the new debug API
diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c
index 6ac83d7..0fedbc7 100644
--- a/programs/ssl/dtls_client.c
+++ b/programs/ssl/dtls_client.c
@@ -71,11 +71,13 @@
 
 #define DEBUG_LEVEL 0
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
     ((void) level);
 
-    mbedtls_fprintf( (FILE *) ctx, "%s", str );
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
     fflush(  (FILE *) ctx  );
 }
 
diff --git a/programs/ssl/dtls_server.c b/programs/ssl/dtls_server.c
index 69da1d3..ef7ce94 100644
--- a/programs/ssl/dtls_server.c
+++ b/programs/ssl/dtls_server.c
@@ -79,11 +79,13 @@
 #define READ_TIMEOUT_MS 10000   /* 5 seconds */
 #define DEBUG_LEVEL 0
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
     ((void) level);
 
-    mbedtls_fprintf( (FILE *) ctx, "%s", str );
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
     fflush(  (FILE *) ctx  );
 }
 
diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index c1da0a2..c23c653 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -66,11 +66,13 @@
 
 #define DEBUG_LEVEL 1
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
     ((void) level);
 
-    mbedtls_fprintf( (FILE *) ctx, "%s", str );
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
     fflush(  (FILE *) ctx  );
 }
 
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index b24d704..f8188d6 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -311,11 +311,13 @@
     int etm;                    /* negotiate encrypt then mac?              */
 } opt;
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
     ((void) level);
 
-    mbedtls_fprintf( (FILE *) ctx, "%s", str );
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
     fflush(  (FILE *) ctx  );
 }
 
diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index 26855a2..0984be1 100644
--- a/programs/ssl/ssl_fork_server.c
+++ b/programs/ssl/ssl_fork_server.c
@@ -83,13 +83,14 @@
 
 #define DEBUG_LEVEL 0
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
-    if( level < DEBUG_LEVEL )
-    {
-        mbedtls_fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+    ((void) level);
+
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
+    fflush(  (FILE *) ctx  );
 }
 
 int main( void )
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index f16eb87..9932594 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -154,13 +154,14 @@
     int force_ciphersuite[2];   /* protocol/ciphersuite to use, or all      */
 } opt;
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
-    if( level < opt.debug_level )
-    {
-        mbedtls_fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+    ((void) level);
+
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
+    fflush(  (FILE *) ctx  );
 }
 
 static int do_handshake( mbedtls_ssl_context *ssl )
diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c
index 3a137e3..7a4c2b2 100644
--- a/programs/ssl/ssl_pthread_server.c
+++ b/programs/ssl/ssl_pthread_server.c
@@ -89,14 +89,19 @@
 
 mbedtls_threading_mutex_t debug_mutex;
 
-static void my_mutexed_debug( void *ctx, int level, const char *str )
+static void my_mutexed_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
+    long int thread_id = (long int) pthread_self();
+
     mbedtls_mutex_lock( &debug_mutex );
-    if( level < DEBUG_LEVEL )
-    {
-        mbedtls_fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+
+    ((void) level);
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: [ #%ld ] %s",
+                                    file, line, thread_id, str );
+    fflush(  (FILE *) ctx  );
+
     mbedtls_mutex_unlock( &debug_mutex );
 }
 
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index 6535ec9..c009733 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -78,11 +78,13 @@
 
 #define DEBUG_LEVEL 0
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
     ((void) level);
 
-    mbedtls_fprintf( (FILE *) ctx, "%s", str );
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
     fflush(  (FILE *) ctx  );
 }
 
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index 763cccf..a5c50d0 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -390,11 +390,13 @@
     int badmac_limit;           /* Limit of records with bad MAC            */
 } opt;
 
-static void my_debug( void *ctx, int level, const char *str )
+static void my_debug( void *ctx, int level,
+                      const char *file, int line,
+                      const char *str )
 {
     ((void) level);
 
-    mbedtls_fprintf( (FILE *) ctx, "%s", str );
+    mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
     fflush(  (FILE *) ctx  );
 }