From 1f7a5baff056b0bdc735927e89b6aaa4bce95886 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Thu, 18 Oct 2007 14:41:51 +0000 Subject: doc/ 2007-10-18 Marcus Brinkmann * assuan.texi (Client requests): Document HELP. src/ 2007-10-18 Marcus Brinkmann * assuan-handler.c (std_handler_help): New function. (std_cmd_table): Add new command HELP. --- doc/ChangeLog | 4 ++++ doc/assuan.texi | 3 ++- src/ChangeLog | 5 +++++ src/assuan-handler.c | 18 ++++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 7f47266..0269c27 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2007-10-18 Marcus Brinkmann + + * assuan.texi (Client requests): Document HELP. + 2007-09-07 Moritz Schulte * assuan.texi (Client code): mention assuan_send_data() instead of diff --git a/doc/assuan.texi b/doc/assuan.texi index 8b0b36b..d444d4d 100644 --- a/doc/assuan.texi +++ b/doc/assuan.texi @@ -339,7 +339,8 @@ Used by a client to mark the end of raw data. The server may send END to indicate a partial end of data. @item HELP -Reserved for future extensions. +Lists all commands that the server understands as comment lines on the +status channel. @item QUIT Reserved for future extensions. diff --git a/src/ChangeLog b/src/ChangeLog index fa9bd23..037db8b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-10-18 Marcus Brinkmann + + * assuan-handler.c (std_handler_help): New function. + (std_cmd_table): Add new command HELP. + 2007-10-08 Werner Koch * assuan-util.c (assuan_set_io_hooks): New. diff --git a/src/assuan-handler.c b/src/assuan-handler.c index 0b9700e..2a80596 100644 --- a/src/assuan-handler.c +++ b/src/assuan-handler.c @@ -138,6 +138,23 @@ std_handler_reset (assuan_context_t ctx, char *line) return PROCESS_DONE (ctx, 0); } +static int +std_handler_help (assuan_context_t ctx, char *line) +{ + int i; + char buf[ASSUAN_LINELENGTH]; + + for (i = 0; i < ctx->cmdtbl_used; i++) + { + snprintf (buf, sizeof (buf), "# %s", ctx->cmdtbl[i].name); + buf[ASSUAN_LINELENGTH - 1] = '\0'; + assuan_write_line (ctx, buf); + } + + return PROCESS_DONE (ctx, 0); +} + + static int std_handler_end (assuan_context_t ctx, char *line) { @@ -232,6 +249,7 @@ static struct { { "AUTH", std_handler_auth, 1 }, { "RESET", std_handler_reset, 1 }, { "END", std_handler_end, 1 }, + { "HELP", std_handler_help, 1 }, { "INPUT", std_handler_input }, { "OUTPUT", std_handler_output }, -- cgit v1.2.3