aboutsummaryrefslogtreecommitdiffstats
path: root/src/starter/args.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-02-06 15:19:32 +0100
committerMartin Willi <martin@revosec.ch>2013-02-06 15:36:36 +0100
commit7fbe516f881fa9b1ddcb16d935f3be21c5f925dc (patch)
tree91b64dd0c96588830452de5efd152482c654c91b /src/starter/args.c
parent5b15bd5f9dd373fd799991ca184f6e6a670b9c8d (diff)
downloadstrongswan-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.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;