diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/config/policies/policy.c | 8 | ||||
-rw-r--r-- | src/charon/config/policies/policy.h | 9 | ||||
-rw-r--r-- | src/charon/sa/child_sa.c | 5 | ||||
-rw-r--r-- | src/charon/sa/transactions/create_child_sa.c | 12 |
4 files changed, 26 insertions, 8 deletions
diff --git a/src/charon/config/policies/policy.c b/src/charon/config/policies/policy.c index f7e2eb43c..34bd15131 100644 --- a/src/charon/config/policies/policy.c +++ b/src/charon/config/policies/policy.c @@ -38,6 +38,14 @@ ENUM(dpd_action_names, DPD_NONE, DPD_RESTART, "DPD_RESTART" ); +ENUM(mode_names, MODE_TRANSPORT, MODE_BEET, + "TRANSPORT", + "TUNNEL", + "2", + "3", + "BEET" +); + typedef struct private_policy_t private_policy_t; /** diff --git a/src/charon/config/policies/policy.h b/src/charon/config/policies/policy.h index 76b20f69b..123383ca6 100644 --- a/src/charon/config/policies/policy.h +++ b/src/charon/config/policies/policy.h @@ -53,6 +53,11 @@ enum dpd_action_t { }; /** + * enum names for dpd_action_t. + */ +extern enum_name_t *dpd_action_names; + +/** * @brief Mode of an IPsec SA. * * These are equal to those defined in XFRM, so don't change. @@ -69,9 +74,9 @@ enum mode_t { }; /** - * enum names for dpd_action_t. + * enum names for mode_t. */ -extern enum_name_t *dpd_action_names; +extern enum_name_t *mode_names; /** * @brief A policy_t defines the policies to apply to CHILD_SAs. diff --git a/src/charon/sa/child_sa.c b/src/charon/sa/child_sa.c index 874937dd2..182da8651 100644 --- a/src/charon/sa/child_sa.c +++ b/src/charon/sa/child_sa.c @@ -780,8 +780,9 @@ static int print(FILE *stream, const struct printf_info *info, now = (u_int32_t)time(NULL); - written += fprintf(stream, "%12s: %N, reqid: %d", this->name, - child_sa_state_names, this->state, this->reqid); + written += fprintf(stream, "%12s: %N, reqid: %d, %N", this->name, + child_sa_state_names, this->state, this->reqid, + mode_names, this->mode); if (this->state == CHILD_INSTALLED) { diff --git a/src/charon/sa/transactions/create_child_sa.c b/src/charon/sa/transactions/create_child_sa.c index c07347d47..bcb3ced38 100644 --- a/src/charon/sa/transactions/create_child_sa.c +++ b/src/charon/sa/transactions/create_child_sa.c @@ -509,11 +509,13 @@ static status_t install_child_sa(private_create_child_sa_t *this, bool initiator if (initiator) { - status = this->child_sa->update(this->child_sa, this->proposal, 1, prf_plus); + status = this->child_sa->update(this->child_sa, this->proposal, + this->mode, prf_plus); } else { - status = this->child_sa->add(this->child_sa, this->proposal, 1, prf_plus); + status = this->child_sa->add(this->child_sa, this->proposal, + this->mode, prf_plus); } prf_plus->destroy(prf_plus); if (status != SUCCESS) @@ -522,11 +524,13 @@ static status_t install_child_sa(private_create_child_sa_t *this, bool initiator } if (initiator) { - status = this->child_sa->add_policies(this->child_sa, this->tsi, this->tsr, 1); + status = this->child_sa->add_policies(this->child_sa, this->tsi, + this->tsr, this->mode); } else { - status = this->child_sa->add_policies(this->child_sa, this->tsr, this->tsi, 1); + status = this->child_sa->add_policies(this->child_sa, this->tsr, + this->tsi, this->mode); } if (status != SUCCESS) { |