diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-10-25 08:40:34 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-10-25 08:40:34 +0000 |
commit | 0e4d1d05ad29ea86f29d94741ec9d7f24fcdf955 (patch) | |
tree | 441e862a875fb4219d8c6e24e0c3e7c9ea3da19e /src/starter/confread.c | |
parent | b701b7895b280eb1f6949eb4bc9a45b89e6e9976 (diff) | |
download | strongswan-0e4d1d05ad29ea86f29d94741ec9d7f24fcdf955.tar.bz2 strongswan-0e4d1d05ad29ea86f29d94741ec9d7f24fcdf955.tar.xz |
added 'modeconfig=pull|push' and 'left|rightnatip' keywords
Diffstat (limited to 'src/starter/confread.c')
-rw-r--r-- | src/starter/confread.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/starter/confread.c b/src/starter/confread.c index 2389154ec..93b8beeb3 100644 --- a/src/starter/confread.c +++ b/src/starter/confread.c @@ -247,6 +247,11 @@ kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token end->has_port_wildcard = has_port_wildcard; break; case KW_SOURCEIP: + if (end->has_natip) + { + plog("# natip and sourceip cannot be defined at the same time"); + goto err; + } if (streq(value, "%modeconfig") || streq(value, "%modecfg")) { end->modecfg = TRUE; @@ -264,6 +269,22 @@ kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token } conn->policy |= POLICY_TUNNEL; break; + case KW_NATIP: + if (end->has_srcip) + { + plog("# natip and sourceip cannot be defined at the same time"); + goto err; + } + conn->tunnel_addr_family = ip_version(value); + ugh = ttoaddr(value, 0, conn->tunnel_addr_family, &end->srcip); + if (ugh != NULL) + { + plog("# bad addr: %s=%s [%s]", name, value, ugh); + goto err; + } + end->has_natip = TRUE; + conn->policy |= POLICY_TUNNEL; + break; default: break; } @@ -422,6 +443,9 @@ load_conn(starter_conn_t *conn, kw_list_t *kw, starter_config_t *cfg) case KW_REKEY: KW_POLICY_FLAG("no", "yes", POLICY_DONT_REKEY) break; + case KW_MODECONFIG: + KW_POLICY_FLAG("push", "pull", POLICY_MODECFG_PUSH) + break; default: break; } |