r10192: r11631@blu: tridge | 2005-08-30 23:06:37 +1000
authorAndrew Tridgell <tridge@samba.org>
Tue, 13 Sep 2005 01:01:55 +0000 (01:01 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:38:07 +0000 (13:38 -0500)
 added a ldb.close() method in js. Useful for re-opening the db
(This used to be commit 1f12364a0f23ba39fd3d29b510fdef2423685f0d)

source4/scripting/ejs/smbcalls_ldb.c

index f536fbe547645d78636dbfc9d93c1b3421a9d8a9..8c66bde571953acd8c74bf6ae5adcae11aa4dd53 100644 (file)
@@ -367,6 +367,31 @@ static int ejs_ldbConnect(MprVarHandle eid, int argc, char **argv)
 }
 
 
+/*
+  close a db connection
+*/
+static int ejs_ldbClose(MprVarHandle eid, int argc, struct MprVar **argv)
+{
+       struct ldb_context *ldb;
+
+       if (argc != 0) {
+               ejsSetErrorMsg(eid, "ldb.close invalid arguments");
+               return -1;
+       }
+
+       ldb = ejs_get_ldb_context(eid);
+       if (ldb == NULL) {
+               return -1;
+       }
+
+       talloc_free(ldb);
+
+       mprSetThisPtr(eid, "db", NULL);
+       mpr_Return(eid, mprCreateBoolVar(True));
+       return 0;
+}
+
+
 /*
   initialise ldb ejs subsystem
 */
@@ -383,6 +408,7 @@ static int ejs_ldb_init(MprVarHandle eid, int argc, struct MprVar **argv)
        mprSetCFunction(ldb, "errstring", ejs_ldbErrstring);
        mprSetCFunction(ldb, "encode", ejs_base64encode);
        mprSetCFunction(ldb, "decode", ejs_base64decode);
+       mprSetCFunction(ldb, "close", ejs_ldbClose);
        mprSetVar(ldb, "SCOPE_BASE", mprCreateNumberVar(LDB_SCOPE_BASE));
        mprSetVar(ldb, "SCOPE_ONE", mprCreateNumberVar(LDB_SCOPE_ONELEVEL));
        mprSetVar(ldb, "SCOPE_SUBTREE", mprCreateNumberVar(LDB_SCOPE_SUBTREE));