summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-08-07 06:13:55 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:31:27 -0500
commit2ed26253c1cc84fce6d9a00c642f3e7baffb5c80 (patch)
tree2b4f7e560daceca0d94fcdde35d3dd392fff4ea3 /source4
parent232704793eb9bc5e89f8626fa96f5c33f00269cb (diff)
downloadsamba-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')
-rw-r--r--source4/scripting/ejs/mprutil.c9
-rw-r--r--source4/scripting/ejs/smbcalls_rpc.c11
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;