additional getters for ipcomp and UDP encap
This commit is contained in:
parent
6e10aeadab
commit
82d20c0588
|
@ -135,19 +135,17 @@ static void log_child_sa(FILE *out, child_sa_t *child_sa, bool all)
|
|||
|
||||
if (child_sa->get_state(child_sa) == CHILD_INSTALLED)
|
||||
{
|
||||
u_int16_t my_cpi = child_sa->get_cpi(child_sa, TRUE);
|
||||
u_int16_t other_cpi = child_sa->get_cpi(child_sa, FALSE);
|
||||
|
||||
fprintf(out, ", %N SPIs: %.8x_i %.8x_o",
|
||||
fprintf(out, ", %N%s SPIs: %.8x_i %.8x_o",
|
||||
protocol_id_names, child_sa->get_protocol(child_sa),
|
||||
child_sa->has_encap(child_sa) ? " in UDP": "",
|
||||
ntohl(child_sa->get_spi(child_sa, TRUE)),
|
||||
ntohl(child_sa->get_spi(child_sa, FALSE)));
|
||||
|
||||
/* Is IPCOMP activated ? */
|
||||
if (my_cpi && other_cpi)
|
||||
if (child_sa->get_ipcomp(child_sa) != IPCOMP_NONE)
|
||||
{
|
||||
fprintf(out, ", IPCOMP CPIs: %.4x_i %.4x_o",
|
||||
ntohs(my_cpi), ntohs(other_cpi));
|
||||
ntohs(child_sa->get_cpi(child_sa, TRUE)),
|
||||
ntohs(child_sa->get_cpi(child_sa, FALSE)));
|
||||
}
|
||||
|
||||
if (all)
|
||||
|
|
|
@ -247,6 +247,22 @@ protocol_id_t get_protocol(private_child_sa_t *this)
|
|||
return this->protocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of child_sa_t.has_encap
|
||||
*/
|
||||
static bool has_encap(private_child_sa_t *this)
|
||||
{
|
||||
return this->encap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of child_sa_t.get_ipcomp
|
||||
*/
|
||||
static ipcomp_transform_t get_ipcomp(private_child_sa_t *this)
|
||||
{
|
||||
return this->ipcomp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements child_sa_t.get_state
|
||||
*/
|
||||
|
@ -989,6 +1005,8 @@ child_sa_t * child_sa_create(host_t *me, host_t* other,
|
|||
this->public.get_cpi = (u_int16_t(*)(child_sa_t*, bool))get_cpi;
|
||||
this->public.get_protocol = (protocol_id_t(*)(child_sa_t*))get_protocol;
|
||||
this->public.get_mode = (ipsec_mode_t(*)(child_sa_t*))get_mode;
|
||||
this->public.get_ipcomp = (ipcomp_transform_t(*)(child_sa_t*))get_ipcomp;
|
||||
this->public.has_encap = (bool(*)(child_sa_t*))has_encap;
|
||||
this->public.get_encryption = (encryption_algorithm_t(*)(child_sa_t*, bool, chunk_t*))get_encryption;
|
||||
this->public.get_integrity = (integrity_algorithm_t(*)(child_sa_t*, bool, chunk_t*))get_integrity;
|
||||
this->public.get_lifetime = (u_int32_t(*)(child_sa_t*, bool))get_lifetime;
|
||||
|
|
|
@ -154,6 +154,20 @@ struct child_sa_t {
|
|||
*/
|
||||
ipsec_mode_t (*get_mode)(child_sa_t *this);
|
||||
|
||||
/**
|
||||
* Get the used IPComp algorithm.
|
||||
*
|
||||
* @return IPComp compression algorithm.
|
||||
*/
|
||||
ipcomp_transform_t (*get_ipcomp)(child_sa_t *this);
|
||||
|
||||
/**
|
||||
* Check if this CHILD_SA uses UDP encapsulation.
|
||||
*
|
||||
* @return TRUE if SA encapsulates ESP packets
|
||||
*/
|
||||
bool (*has_encap)(child_sa_t *this);
|
||||
|
||||
/**
|
||||
* Get the IPsec encryption key.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue