X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=utils.c;h=ba2695272ac9a1fac486ebdecc6f97544aaf54fb;hp=d202505397f330ea999d6583ef75285f6ffb1f45;hb=7f6be657e2dabc185417520de4d0d0de2580c27d;hpb=f80b9e4acc47cf454768b44142495fdb8a68a39f diff --git a/utils.c b/utils.c index d202505..ba26952 100644 --- a/utils.c +++ b/utils.c @@ -17,6 +17,7 @@ #include #include +#include #ifdef __APPLE__ #include @@ -195,3 +196,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]; +}