X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/2bead8292800e9730448cc128a9f9e05f88b17a9..bb037be206aa8d904c310f722a971ed835588288:/lib/client.c 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)