From 2ed26253c1cc84fce6d9a00c642f3e7baffb5c80 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 7 Aug 2005 06:13:55 +0000 Subject: r9171: - support putting a credentials object in a rpc pipe object to allow authentication with other than the command line credentials in a rpc pipe (This used to be commit aae05ebc9c3dc7ad367aed09c54b85184ba7a82e) --- source4/scripting/ejs/mprutil.c | 9 ++++----- source4/scripting/ejs/smbcalls_rpc.c | 11 ++++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/source4/scripting/ejs/mprutil.c b/source4/scripting/ejs/mprutil.c index 657078e7c7..748f28c681 100644 --- a/source4/scripting/ejs/mprutil.c +++ b/source4/scripting/ejs/mprutil.c @@ -357,15 +357,14 @@ void mprSetPtrChild(struct MprVar *v, const char *propname, const void *p) */ void *mprGetPtr(struct MprVar *v, const char *propname) { - struct MprVar *val; - val = mprGetProperty(v, propname, NULL); - if (val == NULL) { + NTSTATUS status = mprGetVar(&v, propname); + if (!NT_STATUS_IS_OK(status)) { return NULL; } - if (val->type != MPR_TYPE_PTR) { + if (v->type != MPR_TYPE_PTR) { return NULL; } - return val->ptr; + return v->ptr; } /* diff --git a/source4/scripting/ejs/smbcalls_rpc.c b/source4/scripting/ejs/smbcalls_rpc.c index 8a08ba0d8d..f5b71b6715 100644 --- a/source4/scripting/ejs/smbcalls_rpc.c +++ b/source4/scripting/ejs/smbcalls_rpc.c @@ -109,7 +109,7 @@ static int ejs_rpc_connect(MprVarHandle eid, int argc, char **argv) const struct dcerpc_interface_table *iface; NTSTATUS status; struct dcerpc_pipe *p; - struct cli_credentials *creds = cmdline_credentials; + struct cli_credentials *creds; struct event_context *ev; struct MprVar *this = mprGetProperty(ejsGetLocalObject(eid), "this", 0); @@ -137,11 +137,14 @@ static int ejs_rpc_connect(MprVarHandle eid, int argc, char **argv) goto done; } + creds = mprGetPtr(this, "credentials.creds"); + if (creds == NULL) { + creds = cmdline_credentials; + } if (creds == NULL) { creds = cli_credentials_init(mprMemCtx()); cli_credentials_guess(creds); - cli_credentials_set_username(creds, "", CRED_GUESSED); - cli_credentials_set_password(creds, "", CRED_GUESSED); + cli_credentials_set_anonymous(creds); } ev = talloc_find_parent_bytype(mprMemCtx(), struct event_context); @@ -157,7 +160,6 @@ static int ejs_rpc_connect(MprVarHandle eid, int argc, char **argv) /* by making the pipe a child of the connection variable, it will auto close when it goes out of scope in the script */ mprSetPtrChild(this, "pipe", p); - mprSetPtr(this, "iface", iface); done: mpr_Return(eid, mprNTSTATUS(status)); @@ -353,7 +355,6 @@ done: return 0; } - /* a list of registered ejs rpc modules */ static struct ejs_register { struct ejs_register *next, *prev; -- cgit