aboutsummaryrefslogtreecommitdiffstats
path: root/lualdap/src/lualdap.c
diff options
context:
space:
mode:
authorTomas Guisasola <tomas@luaforge.net>2003-09-01 18:55:57 +0000
committerTomas Guisasola <tomas@luaforge.net>2003-09-01 18:55:57 +0000
commit9c3c5cfee6f957c43f10ce119ab94a5f9f398bb2 (patch)
tree8ce649761997f10fa5397a40d11fd9a0294a349b /lualdap/src/lualdap.c
parentAcrescimo de links para documentacao externa. (diff)
downloadlualdap-9c3c5cfee6f957c43f10ce119ab94a5f9f398bb2.tar.xz
lualdap-9c3c5cfee6f957c43f10ce119ab94a5f9f398bb2.zip
Implementacao da modify assincrona.
Correcao na criacao de entradas com atributos sem valores (attrsonly = 1).
Diffstat (limited to 'lualdap/src/lualdap.c')
-rwxr-xr-xlualdap/src/lualdap.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/lualdap/src/lualdap.c b/lualdap/src/lualdap.c
index 77166c5..26bb500 100755
--- a/lualdap/src/lualdap.c
+++ b/lualdap/src/lualdap.c
@@ -1,6 +1,6 @@
/*
** LuaLDAP
-** $Id: lualdap.c,v 1.19 2003-08-29 14:24:53 tomas Exp $
+** $Id: lualdap.c,v 1.20 2003-09-01 18:55:57 tomas Exp $
*/
#include <stdlib.h>
@@ -551,7 +551,7 @@ static int lualdap_modify (lua_State *L) {
param++;
}
A_lastattr (L, &attrs);
- rc = ldap_modify_ext_s (conn->ld, dn, attrs.attrs, NULL, NULL);
+ rc = ldap_modify_ext (conn->ld, dn, attrs.attrs, NULL, NULL, &msgid);
return create_future (L, rc, 1, msgid, LDAP_RES_MODIFY);
}
@@ -582,7 +582,10 @@ static int lualdap_rename (lua_State *L) {
static int push_values (lua_State *L, LDAP *ld, LDAPMessage *entry, char *attr) {
int i, n;
BerValue **vals = ldap_get_values_len (ld, entry, attr);
- if ((n = ldap_count_values_len (vals)) == 1) /* just one value */
+ n = ldap_count_values_len (vals);
+ if (n == 0) /* no values */
+ lua_pushboolean (L, 1);
+ else if (n == 1) /* just one value */
lua_pushlstring (L, vals[0]->bv_val, vals[0]->bv_len);
else { /* Multiple values */
lua_newtable (L);