From aefb498a0b3b8bf08c431e86f1b120b5568b910d Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Sat, 25 Apr 2009 08:11:33 -0400 Subject: [PATCH] Match internal assuan protocol commands in command_startup(). Fixes writing an error after the client sends the BYE command. --- src/commands.c | 9 +++++++++ src/common.h | 4 ++-- src/misc.c | 8 ++++++++ src/misc.h | 2 ++ src/xml.c | 10 ---------- src/xml.h | 1 - 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/commands.c b/src/commands.c index c6f6369d..c3bb2c6a 100644 --- a/src/commands.c +++ b/src/commands.c @@ -3026,6 +3026,15 @@ int command_startup(assuan_context_t ctx, const char *name) !g_strcmp0(name, "GETPID") || !g_strcmp0(name, "VERSION") || !g_strcmp0(name, "SET") || + !g_strcmp0(name, "BYE") || + !g_strcmp0(name, "NOP") || + !g_strcmp0(name, "CANCEL") || + !g_strcmp0(name, "RESET") || + !g_strcmp0(name, "END") || + !g_strcmp0(name, "HELP") || + !g_strcmp0(name, "OPTION") || + !g_strcmp0(name, "INPUT") || + !g_strcmp0(name, "OUTPUT") || !g_strcmp0(name, "UNSET")) return 0; diff --git a/src/common.h b/src/common.h index dd101c32..bd873c91 100644 --- a/src/common.h +++ b/src/common.h @@ -116,12 +116,12 @@ typedef struct { guint16 version; guint64 iter; guint64 flags; - guint8 iv[16]; /* FIXME: is this portable? */ + guint8 iv[16]; } file_header_t; typedef struct { guint32 iter; - guint8 iv[16]; /* FIXME: is this portable? */ + guint8 iv[16]; } file_header_v1_t; typedef struct { diff --git a/src/misc.c b/src/misc.c index 3321713a..603ca9e6 100644 --- a/src/misc.c +++ b/src/misc.c @@ -200,3 +200,11 @@ gchar *tohex(const guchar *str, gsize len) return p; } + +gchar **split_input_line(gchar *str, gchar *delim, gint n) +{ + if (!str || !*str) + return NULL; + + return g_strsplit(str, delim, n); +} diff --git a/src/misc.h b/src/misc.h index f9a32a19..b8836c61 100644 --- a/src/misc.h +++ b/src/misc.h @@ -27,5 +27,7 @@ gchar *expand_homedir(gchar *str); gboolean contains_whitespace(const gchar *str); gchar *strip_char(gchar *str, gchar c); gchar *tohex(const guchar *str, gsize len); +gchar **split_input_line(gchar *str, gchar *delim, gint n); +void log_write(const gchar *fmt, ...); #endif diff --git a/src/xml.c b/src/xml.c index caa7b641..7b37efa8 100644 --- a/src/xml.c +++ b/src/xml.c @@ -37,7 +37,6 @@ #include "misc.h" #include "xml.h" -void log_write(const gchar *fmt, ...); static xmlNodePtr find_element(xmlNodePtr node, gchar *element, xmlNodePtr stop); static xmlChar *node_has_attribute(xmlNodePtr n, xmlChar *attr); @@ -306,15 +305,6 @@ fail: return rc; } -// FIXME return a gboolean in case of memory allocation failure -gchar **split_input_line(gchar *str, gchar *delim, gint n) -{ - if (!str || !*str) - return NULL; - - return g_strsplit(str, delim, n); -} - /* * Prevents a sibling element past the current element path with the same * element name. diff --git a/src/xml.h b/src/xml.h index 033ff385..dd877e47 100644 --- a/src/xml.h +++ b/src/xml.h @@ -41,7 +41,6 @@ gpg_error_t new_account(xmlDocPtr doc, gchar *name); xmlChar *new_document(void); gpg_error_t list_accounts(xmlDocPtr doc, GString **); gboolean valid_xml_element(xmlChar *element); -gchar **split_input_line(gchar *str, gchar *delim, gint n); xmlNodePtr find_elements(xmlDocPtr doc, xmlNodePtr node, gchar **req, gpg_error_t *error, gboolean *target, xmlNodePtr (*found_fn)(xmlNodePtr, gchar **, gpg_error_t *, gchar **, void *), -- 2.11.4.GIT