r8557: expose ldb_errstring() in ldb ejs code
authorAndrew Tridgell <tridge@samba.org>
Mon, 18 Jul 2005 23:57:37 +0000 (23:57 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:29:37 +0000 (13:29 -0500)
(This used to be commit 21ca972d06bbf4694569855f39a1649d799c05c7)

source4/scripting/ejs/smbcalls_ldb.c

index 4151eaedab9c986cf86dd617c69f516b6dfdf31d..b56a3da7a149ee3ee568253f3cbaea360ac16e7e 100644 (file)
@@ -215,6 +215,24 @@ static int ejs_ldbRename(MprVarHandle eid, int argc, struct MprVar **argv)
        return 0;
 }
 
+/*
+  get last error message
+  usage:
+   ok = ldb.errstring();
+*/
+static int ejs_ldbErrstring(MprVarHandle eid, int argc, struct MprVar **argv)
+{
+       struct ldb_context *ldb;
+
+       ldb = ejs_get_ldb_context(eid);
+       if (ldb == NULL) {
+               return -1;
+       }
+
+       mpr_Return(eid, mprString(ldb_errstring(ldb)));
+       return 0;
+}
+
 /*
   perform an ldb modify
 
@@ -281,6 +299,7 @@ static int ejs_ldb_init(MprVarHandle eid, int argc, struct MprVar **argv)
        mprSetCFunction(ldb, "modify", ejs_ldbModify);
        mprSetCFunction(ldb, "delete", ejs_ldbDelete);
        mprSetCFunction(ldb, "rename", ejs_ldbRename);
+       mprSetCFunction(ldb, "errstring", ejs_ldbErrstring);
        mprSetVar(ldb, "SCOPE_BASE", mprCreateNumberVar(LDB_SCOPE_BASE));
        mprSetVar(ldb, "SCOPE_ONE", mprCreateNumberVar(LDB_SCOPE_ONELEVEL));
        mprSetVar(ldb, "SCOPE_SUBTREE", mprCreateNumberVar(LDB_SCOPE_SUBTREE));