From 4e14340d067b2f09768e8284cdc26362e90bac39 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Sun, 22 Oct 2017 13:44:05 +1000 Subject: [PATCH] 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 --- jim-aio.c | 15 ++++++++++----- 1 file 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); } } -- 2.11.4.GIT