diff options
author | Werner Koch <[email protected]> | 2002-01-19 18:20:15 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2002-01-19 18:20:15 +0000 |
commit | f58da1883a7d62d75a0b24f05c911c96febc0a85 (patch) | |
tree | d7a80bddeb9e3e30594485ae577677db0f06a893 /assuan/assuan-util.c | |
parent | * gpg-agent.c: Removed unused cruft and implement the socket (diff) | |
download | gnupg-f58da1883a7d62d75a0b24f05c911c96febc0a85.tar.gz gnupg-f58da1883a7d62d75a0b24f05c911c96febc0a85.zip |
* assuan-buffer.c (_assuan_read_line): Add output logging.
(assuan_write_line): Ditto.
(_assuan_cookie_write_data): Ditto.
(_assuan_cookie_write_flush): Ditto.
* assuan-util.c (_assuan_log_print_buffer): New.
(assuan_set_log_stream): New.
(assuan_begin_confidential): New.
(assuan_end_confidential): New.
* assuan-defs.h: Add a few handler variables.
* assuan-pipe-server.c (assuan_deinit_pipe_server): Removed.
(deinit_pipe_server): New.
(assuan_deinit_server): New. Changed all callers to use this.
* assuan-listen.c (assuan_accept): Use the accept handler.
* assuan-handler.c (process_request): Use the close Handler.
* assuan-socket-server.c: New.
Diffstat (limited to 'assuan/assuan-util.c')
-rw-r--r-- | assuan/assuan-util.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/assuan/assuan-util.c b/assuan/assuan-util.c index 3eeee9ab9..96cd68d4e 100644 --- a/assuan/assuan-util.c +++ b/assuan/assuan-util.c @@ -96,3 +96,57 @@ assuan_get_pointer (ASSUAN_CONTEXT ctx) return ctx? ctx->user_pointer : NULL; } + +void +assuan_set_log_stream (ASSUAN_CONTEXT ctx, FILE *fp) +{ + if (ctx) + { + if (ctx->log_fp) + fflush (ctx->log_fp); + ctx->log_fp = fp; + } +} + + +void +assuan_begin_confidential (ASSUAN_CONTEXT ctx) +{ + if (ctx) + { + ctx->confidential = 1; + } +} + +void +assuan_end_confidential (ASSUAN_CONTEXT ctx) +{ + if (ctx) + { + ctx->confidential = 0; + } +} + +void +_assuan_log_print_buffer (FILE *fp, const void *buffer, size_t length) +{ + const unsigned char *s; + int n; + + for (n=length,s=buffer; n; n--, s++) + { + if (*s < ' ' || (*s >= 0x7f && *s <= 0xa0)) + break; + } + s = buffer; + if (!n && *s != '[') + fwrite (buffer, length, 1, fp); + else + { + putc ('[', fp); + for (n=0; n < length; n++, s++) + fprintf (fp, " %02x", *s); + putc (' ', fp); + putc (']', fp); + } +} |