Pass initiator parameter to distinguish between original and exchange initiator
This commit is contained in:
@@ -63,6 +63,7 @@ METHOD(listener_t, child_keys, bool,
|
|||||||
m = ha_message_create(HA_CHILD_ADD);
|
m = ha_message_create(HA_CHILD_ADD);
|
||||||
|
|
||||||
m->add_attribute(m, HA_IKE_ID, ike_sa->get_id(ike_sa));
|
m->add_attribute(m, HA_IKE_ID, ike_sa->get_id(ike_sa));
|
||||||
|
m->add_attribute(m, HA_INITIATOR, (u_int8_t)initiator);
|
||||||
m->add_attribute(m, HA_INBOUND_SPI, child_sa->get_spi(child_sa, TRUE));
|
m->add_attribute(m, HA_INBOUND_SPI, child_sa->get_spi(child_sa, TRUE));
|
||||||
m->add_attribute(m, HA_OUTBOUND_SPI, child_sa->get_spi(child_sa, FALSE));
|
m->add_attribute(m, HA_OUTBOUND_SPI, child_sa->get_spi(child_sa, FALSE));
|
||||||
m->add_attribute(m, HA_INBOUND_CPI, child_sa->get_cpi(child_sa, TRUE));
|
m->add_attribute(m, HA_INBOUND_CPI, child_sa->get_cpi(child_sa, TRUE));
|
||||||
|
|||||||
@@ -443,11 +443,13 @@ static void process_child_add(private_ha_dispatcher_t *this,
|
|||||||
case HA_IKE_ID:
|
case HA_IKE_ID:
|
||||||
ike_sa = charon->ike_sa_manager->checkout(charon->ike_sa_manager,
|
ike_sa = charon->ike_sa_manager->checkout(charon->ike_sa_manager,
|
||||||
value.ike_sa_id);
|
value.ike_sa_id);
|
||||||
initiator = value.ike_sa_id->is_initiator(value.ike_sa_id);
|
|
||||||
break;
|
break;
|
||||||
case HA_CONFIG_NAME:
|
case HA_CONFIG_NAME:
|
||||||
config_name = value.str;
|
config_name = value.str;
|
||||||
break;
|
break;
|
||||||
|
case HA_INITIATOR:
|
||||||
|
initiator = value.u8;
|
||||||
|
break;
|
||||||
case HA_INBOUND_SPI:
|
case HA_INBOUND_SPI:
|
||||||
inbound_spi = value.u32;
|
inbound_spi = value.u32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -212,6 +212,7 @@ METHOD(ha_message_t, add_attribute, void,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* u_int8_t */
|
/* u_int8_t */
|
||||||
|
case HA_INITIATOR:
|
||||||
case HA_IPSEC_MODE:
|
case HA_IPSEC_MODE:
|
||||||
case HA_IPCOMP:
|
case HA_IPCOMP:
|
||||||
{
|
{
|
||||||
@@ -422,6 +423,7 @@ METHOD(enumerator_t, attribute_enumerate, bool,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
/* u_int8_t */
|
/* u_int8_t */
|
||||||
|
case HA_INITIATOR:
|
||||||
case HA_IPSEC_MODE:
|
case HA_IPSEC_MODE:
|
||||||
case HA_IPCOMP:
|
case HA_IPCOMP:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -98,6 +98,8 @@ enum ha_message_attribute_t {
|
|||||||
HA_REMOTE_VIP,
|
HA_REMOTE_VIP,
|
||||||
/** host_t*, additional MOBIKE peer address */
|
/** host_t*, additional MOBIKE peer address */
|
||||||
HA_ADDITIONAL_ADDR,
|
HA_ADDITIONAL_ADDR,
|
||||||
|
/** u_int8_t, initiator of an exchange, TRUE for local */
|
||||||
|
HA_INITIATOR,
|
||||||
/** chunk_t, initiators nonce */
|
/** chunk_t, initiators nonce */
|
||||||
HA_NONCE_I,
|
HA_NONCE_I,
|
||||||
/** chunk_t, responders nonce */
|
/** chunk_t, responders nonce */
|
||||||
|
|||||||
Reference in New Issue
Block a user