support for transport in create_child_sa
include TRANSPORT/TUNNEL information in statusall
This commit is contained in:
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -52,6 +52,11 @@ enum dpd_action_t {
|
||||
DPD_RESTART,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum names for dpd_action_t.
|
||||
*/
|
||||
extern enum_name_t *dpd_action_names;
|
||||
|
||||
/**
|
||||
* @brief Mode of an IPsec SA.
|
||||
*
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user