aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2007-01-08 06:55:50 +0000
committerMartin Willi <martin@strongswan.org>2007-01-08 06:55:50 +0000
commit21f42524e0fe6e4ec825f29d0bf87bc0285ea9b6 (patch)
treea549c3baf03b2fd4c8197f91f93588335e421e62 /src
parent09ff4110612a52c2a8d57674c4c249a9d5d81bd6 (diff)
downloadstrongswan-21f42524e0fe6e4ec825f29d0bf87bc0285ea9b6.tar.bz2
strongswan-21f42524e0fe6e4ec825f29d0bf87bc0285ea9b6.tar.xz
support for transport in create_child_sa
include TRANSPORT/TUNNEL information in statusall
Diffstat (limited to 'src')
-rw-r--r--src/charon/config/policies/policy.c8
-rw-r--r--src/charon/config/policies/policy.h9
-rw-r--r--src/charon/sa/child_sa.c5
-rw-r--r--src/charon/sa/transactions/create_child_sa.c12
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)
{