diff options
author | Martin Willi <martin@revosec.ch> | 2013-02-06 15:19:32 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-02-06 15:36:36 +0100 |
commit | 7fbe516f881fa9b1ddcb16d935f3be21c5f925dc (patch) | |
tree | 91b64dd0c96588830452de5efd152482c654c91b /src/starter/args.c | |
parent | 5b15bd5f9dd373fd799991ca184f6e6a670b9c8d (diff) | |
download | strongswan-7fbe516f881fa9b1ddcb16d935f3be21c5f925dc.tar.bz2 strongswan-7fbe516f881fa9b1ddcb16d935f3be21c5f925dc.tar.xz |
Add a ikedscp ipsec.conf option to set DSCP value on outgoing IKE packets
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; |