aboutsummaryrefslogtreecommitdiffstats
path: root/src/starter
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2007-02-14 00:56:58 +0000
committerAndreas Steffen <andreas.steffen@strongswan.org>2007-02-14 00:56:58 +0000
commit3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea (patch)
treed542b64155014ef0f97e15a14d025164956be9e6 /src/starter
parent8245a9142ce101317851a171a744485c404fcfcd (diff)
downloadstrongswan-3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea.tar.bz2
strongswan-3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea.tar.xz
fixed starter crash due to freeing default IPSEC_EAPDIR string
Diffstat (limited to 'src/starter')
-rw-r--r--src/starter/confread.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/starter/confread.c b/src/starter/confread.c
index 66f70e5f9..9f1453394 100644
--- a/src/starter/confread.c
+++ b/src/starter/confread.c
@@ -63,7 +63,6 @@ static void default_values(starter_config_t *cfg)
cfg->setup.interfaces = new_list("%defaultroute");
cfg->setup.charonstart = TRUE;
cfg->setup.plutostart = TRUE;
- cfg->setup.eapdir = IPSEC_EAPDIR;
cfg->conn_default.seen = LEMPTY;
cfg->conn_default.startup = STARTUP_NO;
@@ -276,12 +275,27 @@ kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token
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)
+ if (streq(value, "%defaultroute"))
{
- plog("# bad addr: %s=%s [%s]", name, value, ugh);
- goto err;
+ if (cfg->defaultroute.defined)
+ {
+ end->srcip = cfg->defaultroute.addr;
+ }
+ else
+ {
+ plog("# default route not known: %s=%s", name, value);
+ goto err;
+ }
+ }
+ else
+ {
+ 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;