Introduce mprLpCtx() similar to mprMemCtx() for loadparm_context used by
[jelmer/samba4-debian.git] / source / scripting / ejs / smbcalls_nbt.c
index a82b636c9c1db7f916fcd6c439d7e35f8b90fabc..67a85414caf718fbf110c6203531487688e32da2 100644 (file)
@@ -7,7 +7,7 @@
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "includes.h"
-#include "lib/ejs/ejs.h"
-#include "librpc/gen_ndr/ndr_nbt.h"
+#include "scripting/ejs/smbcalls.h"
+#include "lib/appweb/ejs/ejs.h"
+#include "librpc/gen_ndr/nbt.h"
+#include "lib/events/events.h"
+#include "libcli/resolve/resolve.h"
 
 /*
   look up a netbios name
@@ -59,7 +61,7 @@ static int ejs_resolve_name(MprVarHandle eid, int argc, struct MprVar **argv)
        if (argc == 2) {
                make_nbt_name_client(&name, mprToString(argv[1]));
        } else {
-               if (argv[1]->type != MPR_TYPE_INT) {
+               if (!mprVarIsNumber(argv[1]->type)) {
                        ejsSetErrorMsg(eid, "resolveName invalid arguments");
                        goto done;
                }
@@ -68,14 +70,13 @@ static int ejs_resolve_name(MprVarHandle eid, int argc, struct MprVar **argv)
 
        result = 0;
 
-       nt_status = resolve_name(&name, tmp_ctx, &reply_addr);
+       nt_status = resolve_name(lp_resolve_context(mprLpCtx()), &name, tmp_ctx, &reply_addr, event_context_find(tmp_ctx));
 
        if (NT_STATUS_IS_OK(nt_status)) {
-               mprSetPropertyValue(argv[0], "value", 
-                                   mprCreateStringVar(reply_addr, 1));
+               mprSetPropertyValue(argv[0], "value", mprString(reply_addr));
        }
 
-       ejsSetReturnValue(eid, mprNTSTATUS(nt_status));
+       mpr_Return(eid, mprNTSTATUS(nt_status));
 
  done:
        talloc_free(tmp_ctx);
@@ -85,7 +86,8 @@ static int ejs_resolve_name(MprVarHandle eid, int argc, struct MprVar **argv)
 /*
   setup C functions that be called from ejs
 */
-void smb_setup_ejs_nbt(void)
+NTSTATUS smb_setup_ejs_nbt(void)
 {
        ejsDefineCFunction(-1, "resolveName", ejs_resolve_name, NULL, MPR_VAR_SCRIPT_HANDLE);
+       return NT_STATUS_OK;
 }