From 8663e9de716248bf72832aee70090f574b3ff5d2 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 17 Feb 2014 12:12:21 +0000 Subject: [PATCH] add a helper to convert blobmsg types to luci validate rules Signed-off-by: John Crispin --- utils.c | 19 +++++++++++++++++++ utils.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/utils.c b/utils.c index d202505..aa4132b 100644 --- a/utils.c +++ b/utils.c @@ -195,3 +195,22 @@ bool check_pid_path(int pid, const char *exe) return !memcmp(exe, proc_exe_buf, exe_len); } + +static const char * const uci_validate_name[__BLOBMSG_TYPE_LAST] = { + [BLOBMSG_TYPE_STRING] = "string", + [BLOBMSG_TYPE_ARRAY] = "list(string)", + [BLOBMSG_TYPE_INT32] = "uinteger", + [BLOBMSG_TYPE_BOOL] = "bool", +}; + +const char* +uci_get_validate_string(const struct uci_blob_param_list *p, int i) +{ + if (p->validate[i]) + return p->validate[i]; + + else if (uci_validate_name[p->params[i].type]) + return uci_validate_name[p->params[i].type]; + + return p->validate[BLOBMSG_TYPE_STRING]; +} diff --git a/utils.h b/utils.h index b0a7d02..7973b6f 100644 --- a/utils.h +++ b/utils.h @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -114,6 +115,8 @@ char * format_macaddr(uint8_t *mac); uint32_t crc32_file(FILE *fp); +const char * uci_get_validate_string(const struct uci_blob_param_list *c, int i); + #ifdef __APPLE__ #define s6_addr32 __u6_addr.__u6_addr32 #endif -- 2.30.2