diff options
author | Martin Willi <martin@revosec.ch> | 2013-06-05 10:48:57 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-06-19 16:36:01 +0200 |
commit | ad5ad02adebbadc534459963c90be7b19254018e (patch) | |
tree | 7e4875b515f6aa0367fb6542bf2c6bf42a4f1b6e /src | |
parent | 975457c4d8677100833f674ea5405cbfd8c8ca84 (diff) | |
download | strongswan-ad5ad02adebbadc534459963c90be7b19254018e.tar.bz2 strongswan-ad5ad02adebbadc534459963c90be7b19254018e.tar.xz |
ikev2: properly fall back to tunnel mode if transport/BEET mode not configured
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/sa/ikev2/tasks/child_create.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libcharon/sa/ikev2/tasks/child_create.c b/src/libcharon/sa/ikev2/tasks/child_create.c index 53bd3e144..3e5dcc82e 100644 --- a/src/libcharon/sa/ikev2/tasks/child_create.c +++ b/src/libcharon/sa/ikev2/tasks/child_create.c @@ -555,6 +555,10 @@ static status_t select_and_install(private_child_create_t *this, this->mode = MODE_TUNNEL; DBG1(DBG_IKE, "not using transport mode, not host-to-host"); } + if (this->config->get_mode(this->config) != MODE_TRANSPORT) + { + this->mode = MODE_TUNNEL; + } break; case MODE_BEET: if (!ts_list_is_host(this->tsi, NULL) || @@ -563,6 +567,10 @@ static status_t select_and_install(private_child_create_t *this, this->mode = MODE_TUNNEL; DBG1(DBG_IKE, "not using BEET mode, not host-to-host"); } + if (this->config->get_mode(this->config) != MODE_BEET) + { + this->mode = MODE_TUNNEL; + } break; default: break; @@ -1169,8 +1177,6 @@ METHOD(task_t, build_r, status_t, return SUCCESS; } - this->mode = this->config->get_mode(this->config); - /* check if ike_config_t included non-critical error notifies */ enumerator = message->create_payload_enumerator(message); while (enumerator->enumerate(enumerator, &payload)) |