From: rjk@greenend.org.uk <> Date: Sun, 23 Dec 2007 12:28:55 +0000 (+0000) Subject: client.c remembers last response string X-Git-Tag: 3.0~167 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/bb037be206aa8d904c310f722a971ed835588288 client.c remembers last response string --- diff --git a/lib/client.c b/lib/client.c index d3ea6c3..8147c6d 100644 --- a/lib/client.c +++ b/lib/client.c @@ -64,6 +64,7 @@ struct disorder_client { char *ident; char *user; int verbose; + char *last; /* last error string */ }; /** @brief Create a new client @@ -97,14 +98,23 @@ static int response(disorder_client *c, char **rp) { if(r[0] >= '0' && r[0] <= '9' && r[1] >= '0' && r[1] <= '9' && r[2] >= '0' && r[2] <= '9' - && r[3] == ' ') + && r[3] == ' ') { + c->last = r + 4; return (r[0] * 10 + r[1]) * 10 + r[2] - 111 * '0'; - else { + } else { error(0, "invalid reply format from %s", c->ident); return -1; } } +/** @brief Return last response string + * @param c Client + * @return Last response string (UTF-8, English) or NULL + */ +const char *disorder_last(disorder_client *c) { + return c->last; +} + /** @brief Read and partially parse a response * @param c Client * @param rp Where to store response text (or NULL) (UTF-8) diff --git a/lib/client.h b/lib/client.h index a58114d..18c308b 100644 --- a/lib/client.h +++ b/lib/client.h @@ -113,6 +113,7 @@ int disorder_register(disorder_client *c, const char *user, char **confirmp); int disorder_confirm(disorder_client *c, const char *confirm); int disorder_make_cookie(disorder_client *c, char **cookiep); +const char *disorder_last(disorder_client *c); #endif /* CLIENT_H */