git://git.onelab.eu
/
util-vserver.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge 0.30.214.
[util-vserver.git]
/
lib
/
ncaps-net.c
diff --git
a/lib/ncaps-net.c
b/lib/ncaps-net.c
index
a2105d0
..
344f532
100644
(file)
--- a/
lib/ncaps-net.c
+++ b/
lib/ncaps-net.c
@@
-1,4
+1,4
@@
-// $Id: ncaps-net.c
,v 1.2 2005/04/24 20:25:17 ensc Exp
$ --*- c -*--
+// $Id: ncaps-net.c
2585 2007-08-12 00:13:31Z dhozac
$ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
//
// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
//
@@
-25,19
+25,32
@@
#include <lib_internal/util-dimof.h>
#include <string.h>
#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[] = {
#include <assert.h>
#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
static struct Mapping_uint64 const VALUES[] = {
-#warning Add the 'ncap' values here
- DECL("", 0)
+ DECL("raw_icmp", VC_NXC_RAW_ICMP),
};
};
+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)
{
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;
VALUES, DIM_OF(VALUES));
if (idx==-1) return 0;
else return VALUES[idx].val;