From b1e93b296ea8f62ce0f15ccef5f6ae5339f4929f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 12 Jul 2005 02:34:49 +0000 Subject: r8337: - use 64 bit access functions in ejs calls - added access to smbd random functions - fixed ordering in join() - added sys_interfaces(), sys_hostname(), sys_nttime() and sys_ldaptime() (This used to be commit 28c1a1f3c0cd2f8228fd8c3c695ab6f45226fa3f) --- source4/scripting/ejs/mprutil.c | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'source4/scripting/ejs/mprutil.c') diff --git a/source4/scripting/ejs/mprutil.c b/source4/scripting/ejs/mprutil.c index 4f799b2066..95571da245 100644 --- a/source4/scripting/ejs/mprutil.c +++ b/source4/scripting/ejs/mprutil.c @@ -211,7 +211,7 @@ struct MprVar mprLdbArray(struct ldb_message **msg, int count, const char *name) */ const char *mprToString(const struct MprVar *v) { - if (v->type != MPR_TYPE_STRING) return NULL; + if (!mprVarIsString(v->type)) return NULL; return v->string; } @@ -220,8 +220,8 @@ const char *mprToString(const struct MprVar *v) */ int mprToInt(const struct MprVar *v) { - if (v->type != MPR_TYPE_INT) return 0; - return v->integer; + if (!mprVarIsNumber(v->type)) return 0; + return mprVarToNumber(v); } /* @@ -249,6 +249,38 @@ const char **mprToList(TALLOC_CTX *mem_ctx, struct MprVar *v) return list; } + +/* + turn a MprVar object variable into a string list + this assumes the object variable is an array of strings +*/ +const char **mprToArray(TALLOC_CTX *mem_ctx, struct MprVar *v) +{ + const char **list = NULL; + struct MprVar *len; + int length, i; + + len = mprGetProperty(v, "length", NULL); + if (len == NULL) { + return NULL; + } + length = mprToInt(len); + + for (i=0;itype != MPR_TYPE_STRING) { + talloc_free(list); + return NULL; + } + list = str_list_add(list, mprToString(vs)); + } + talloc_steal(mem_ctx, list); + return list; +} + /* turn a NTSTATUS into a MprVar object with lots of funky properties */ -- cgit