diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/scripting/ejs/ejsrpc.c | 44 | ||||
-rw-r--r-- | source4/scripting/ejs/ejsrpc.h | 23 |
2 files changed, 55 insertions, 12 deletions
diff --git a/source4/scripting/ejs/ejsrpc.c b/source4/scripting/ejs/ejsrpc.c index bc5fdd647f..990dee123c 100644 --- a/source4/scripting/ejs/ejsrpc.c +++ b/source4/scripting/ejs/ejsrpc.c @@ -96,6 +96,50 @@ static NTSTATUS mprSetVar(struct MprVar *v, const char *name, struct MprVar val) /* + pull a uint8 from a mpr variable to a C element +*/ +NTSTATUS ejs_pull_uint8(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint8_t *r) +{ + struct MprVar *var; + var = mprGetVar(v, name); + if (var == NULL) { + return NT_STATUS_INVALID_PARAMETER_MIX; + } + *r = mprVarToInteger(var); + return NT_STATUS_OK; + +} + +NTSTATUS ejs_push_uint8(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint8_t r) +{ + return mprSetVar(v, name, mprCreateIntegerVar(r)); +} + +/* + pull a uint16 from a mpr variable to a C element +*/ +NTSTATUS ejs_pull_uint16(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint16_t *r) +{ + struct MprVar *var; + var = mprGetVar(v, name); + if (var == NULL) { + return NT_STATUS_INVALID_PARAMETER_MIX; + } + *r = mprVarToInteger(var); + return NT_STATUS_OK; + +} + +NTSTATUS ejs_push_uint16(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint16_t r) +{ + return mprSetVar(v, name, mprCreateIntegerVar(r)); +} + +/* pull a uint32 from a mpr variable to a C element */ NTSTATUS ejs_pull_uint32(struct ejs_rpc *ejs, diff --git a/source4/scripting/ejs/ejsrpc.h b/source4/scripting/ejs/ejsrpc.h index b2d491d94d..252df9c235 100644 --- a/source4/scripting/ejs/ejsrpc.h +++ b/source4/scripting/ejs/ejsrpc.h @@ -30,19 +30,18 @@ typedef NTSTATUS (*ejs_push_function_t)(struct ejs_rpc *, struct MprVar *, const NTSTATUS ejs_pull_rpc(struct MprVar *v, void *ptr, ejs_pull_function_t ejs_pull); NTSTATUS ejs_push_rpc(struct MprVar *v, const void *ptr, ejs_push_function_t ejs_push); + +NTSTATUS ejs_pull_uint8(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint8_t *r); +NTSTATUS ejs_push_uint8(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint8_t r); + +NTSTATUS ejs_pull_uint16(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint16_t *r); +NTSTATUS ejs_push_uint16(struct ejs_rpc *ejs, + struct MprVar *v, const char *name, uint16_t r); + NTSTATUS ejs_pull_uint32(struct ejs_rpc *ejs, struct MprVar *v, const char *name, uint32_t *r); NTSTATUS ejs_push_uint32(struct ejs_rpc *ejs, struct MprVar *v, const char *name, uint32_t r); - - -/* echo calls */ - -#include "librpc/gen_ndr/ndr_echo.h" - -NTSTATUS ejs_pull_echo_AddOne(struct ejs_rpc *ejs, - struct MprVar *v, struct echo_AddOne *r); -NTSTATUS ejs_push_echo_AddOne(struct ejs_rpc *ejs, - struct MprVar *v, - const struct echo_AddOne *r); - |