[Pkg-gnupg-commit] [libassuan] 91/437: * assuan-buffer.c: Changed formatting of the debug output prefix. * assuan-util.c (assuan_set_log_stream): Set global log stream if it has not been done yet. * assuan-logging.c (_assuan_set_default_log_stream): New. (assuan_set_assuan_log_prefix): New.

Eric Dorland eric at moszumanska.debian.org
Fri May 22 05:33:27 UTC 2015


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit effc4649f13c5eea3f546e196d628cb38693499f
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Dec 16 16:32:33 2003 +0000

    * assuan-buffer.c: Changed formatting of the debug output prefix.
    * assuan-util.c (assuan_set_log_stream): Set global log stream if
    it has not been done yet.
    * assuan-logging.c (_assuan_set_default_log_stream): New.
    (assuan_set_assuan_log_prefix): New.
---
 NEWS                 |  5 +++++
 src/ChangeLog        |  8 ++++++++
 src/assuan-buffer.c  | 35 +++++++++++++++++++++--------------
 src/assuan-defs.h    |  3 +++
 src/assuan-logging.c | 25 ++++++++++++++++++++++++-
 src/assuan-util.c    |  1 +
 src/assuan.h         | 23 ++++++++++++++++-------
 7 files changed, 78 insertions(+), 22 deletions(-)

diff --git a/NEWS b/NEWS
index b2e0638..d636b78 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,11 @@
 Noteworthy changes in version 0.6.2 (unreleased)
 ------------------------------------------------
 
+ * New function assuan_set_assuan_log_prefix to store a log prefix to
+   be used when no context is available. The existing function
+   assuan_get_assuan_log_context is not anymore declared as user
+   overridable.
+
 Noteworthy changes in version 0.6.1 (2003-11-17)
 ------------------------------------------------
 
diff --git a/src/ChangeLog b/src/ChangeLog
index 542e6be..bb61f3e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+2003-12-16  Werner Koch  <wk at gnupg.org>
+
+	* assuan-buffer.c: Changed formatting of the debug output prefix.
+	* assuan-util.c (assuan_set_log_stream): Set global log stream if
+	it has not been done yet.
+	* assuan-logging.c (_assuan_set_default_log_stream): New.
+	(assuan_set_assuan_log_prefix): New.
+
 2003-12-11  Werner Koch  <wk at gnupg.org>
 
 	* funopen.c (_assuan_funopen): Renamed from funopen, to keep the
diff --git a/src/assuan-buffer.c b/src/assuan-buffer.c
index 59518f2..3684b3e 100644
--- a/src/assuan-buffer.c
+++ b/src/assuan-buffer.c
@@ -125,16 +125,18 @@ _assuan_read_line (ASSUAN_CONTEXT ctx)
   if (rc)
     {
       if (ctx->log_fp)
-	fprintf (ctx->log_fp, "%s[%p] <- [Error: %s]\n",
-		 assuan_get_assuan_log_prefix (), ctx, strerror (errno));
+	fprintf (ctx->log_fp, "%s[%u.%p] DBG: <- [Error: %s]\n",
+		 assuan_get_assuan_log_prefix (),
+                 (unsigned int)getpid (), ctx, strerror (errno));
       return ASSUAN_Read_Error;
     }
   if (!nread)
     {
       assert (ctx->inbound.eof);
       if (ctx->log_fp)
-	fprintf (ctx->log_fp, "%s[%p] <- [EOF]\n",
-		 assuan_get_assuan_log_prefix (), ctx);
+	fprintf (ctx->log_fp, "%s[%u.%p] DBG: <- [EOF]\n",
+		 assuan_get_assuan_log_prefix (),
+                 (unsigned int)getpid (), ctx);
       return -1;
     }
 
