diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-07-12 02:34:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:20:07 -0500 |
commit | b1e93b296ea8f62ce0f15ccef5f6ae5339f4929f (patch) | |
tree | 2ba5c18f14d374a29a79061ee17b7dff28186355 /source4/scripting/ejs/mprutil.c | |
parent | 36bb0ffd4c59b17c7f942d874e18865707d3c696 (diff) | |
download | samba-b1e93b296ea8f62ce0f15ccef5f6ae5339f4929f.tar.gz samba-b1e93b296ea8f62ce0f15ccef5f6ae5339f4929f.tar.bz2 samba-b1e93b296ea8f62ce0f15ccef5f6ae5339f4929f.zip |
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)
Diffstat (limited to 'source4/scripting/ejs/mprutil.c')
-rw-r--r-- | source4/scripting/ejs/mprutil.c | 38 |
1 files changed, 35 insertions, 3 deletions
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;i<length;i++) { + char idx[16]; + struct MprVar *vs; + mprItoa(i, idx, sizeof(idx)); + vs = mprGetProperty(v, idx, NULL); + if (vs == NULL || vs->type != 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 */ |