return (c->config->never_negotiate_shunt != SHUNT_UNSET);
}
+bool connection_end_needs_dns(const struct connection_end *end)
+{
+ return (end->config->host.host.type == KH_IPHOSTNAME &&
+ !address_is_specified(end->host.addr));
+}
+
bool is_opportunistic(const struct connection *c)
{
return (c != NULL && c->config->opportunistic);
bool is_xauth(const struct connection *c);
+bool connection_end_needs_dns(const struct connection_end *end);
+
/* IKE SA | ISAKMP SA || Child SA | IPsec SA */
const char *connection_sa_name(const struct connection *c, enum sa_kind sa_kind);
/* IKE | ISAKMP || Child | IPsec */
jam_string(buf, " remote: ");
jam_host_addr(buf, c->remote);
jam_string(buf, ")");
+ } else if (connection_end_needs_dns(c->remote)) {
+ /*
+ * Can only be .remote; if .local's lookup
+ * failed then .local wouldn't have an address
+ * and couldn't orient.
+ */
+ jam_string(buf, " (remote: ");
+ jam_host_addr(buf, c->remote);
+ jam_string(buf, " requires DNS lookup)");
}
} else if (listening) {
/*