diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-06-25 11:28:39 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-06-25 11:28:39 +0000 |
commit | 3f946e1c90d26811a580d8d81f85fd2a77c3267d (patch) | |
tree | 2254ad47a1a31c9296d21c69658499be8da6d126 /src | |
parent | e6a22d8728355efebdde67a8886855f275353850 (diff) | |
download | strongswan-3f946e1c90d26811a580d8d81f85fd2a77c3267d.tar.bz2 strongswan-3f946e1c90d26811a580d8d81f85fd2a77c3267d.tar.xz |
support of right=%<FQDN> wildcard
Diffstat (limited to 'src')
-rw-r--r-- | src/starter/confread.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/starter/confread.c b/src/starter/confread.c index 76d085513..da25f60b9 100644 --- a/src/starter/confread.c +++ b/src/starter/confread.c @@ -183,12 +183,30 @@ kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token } else { + bool fallback_to_any = FALSE; + + if (value[0] == '%') + { + fallback_to_any = TRUE; + end->allow_any = TRUE; + value++; + } conn->addr_family = ip_version(value); ugh = ttoaddr(value, 0, conn->addr_family, &end->addr); if (ugh != NULL) { plog("# bad addr: %s=%s [%s]", name, value, ugh); - goto err; + if (fallback_to_any) + { + plog("# fallback to %s=%%any due to '%%' prefix"); + anyaddr(conn->addr_family, &end->addr); + end->allow_any = FALSE; + cfg->non_fatal_err++; + } + else + { + goto err; + } } } break; |