From a1141bde7bcdb5b49d6cbb01adfe3f5597333357 Mon Sep 17 00:00:00 2001 From: "Robert G. Jakabosky" Date: Sat, 18 Dec 2010 23:55:29 -0800 Subject: [PATCH] Changed some of the error messages to match LuaSocket. --- zmq.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/zmq.c b/zmq.c index 9029c8d..aab4643 100644 --- a/zmq.c +++ b/zmq.c @@ -67,11 +67,26 @@ static int Lzmq_version(lua_State *L) return 1; } +static int Lzmq_push_error(lua_State *L) +{ + const char *error; + lua_pushnil(L); + switch(zmq_errno()) { + case EAGAIN: + lua_pushliteral(L, "timeout"); + break; + case ETERM: + lua_pushliteral(L, "closed"); + break; + default: + error = zmq_strerror(zmq_errno()); + lua_pushlstring(L, error, strlen(error)); + break; + } + return 2; +} #define zmq_return_error() \ - const char *error = zmq_strerror(zmq_errno()); \ - lua_pushnil(L); \ - lua_pushlstring(L, error, strlen(error)); \ - return 2 + return Lzmq_push_error(L) static int Lzmq_init(lua_State *L) {