aboutsummaryrefslogtreecommitdiffstats
path: root/src/starter/args.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-02-14 17:11:35 +0100
committerMartin Willi <martin@revosec.ch>2013-02-14 17:11:35 +0100
commite212033ef2012ff9be098ce2a9ee0da39c662c31 (patch)
tree2d421ad964fa2516a5efa452db5c04070f78f1ea /src/starter/args.c
parent285668b6e34a40173b5ae2563ebe440f3ae2e969 (diff)
parent88f4cd398825aa5c95e0d4ef839f0699f4901175 (diff)
downloadstrongswan-e212033ef2012ff9be098ce2a9ee0da39c662c31.tar.bz2
strongswan-e212033ef2012ff9be098ce2a9ee0da39c662c31.tar.xz
Merge branch 'ike-dscp'
Diffstat (limited to 'src/starter/args.c')
-rw-r--r--src/starter/args.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/starter/args.c b/src/starter/args.c
index 390062a99..5fbf51856 100644
--- a/src/starter/args.c
+++ b/src/starter/args.c
@@ -33,6 +33,7 @@ typedef enum {
ARG_TIME,
ARG_ULNG,
ARG_ULLI,
+ ARG_UBIN,
ARG_PCNT,
ARG_STR,
ARG_LST,
@@ -146,6 +147,7 @@ static const token_info_t token_info[] =
{ ARG_MISC, 0, NULL /* KW_MOBIKE */ },
{ ARG_MISC, 0, NULL /* KW_FORCEENCAPS */ },
{ ARG_ENUM, offsetof(starter_conn_t, fragmentation), LST_fragmentation },
+ { ARG_UBIN, offsetof(starter_conn_t, ikedscp), NULL },
{ ARG_TIME, offsetof(starter_conn_t, sa_ike_life_seconds), NULL },
{ ARG_TIME, offsetof(starter_conn_t, sa_ipsec_life_seconds), NULL },
{ ARG_TIME, offsetof(starter_conn_t, sa_rekey_margin), NULL },
@@ -399,6 +401,21 @@ bool assign_arg(kw_token_t token, kw_token_t first, kw_list_t *kw, char *base,
}
}
break;
+ case ARG_UBIN:
+ {
+ char *endptr;
+ u_int *u = (u_int *)p;
+
+ *u = strtoul(kw->value, &endptr, 2);
+
+ if (*endptr != '\0')
+ {
+ DBG1(DBG_APP, "# bad binary value: %s=%s", kw->entry->name,
+ kw->value);
+ return FALSE;
+ }
+ }
+ break;
case ARG_TIME:
{
char *endptr;