#include <lib_internal/util-dimof.h>
#include <string.h>
+#include <strings.h>
#include <assert.h>
#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
static struct Mapping_uint64 const VALUES[] = {
- DECL("utsname", VC_VXC_SET_UTSNAME),
- DECL("rlimit", VC_VXC_SET_RLIMIT),
+ DECL("set_utsname", VC_VXC_SET_UTSNAME),
+ DECL("set_rlimit", VC_VXC_SET_RLIMIT),
+ DECL("fs_security", VC_VXC_FS_SECURITY),
+ DECL("tiocsti", VC_VXC_TIOCSTI),
DECL("raw_icmp", VC_VXC_RAW_ICMP),
DECL("syslog", VC_VXC_SYSLOG),
+ DECL("oom_adjust", VC_VXC_OOM_ADJUST),
+ DECL("audit_control", VC_VXC_AUDIT_CONTROL),
DECL("secure_mount", VC_VXC_SECURE_MOUNT),
DECL("secure_remount", VC_VXC_SECURE_REMOUNT),
DECL("binary_mount", VC_VXC_BINARY_MOUNT),
DECL("quota_ctl", VC_VXC_QUOTA_CTL),
DECL("admin_mapper", VC_VXC_ADMIN_MAPPER),
DECL("admin_cloop", VC_VXC_ADMIN_CLOOP),
+ DECL("kthread", VC_VXC_KTHREAD),
+ DECL("namespace", VC_VXC_NAMESPACE),
// some deprecated values...
DECL("mount", VC_VXC_SECURE_MOUNT),
DECL("remount", VC_VXC_SECURE_REMOUNT),
DECL("icmp", VC_VXC_RAW_ICMP),
DECL("ping", VC_VXC_RAW_ICMP),
+ DECL("utsname", VC_VXC_SET_UTSNAME),
+ DECL("rlimit", VC_VXC_SET_RLIMIT),
};
+inline static char const *
+removePrefix(char const *str, size_t *len)
+{
+ if ((len==0 || *len==0 || *len>4) &&
+ strncasecmp("vxc_", str, 4)==0) {
+ if (len && *len>4) *len -= 4;
+ return str+4;
+ }
+ else
+ return str;
+}
+
uint_least64_t
vc_text2ccap(char const *str, size_t len)
{
- ssize_t idx = utilvserver_value2text_uint64(str, len,
+ char const * tmp = removePrefix(str, &len);
+ ssize_t idx = utilvserver_value2text_uint64(tmp, len,
VALUES, DIM_OF(VALUES));
if (idx==-1) return 0;
else return VALUES[idx].val;