Charon does this lookup dynamically.
/* end keywords */
{ ARG_STR, offsetof(starter_end_t, host), NULL },
{ ARG_UINT, offsetof(starter_end_t, ikeport), NULL },
- { ARG_MISC, 0, NULL /* KW_NEXTHOP */ },
{ ARG_STR, offsetof(starter_end_t, subnet), NULL },
{ ARG_MISC, 0, NULL /* KW_SUBNETWITHIN */ },
{ ARG_MISC, 0, NULL /* KW_PROTOPORT */ },
ADDCMP(addr);
}
VARCMP(ikeport);
- ADDCMP(nexthop);
VARCMP(has_client);
VARCMP(has_client_wildcard);
VARCMP(has_port_wildcard);
cfg->conn_default.right.sendcert = CERT_SEND_IF_ASKED;
anyaddr(AF_INET, &cfg->conn_default.left.addr);
- anyaddr(AF_INET, &cfg->conn_default.left.nexthop);
anyaddr(AF_INET, &cfg->conn_default.right.addr);
- anyaddr(AF_INET, &cfg->conn_default.right.nexthop);
cfg->conn_default.left.ikeport = 500;
cfg->conn_default.right.ikeport = 500;
/* individual processing of keywords that were not assigned automatically */
switch (token)
{
- case KW_NEXTHOP:
- if (streq(value, "%direct"))
- {
- ugh = anyaddr(conn->addr_family, &end->nexthop);
- }
- else
- {
- conn->addr_family = ip_version(value);
- ugh = ttoaddr(value, 0, conn->addr_family, &end->nexthop);
- }
- if (ugh != NULL)
- {
- DBG1(DBG_APP, "# bad addr: %s=%s [%s]", name, value, ugh);
- goto err;
- }
- break;
case KW_SUBNETWITHIN:
{
ip_subnet net;
char *host;
ip_address addr;
u_int ikeport;
- ip_address nexthop;
char *subnet;
bool has_client;
bool has_client_wildcard;
/* end keywords */
KW_HOST,
KW_IKEPORT,
- KW_NEXTHOP,
KW_SUBNET,
KW_SUBNETWITHIN,
KW_PROTOPORT,
/* left end keywords */
KW_LEFT,
KW_LEFTIKEPORT,
- KW_LEFTNEXTHOP,
KW_LEFTSUBNET,
KW_LEFTSUBNETWITHIN,
KW_LEFTPROTOPORT,
/* right end keywords */
KW_RIGHT,
KW_RIGHTIKEPORT,
- KW_RIGHTNEXTHOP,
KW_RIGHTSUBNET,
KW_RIGHTSUBNETWITHIN,
KW_RIGHTPROTOPORT,
certuribase, KW_CERTURIBASE
left, KW_LEFT
leftikeport, KW_LEFTIKEPORT
-leftnexthop, KW_LEFTNEXTHOP
leftsubnet, KW_LEFTSUBNET
leftsubnetwithin, KW_LEFTSUBNETWITHIN
leftprotoport, KW_LEFTPROTOPORT
leftgroups, KW_LEFTGROUPS
right, KW_RIGHT
rightikeport, KW_RIGHTIKEPORT
-rightnexthop, KW_RIGHTNEXTHOP
rightsubnet, KW_RIGHTSUBNET
rightsubnetwithin, KW_RIGHTSUBNETWITHIN
rightprotoport, KW_RIGHTPROTOPORT