diff options
author | Steve Bennett <steveb@workware.net.au> | 2017-10-22 13:44:05 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2018-07-08 10:42:50 +1000 |
commit | 4e14340d067b2f09768e8284cdc26362e90bac39 (patch) | |
tree | 06c6d5003e9ce60c6c860b45a3b98b85ebe13441 | |
parent | 1f031298c06972367568894ca8d5bfe770545e1b (diff) | |
download | jimtcl-4e14340d067b2f09768e8284cdc26362e90bac39.zip jimtcl-4e14340d067b2f09768e8284cdc26362e90bac39.tar.gz jimtcl-4e14340d067b2f09768e8284cdc26362e90bac39.tar.bz2 |
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.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -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); } } |