Author: tridge
Date: 2005-08-07 06:13:55 +0000 (Sun, 07 Aug 2005)
New Revision: 9171

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9171

Log:
- support putting a credentials object in a rpc pipe object to allow 
authentication
  with other than the command line credentials in a rpc pipe

Modified:
   branches/SAMBA_4_0/source/scripting/ejs/mprutil.c
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_rpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/ejs/mprutil.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/mprutil.c   2005-08-07 02:53:27 UTC 
(rev 9170)
+++ branches/SAMBA_4_0/source/scripting/ejs/mprutil.c   2005-08-07 06:13:55 UTC 
(rev 9171)
@@ -357,15 +357,14 @@
 */
 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;
 }
 
 /*

Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_rpc.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_rpc.c      2005-08-07 
02:53:27 UTC (rev 9170)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_rpc.c      2005-08-07 
06:13:55 UTC (rev 9171)
@@ -109,7 +109,7 @@
        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 @@
                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 @@
        /* 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 @@
        return 0;
 }
 
-
 /* a list of registered ejs rpc modules */
 static struct ejs_register {
        struct ejs_register *next, *prev;

Reply via email to