diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-08-07 06:13:55 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:31:27 -0500 |
commit | 2ed26253c1cc84fce6d9a00c642f3e7baffb5c80 (patch) | |
tree | 2b4f7e560daceca0d94fcdde35d3dd392fff4ea3 /source4/scripting | |
parent | 232704793eb9bc5e89f8626fa96f5c33f00269cb (diff) | |
download | samba-2ed26253c1cc84fce6d9a00c642f3e7baffb5c80.tar.gz samba-2ed26253c1cc84fce6d9a00c642f3e7baffb5c80.tar.bz2 samba-2ed26253c1cc84fce6d9a00c642f3e7baffb5c80.zip |
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)
Diffstat (limited to 'source4/scripting')
-rw-r--r-- | source4/scripting/ejs/mprutil.c | 9 | ||||
-rw-r--r-- | 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; |