diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-08-05 23:01:57 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2005-08-05 23:01:57 +0000 |
commit | 14c0ced9a2edf9797e9caac7be9ac1ad0ee516f6 (patch) | |
tree | 201aebbfbc5c7691d585fbc69d151eea0f7b031c /source/scripting | |
parent | dce8fbe8cbddb378a0373484e54e46b039330f80 (diff) | |
download | samba-14c0ced9a2edf9797e9caac7be9ac1ad0ee516f6.tar.gz samba-14c0ced9a2edf9797e9caac7be9ac1ad0ee516f6.tar.xz samba-14c0ced9a2edf9797e9caac7be9ac1ad0ee516f6.zip |
r9146: - enable winreg pipe from ejs
- map the result code from rpc calls into the ejs objects
- treat winreg_String like lsa_String, hiding the length elements
Diffstat (limited to 'source/scripting')
-rw-r--r-- | source/scripting/ejs/ejsrpc.c | 31 | ||||
-rw-r--r-- | source/scripting/ejs/ejsrpc.h | 4 |
2 files changed, 35 insertions, 0 deletions
diff --git a/source/scripting/ejs/ejsrpc.c b/source/scripting/ejs/ejsrpc.c index f3abc3c34a8..f107c84b73a 100644 --- a/source/scripting/ejs/ejsrpc.c +++ b/source/scripting/ejs/ejsrpc.c @@ -25,6 +25,7 @@ #include "scripting/ejs/smbcalls.h" #include "librpc/gen_ndr/ndr_security.h" #include "librpc/gen_ndr/ndr_lsa.h" +#include "librpc/gen_ndr/ndr_winreg.h" #include "scripting/ejs/ejsrpc.h" /* @@ -182,6 +183,18 @@ NTSTATUS ejs_push_NTTIME(struct ejs_rpc *ejs, return ejs_push_hyper(ejs, v, name, r); } +NTSTATUS ejs_push_WERROR(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, const WERROR *r) +{ + return ejs_push_string(ejs, v, name, win_errstr(*r)); +} + +NTSTATUS ejs_push_NTSTATUS(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, const NTSTATUS *r) +{ + return ejs_push_string(ejs, v, name, nt_errstr(*r)); +} + /* pull a enum from a mpr variable to a C element @@ -292,6 +305,24 @@ NTSTATUS ejs_push_lsa_String(struct ejs_rpc *ejs, return ejs_push_string(ejs, v, name, r->string); } +/* + pull a winreg_String +*/ +NTSTATUS ejs_pull_winreg_String(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, struct winreg_String *r) +{ + return ejs_pull_string(ejs, v, name, &r->name); +} + +/* + push a winreg_String +*/ +NTSTATUS ejs_push_winreg_String(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, const struct winreg_String *r) +{ + return ejs_push_string(ejs, v, name, r->name); +} + NTSTATUS ejs_pull_DATA_BLOB(struct ejs_rpc *ejs, struct MprVar *v, const char *name, DATA_BLOB *r) { diff --git a/source/scripting/ejs/ejsrpc.h b/source/scripting/ejs/ejsrpc.h index 8bd735c7395..99da0d35ea0 100644 --- a/source/scripting/ejs/ejsrpc.h +++ b/source/scripting/ejs/ejsrpc.h @@ -95,6 +95,10 @@ NTSTATUS ejs_push_dom_sid(struct ejs_rpc *ejs, struct MprVar *v, const char *name, const struct dom_sid *r); NTSTATUS ejs_push_null(struct ejs_rpc *ejs, struct MprVar *v, const char *name); BOOL ejs_pull_null(struct ejs_rpc *ejs, struct MprVar *v, const char *name); +NTSTATUS ejs_push_WERROR(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, const WERROR *r); +NTSTATUS ejs_push_NTSTATUS(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, const NTSTATUS *r); NTSTATUS ejs_pull_DATA_BLOB(struct ejs_rpc *ejs, struct MprVar *v, const char *name, DATA_BLOB *r); NTSTATUS ejs_push_DATA_BLOB(struct ejs_rpc *ejs, |