diff options
author | Tomas Guisasola <tomas@luaforge.net> | 2003-09-02 17:01:29 +0000 |
---|---|---|
committer | Tomas Guisasola <tomas@luaforge.net> | 2003-09-02 17:01:29 +0000 |
commit | 83a88170de655cbb692cb9c77b3b42c9f1bb16c1 (patch) | |
tree | b5442af0437b77810d66ff640613fc5b0886484a /lualdap/src | |
parent | Substituicao do arquivo lualdap.lua pelo loader.tmpl generico. (diff) | |
download | lualdap-83a88170de655cbb692cb9c77b3b42c9f1bb16c1.tar.xz lualdap-83a88170de655cbb692cb9c77b3b42c9f1bb16c1.zip |
Correcao na funcao que espera mais uma mensagem quando a ultima mensagem
ja' foi recebida.
Diffstat (limited to 'lualdap/src')
-rwxr-xr-x | lualdap/src/lualdap.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lualdap/src/lualdap.c b/lualdap/src/lualdap.c index 26bb500..e82cbbf 100755 --- a/lualdap/src/lualdap.c +++ b/lualdap/src/lualdap.c @@ -1,6 +1,6 @@ /* ** LuaLDAP -** $Id: lualdap.c,v 1.20 2003-09-01 18:55:57 tomas Exp $ +** $Id: lualdap.c,v 1.21 2003-09-02 17:01:29 tomas Exp $ */ #include <stdlib.h> @@ -643,6 +643,10 @@ static int next_message (lua_State *L) { int rc; int ret = 1; + if (search->msgid == -1) { /* no more messages */ + lua_pushnil (L); + return 1; + } lua_rawgeti (L, LUA_REGISTRYINDEX, search->conn); conn = (conn_data *)lua_touserdata (L, -1); /* get connection */ @@ -651,9 +655,10 @@ static int next_message (lua_State *L) { return faildirect (L, LUALDAP_PREFIX"result timeout expired"); else if (rc == -1) return faildirect (L, LUALDAP_PREFIX"result error"); - else if (rc == LDAP_RES_SEARCH_RESULT) /* last message => nil */ + else if (rc == LDAP_RES_SEARCH_RESULT) { /* last message => nil */ + search->msgid = -1; lua_pushnil (L); - else { + } else { LDAPMessage *msg = ldap_first_message (conn->ld, res); switch (ldap_msgtype (msg)) { case LDAP_RES_SEARCH_ENTRY: { |