#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("set_utsname", VC_VXC_SET_UTSNAME),
- DECL("rlimit", VC_VXC_SET_RLIMIT),
+ DECL("set_rlimit", VC_VXC_SET_RLIMIT),
DECL("raw_icmp", VC_VXC_RAW_ICMP),
DECL("syslog", VC_VXC_SYSLOG),
DECL("secure_mount", VC_VXC_SECURE_MOUNT),
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;
#include <lib_internal/util-dimof.h>
#include <string.h>
+#include <strings.h>
#include <assert.h>
#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
// Some pseudo flags
DECL("secure", VC_VXF_HIDE_NETIF),
DECL("default", VC_VXF_VIRT_UPTIME),
+
+ // Aliases for the legacy flags
+ DECL("info_lock", VC_VXF_INFO_LOCK),
+ DECL("info_nproc", VC_VXF_INFO_NPROC),
+ DECL("info_private", VC_VXF_INFO_PRIVATE),
+ DECL("info_init", VC_VXF_INFO_INIT),
+
+ DECL("info_hideinfo", VC_VXF_INFO_HIDEINFO),
+ DECL("info_ulimit", VC_VXF_INFO_ULIMIT),
+ DECL("info_namespace", VC_VXF_INFO_NAMESPACE),
+ // 2.6 name
+ DECL("info_nspace", VC_VXF_INFO_NAMESPACE),
};
+inline static char const *
+removePrefix(char const *str, size_t *len)
+{
+ if ((len==0 || *len==0 || *len>4) &&
+ strncasecmp("vxf_", str, 4)==0) {
+ if (len && *len>4) *len -= 4;
+ return str+4;
+ }
+ else
+ return str;
+}
+
uint_least64_t
vc_text2cflag(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;
#include <lib_internal/util-dimof.h>
#include <string.h>
+#include <strings.h>
#include <assert.h>
#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
DECL("", 0)
};
+inline static char const *
+removePrefix(char const *str, size_t *len)
+{
+ if ((len==0 || *len==0 || *len>4) &&
+ strncasecmp("nxc_", str, 4)==0) {
+ if (len && *len>4) *len -= 4;
+ return str+4;
+ }
+ else
+ return str;
+}
+
uint_least64_t
vc_text2ncap(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;
#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("lock", VC_NXF_INFO_LOCK),
+ DECL("private", VC_NXF_INFO_PRIVATE),
+
+ DECL("hide_netif", VC_NXF_HIDE_NETIF),
DECL("state_setup", VC_NXF_STATE_SETUP),
DECL("state_admin", VC_NXF_STATE_ADMIN),
DECL("sc_helper", VC_NXF_SC_HELPER),
DECL("persistent", VC_NXF_PERSISTENT),
+
+ // Aliases for the legacy flags
+ DECL("info_lock", VC_NXF_INFO_LOCK),
+ DECL("info_private", VC_NXF_INFO_PRIVATE),
};
+inline static char const *
+removePrefix(char const *str, size_t *len)
+{
+ if ((len==0 || *len==0 || *len>4) &&
+ strncasecmp("nxf_", str, 4)==0) {
+ if (len && *len>4) *len -= 4;
+ return str+4;
+ }
+ else
+ return str;
+}
+
uint_least64_t
vc_text2nflag(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;
// the network flags
#define VC_NXF_INFO_LOCK 0x00000001ull
+#define VC_NXF_INFO_PRIVATE 0x00000008ull
+
+#define VC_NXF_HIDE_NETIF 0x02000000ull
#define VC_NXF_STATE_SETUP (1ULL<<32)
#define VC_NXF_STATE_ADMIN (1ULL<<34)