@@ -165,8 +167,9 @@ _assuan_read_line (ASSUAN_CONTEXT ctx)
       ctx->inbound.linelen = endp - line;
       if (ctx->log_fp)
 	{
-	  fprintf (ctx->log_fp, "%s[%p] <- ",
-		   assuan_get_assuan_log_prefix (), ctx);
+	  fprintf (ctx->log_fp, "%s[%u.%p] DBG: <- ",
+		   assuan_get_assuan_log_prefix (),
+                   (unsigned int)getpid (), ctx);
 	  if (ctx->confidential)
 	    fputs ("[Confidential data not shown]", ctx->log_fp);
 	  else
@@ -180,8 +183,9 @@ _assuan_read_line (ASSUAN_CONTEXT ctx)
   else
     {
       if (ctx->log_fp)
-	fprintf (ctx->log_fp, "%s[%p] <- [Invalid line]\n",
-		 assuan_get_assuan_log_prefix (), ctx);
+	fprintf (ctx->log_fp, "%s[%u.%p] DBG: <- [Invalid line]\n",
+		 assuan_get_assuan_log_prefix (),
+                 (unsigned int)getpid (), ctx);
       *line = 0;
       ctx->inbound.linelen = 0;
       return ctx->inbound.eof ? ASSUAN_Line_Not_Terminated
@@ -241,8 +245,9 @@ assuan_write_line (ASSUAN_CONTEXT ctx, const char *line)
   /* fixme: we should do some kind of line buffering.  */
   if (ctx->log_fp)
     {
-      fprintf (ctx->log_fp, "%s[%p] -> ",
-	       assuan_get_assuan_log_prefix (), ctx);
+      fprintf (ctx->log_fp, "%s[%u.%p] DBG: -> ",
+	       assuan_get_assuan_log_prefix (),
+               (unsigned int)getpid (), ctx);
       if (s)
 	fputs ("[supplied line contained a LF]", ctx->log_fp);
       if (ctx->confidential)
@@ -314,8 +319,9 @@ _assuan_cookie_write_data (void *cookie, const char *buffer, size_t size)
         {
           if (ctx->log_fp)
             {
-	      fprintf (ctx->log_fp, "%s[%p] -> ",
-		       assuan_get_assuan_log_prefix (), ctx);
+	      fprintf (ctx->log_fp, "%s[%u.%p] DBG: -> ",
+		       assuan_get_assuan_log_prefix (),
+                       (unsigned int)getpid (), ctx);
 
               if (ctx->confidential)
                 fputs ("[Confidential data not shown]", ctx->log_fp);
@@ -361,8 +367,9 @@ _assuan_cookie_write_flush (void *cookie)
     {
       if (ctx->log_fp)
 	{
-	  fprintf (ctx->log_fp, "%s[%p] -> ",
-		   assuan_get_assuan_log_prefix (), ctx);
+	  fprintf (ctx->log_fp, "%s[%u.%p] DBG: -> ",
+		   assuan_get_assuan_log_prefix (),
+                   (unsigned int)getpid (), ctx);
 	  if (ctx->confidential)
 	    fputs ("[Confidential data not shown]", ctx->log_fp);
 	  else
diff --git a/src/assuan-defs.h b/src/assuan-defs.h
index e25fc6a..e2d9811 100644
--- a/src/assuan-defs.h
+++ b/src/assuan-defs.h
@@ -177,6 +177,9 @@ void  _assuan_free (void *p);
 void _assuan_log_print_buffer (FILE *fp, const void *buffer, size_t  length);
 void _assuan_log_sanitized_string (const char *string);
 
+/*-- assuan-logging.c --*/
+void _assuan_set_default_log_stream (FILE *fp);
+
 /*-- assuan-io.c --*/
 ssize_t _assuan_simple_read (ASSUAN_CONTEXT ctx, void *buffer, size_t size);
 ssize_t _assuan_simple_write (ASSUAN_CONTEXT ctx, const void *buffer,
diff --git a/src/assuan-logging.c b/src/assuan-logging.c
index 340ce72..e129187 100644
--- a/src/assuan-logging.c
+++ b/src/assuan-logging.c
@@ -21,9 +21,17 @@
 #include "assuan-defs.h"
 #include <stdio.h>
 
+static char prefix_buffer[80];
 static FILE *_assuan_log;
 
 void
+_assuan_set_default_log_stream (FILE *fp)
+{
+  if (!_assuan_log)
+    _assuan_log = fp;
+}
+
+void
 assuan_set_assuan_log_stream (FILE *fp)
 {
   _assuan_log = fp;
@@ -35,8 +43,23 @@ assuan_get_assuan_log_stream (void)
   return _assuan_log ? _assuan_log : stderr;
 }
 
+
+/* Set the prefix to be used for logging to TEXT or
+   resets it to the default if TEXT is NULL. */
+void
+assuan_set_assuan_log_prefix (const char *text)
+{
+  if (text)
+    {
+      strncpy (prefix_buffer, text, sizeof (prefix_buffer)-1);
+      prefix_buffer[sizeof (prefix_buffer)-1] = 0;
+    }
+  else
+    *prefix_buffer = 0;
+}
+
 const char *
 assuan_get_assuan_log_prefix (void)
 {
-  return "";
+  return prefix_buffer;
 }
diff --git a/src/assuan-util.c b/src/assuan-util.c
index fc0beed..a09982a 100644
--- a/src/assuan-util.c
+++ b/src/assuan-util.c
@@ -102,6 +102,7 @@ assuan_set_log_stream (ASSUAN_CONTEXT ctx, FILE *fp)
       if (ctx->log_fp)
         fflush (ctx->log_fp);
       ctx->log_fp = fp;
+      _assuan_set_default_log_stream (fp);
     }
 }
 
diff --git a/src/assuan.h b/src/assuan.h
index 07f56b3..261a752 100644
--- a/src/assuan.h
+++ b/src/assuan.h
@@ -266,17 +266,26 @@ const char *assuan_strerror (AssuanError err);
 
 /*-- assuan-logging.c --*/
 
-/* Set the stream to which assuan should log.  By default, this is
-   stderr.  */
+/* Set the stream to which assuan should log message not associated
+   with a context.  By default, this is stderr.  The default value
+   will be changed when the first log stream is associated with a
+   context.  Note, that this function is not thread-safe and should
+   in general be used right at startup. */
 extern void assuan_set_assuan_log_stream (FILE *fp);
 
-/* Return the stream which is currently being using for logging.  */
+/* Return the stream which is currently being using for global logging.  */
 extern FILE *assuan_get_assuan_log_stream (void);
 
-/* User defined call back.  Return a prefix to be used at the start of
-   a line emitted by assuan on the log stream.  The default
-   implementation returns the empty string, i.e. ""  */
-extern const char *assuan_get_assuan_log_prefix (void);
+/* Set the prefix to be used at the start of a line emitted by assuan
+   on the log stream.  The default is the empty string.  Note, that
+   this function is not thread-safe and should in general be used
+   right at startup. */
+void assuan_set_assuan_log_prefix (const char *text);
+
+/* Return a prefix to be used at the start of a line emitted by assuan
+   on the log stream.  The default implementation returns the empty
+   string, i.e. ""  */
+const char *assuan_get_assuan_log_prefix (void);
 
 #ifdef __cplusplus
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list