Invoke bus_t.message hook twice, once plain and parsed, once encoded and encrypted
This commit is contained in:
@@ -60,9 +60,9 @@ struct private_add_notify_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_add_notify_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -62,9 +62,9 @@ struct private_add_payload_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_add_payload_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -111,9 +111,9 @@ static linked_list_t* load_proposals(private_custom_proposal_t *this,
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_custom_proposal_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -32,9 +32,9 @@ struct private_force_cookie_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_force_cookie_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming && message->get_request(message) &&
|
||||
if (incoming && plain && message->get_request(message) &&
|
||||
message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
|
||||
@@ -45,9 +45,9 @@ struct private_ignore_message_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_ignore_message_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming == this->in &&
|
||||
if (incoming == this->in && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -92,9 +92,9 @@ static size_t calculate_wire_size(message_t *message, ike_sa_t *ike_sa)
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_ike_auth_fill_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -32,9 +32,9 @@ struct private_log_id_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_log_id_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming)
|
||||
if (incoming && plain)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
payload_t *payload;
|
||||
|
||||
@@ -32,9 +32,9 @@ struct private_log_ke_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_log_ke_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming)
|
||||
if (incoming && plain)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
payload_t *payload;
|
||||
|
||||
@@ -32,9 +32,9 @@ struct private_log_proposals_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_log_proposals_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming)
|
||||
if (incoming && plain)
|
||||
{
|
||||
enumerator_t *enumerator, *proposals;
|
||||
payload_t *payload;
|
||||
|
||||
@@ -32,9 +32,9 @@ struct private_log_ts_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_log_ts_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming)
|
||||
if (incoming && plain)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
payload_t *payload;
|
||||
|
||||
@@ -311,35 +311,38 @@ static void process_auth_response(private_pretend_auth_t *this,
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_pretend_auth_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (incoming)
|
||||
if (plain)
|
||||
{
|
||||
if (!message->get_request(message))
|
||||
if (incoming)
|
||||
{
|
||||
if (message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
if (!message->get_request(message))
|
||||
{
|
||||
process_init_response(this, ike_sa, message);
|
||||
}
|
||||
if (message->get_exchange_type(message) == IKE_AUTH &&
|
||||
message->get_message_id(message) == 1)
|
||||
{
|
||||
process_auth_response(this, ike_sa, message);
|
||||
if (message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
{
|
||||
process_init_response(this, ike_sa, message);
|
||||
}
|
||||
if (message->get_exchange_type(message) == IKE_AUTH &&
|
||||
message->get_message_id(message) == 1)
|
||||
{
|
||||
process_auth_response(this, ike_sa, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (message->get_request(message))
|
||||
else
|
||||
{
|
||||
if (message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
if (message->get_request(message))
|
||||
{
|
||||
process_init_request(this, ike_sa, message);
|
||||
}
|
||||
if (message->get_exchange_type(message) == IKE_AUTH &&
|
||||
message->get_message_id(message) == 1)
|
||||
{
|
||||
process_auth_request(this, ike_sa, message);
|
||||
if (message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
{
|
||||
process_init_request(this, ike_sa, message);
|
||||
}
|
||||
if (message->get_exchange_type(message) == IKE_AUTH &&
|
||||
message->get_message_id(message) == 1)
|
||||
{
|
||||
process_auth_request(this, ike_sa, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,34 +175,37 @@ static bool rebuild_auth(private_rebuild_auth_t *this, ike_sa_t *ike_sa,
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_rebuild_auth_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming && message->get_message_id(message) == 1)
|
||||
if (plain)
|
||||
{
|
||||
rebuild_auth(this, ike_sa, message);
|
||||
}
|
||||
if (message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
{
|
||||
if (incoming)
|
||||
if (!incoming && message->get_message_id(message) == 1)
|
||||
{
|
||||
nonce_payload_t *nonce;
|
||||
|
||||
nonce = (nonce_payload_t*)message->get_payload(message, NONCE);
|
||||
if (nonce)
|
||||
{
|
||||
free(this->nonce.ptr);
|
||||
this->nonce = nonce->get_nonce(nonce);
|
||||
}
|
||||
rebuild_auth(this, ike_sa, message);
|
||||
}
|
||||
else
|
||||
if (message->get_exchange_type(message) == IKE_SA_INIT)
|
||||
{
|
||||
packet_t *packet;
|
||||
|
||||
if (message->generate(message, NULL, &packet) == SUCCESS)
|
||||
if (incoming)
|
||||
{
|
||||
free(this->ike_init.ptr);
|
||||
this->ike_init = chunk_clone(packet->get_data(packet));
|
||||
packet->destroy(packet);
|
||||
nonce_payload_t *nonce;
|
||||
|
||||
nonce = (nonce_payload_t*)message->get_payload(message, NONCE);
|
||||
if (nonce)
|
||||
{
|
||||
free(this->nonce.ptr);
|
||||
this->nonce = nonce->get_nonce(nonce);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
packet_t *packet;
|
||||
|
||||
if (message->generate(message, NULL, &packet) == SUCCESS)
|
||||
{
|
||||
free(this->ike_init.ptr);
|
||||
this->ike_init = chunk_clone(packet->get_data(packet));
|
||||
packet->destroy(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,9 +47,9 @@ struct private_set_critical_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_critical_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -42,9 +42,9 @@ struct private_set_ike_initiator_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_ike_initiator_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -42,9 +42,9 @@ struct private_set_ike_request_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_ike_request_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -52,9 +52,9 @@ struct private_set_ike_spi_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_ike_spi_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -57,9 +57,9 @@ struct private_set_ike_version_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_ike_version_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -50,9 +50,9 @@ struct private_set_length_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_length_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -69,9 +69,9 @@ static void copy_proposal_algs(proposal_t *from, proposal_t *to,
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_proposal_number_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -163,9 +163,9 @@ static void set_byte(private_set_reserved_t *this, message_t *message,
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_set_reserved_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
@@ -45,9 +45,9 @@ struct private_unsort_message_t {
|
||||
|
||||
METHOD(listener_t, message, bool,
|
||||
private_unsort_message_t *this, ike_sa_t *ike_sa, message_t *message,
|
||||
bool incoming)
|
||||
bool incoming, bool plain)
|
||||
{
|
||||
if (!incoming &&
|
||||
if (!incoming && plain &&
|
||||
message->get_request(message) == this->req &&
|
||||
message->get_message_id(message) == this->id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user