diff options
author | Martin Willi <martin@revosec.ch> | 2013-02-14 17:11:35 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-02-14 17:11:35 +0100 |
commit | e212033ef2012ff9be098ce2a9ee0da39c662c31 (patch) | |
tree | 2d421ad964fa2516a5efa452db5c04070f78f1ea /src/starter/args.c | |
parent | 285668b6e34a40173b5ae2563ebe440f3ae2e969 (diff) | |
parent | 88f4cd398825aa5c95e0d4ef839f0699f4901175 (diff) | |
download | strongswan-e212033ef2012ff9be098ce2a9ee0da39c662c31.tar.bz2 strongswan-e212033ef2012ff9be098ce2a9ee0da39c662c31.tar.xz |
Merge branch 'ike-dscp'
Diffstat (limited to 'src/starter/args.c')
-rw-r--r-- | src/starter/args.c | 17 |
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; |