summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2017-10-22 13:44:05 +1000
committerSteve Bennett <steveb@workware.net.au>2018-07-08 10:42:50 +1000
commit4e14340d067b2f09768e8284cdc26362e90bac39 (patch)
tree06c6d5003e9ce60c6c860b45a3b98b85ebe13441
parent1f031298c06972367568894ca8d5bfe770545e1b (diff)
aio: Always set error message on I/O error
Some operations that failed (such as read) would leave an empty error result. Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim-aio.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/jim-aio.c b/jim-aio.c
index 5d6082c..c743dcb 100644
--- a/jim-aio.c
+++ b/jim-aio.c
@@ -109,8 +109,6 @@
#undef HAVE_SOCKETPAIR
#endif
-#define JimCheckStreamError(interp, af) af->fops->error(af)
-
#if defined(HAVE_SOCKETS) && !defined(JIM_BOOTSTRAP)
union sockaddr_any {
struct sockaddr sa;
@@ -489,6 +487,15 @@ static void JimAioSetError(Jim_Interp *interp, Jim_Obj *name)
}
}
+static int JimCheckStreamError(Jim_Interp *interp, AioFile *af)
+{
+ int ret = af->fops->error(af);
+ if (ret) {
+ JimAioSetError(interp, af->filename);
+ }
+ return ret;
+}
+
static void JimAioDelProc(Jim_Interp *interp, void *privData)
{
AioFile *af = privData;
@@ -1267,9 +1274,7 @@ static int aio_cmd_verify(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
ret = af->fops->verify(af);
if (ret != JIM_OK) {
- if (JimCheckStreamError(interp, af)) {
- JimAioSetError(interp, af->filename);
- } else {
+ if (JimCheckStreamError(interp, af) == JIM_OK) {
Jim_SetResultString(interp, "failed to verify the connection authenticity", -1);
}
}