aboutsummaryrefslogtreecommitdiffstats
path: root/lualdap/src/lualdap.c
diff options
context:
space:
mode:
authorTomas Guisasola <tomas@luaforge.net>2003-08-18 12:55:22 +0000
committerTomas Guisasola <tomas@luaforge.net>2003-08-18 12:55:22 +0000
commit161d7b5f50a21b1c1dafac6069c922a46648cafa (patch)
treedaacd3de350310b1b76030acbef7eba66b6edce8 /lualdap/src/lualdap.c
parentCorrecao nos metodos close (nao podem usar getconnection nem getsearch (diff)
downloadlualdap-161d7b5f50a21b1c1dafac6069c922a46648cafa.tar.xz
lualdap-161d7b5f50a21b1c1dafac6069c922a46648cafa.zip
Implementacao da operacao de mudanca de nome de uma entrada.
Diffstat (limited to 'lualdap/src/lualdap.c')
-rwxr-xr-xlualdap/src/lualdap.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/lualdap/src/lualdap.c b/lualdap/src/lualdap.c
index 8b2b103..c9079f8 100755
--- a/lualdap/src/lualdap.c
+++ b/lualdap/src/lualdap.c
@@ -1,6 +1,6 @@
/*
** LuaLDAP
-** $Id: lualdap.c,v 1.11 2003-08-18 12:52:49 tomas Exp $
+** $Id: lualdap.c,v 1.12 2003-08-18 12:55:22 tomas Exp $
*/
#include <stdlib.h>
@@ -669,6 +669,29 @@ static int lualdap_search (lua_State *L) {
/*
+**
+*/
+static int lualdap_rename (lua_State *L) {
+ conn_data *conn = getconnection (L);
+ const char *dn = luaL_check_string (L, 2);
+ const char *rdn = luaL_check_string (L, 3);
+ const char *par = luaL_optlstring (L, 4, NULL, NULL);
+ const int del = luaL_optnumber (L, 5, 0);
+ int err = ldap_rename_s (conn->ld, dn, rdn, par, del, NULL, NULL);
+ if (err == LDAP_SUCCESS) {
+ lua_pushboolean (L, 1);
+ return 1;
+ } else {
+ lua_pushnil (L);
+ lua_pushstring (L, LUALDAP_PREFIX);
+ lua_pushstring (L, ldap_err2string (err));
+ lua_concat (L, 2);
+ return 2;
+ }
+}
+
+
+/*
** Create a metatable.
*/
static int lualdap_createmeta (lua_State *L) {
@@ -678,6 +701,7 @@ static int lualdap_createmeta (lua_State *L) {
{"compare", lualdap_compare},
{"delete", lualdap_delete},
{"modify", lualdap_modify},
+ {"rename", lualdap_rename},
{"search", lualdap_search},
{NULL, NULL}
};