chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
client.c remembers last response string
[disorder]
/
lib
/
client.c
diff --git
a/lib/client.c
b/lib/client.c
index d3ea6c38b3700d269ec65be8fd4d0d4f1341ba90..8147c6dbbab028fd9b4bd830f6f57a56f125613e 100644
(file)
--- a/
lib/client.c
+++ b/
lib/client.c
@@
-64,6
+64,7
@@
struct disorder_client {
char *ident;
char *user;
int verbose;
char *ident;
char *user;
int verbose;
+ char *last; /* last error string */
};
/** @brief Create a new client
};
/** @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'
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';
return (r[0] * 10 + r[1]) * 10 + r[2] - 111 * '0';
- else {
+
}
else {
error(0, "invalid reply format from %s", c->ident);
return -1;
}
}
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)
/** @brief Read and partially parse a response
* @param c Client
* @param rp Where to store response text (or NULL) (UTF-8)