aboutsummaryrefslogtreecommitdiffstats
path: root/lualdap/src
diff options
context:
space:
mode:
authorTomas Guisasola <tomas@luaforge.net>2003-09-02 17:01:29 +0000
committerTomas Guisasola <tomas@luaforge.net>2003-09-02 17:01:29 +0000
commit83a88170de655cbb692cb9c77b3b42c9f1bb16c1 (patch)
treeb5442af0437b77810d66ff640613fc5b0886484a /lualdap/src
parentSubstituicao do arquivo lualdap.lua pelo loader.tmpl generico. (diff)
downloadlualdap-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-xlualdap/src/lualdap.c11
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: {