Invoke bus_t.message hook twice, once plain and parsed, once encoded and encrypted

This commit is contained in:
Martin Willi
2012-03-20 17:31:37 +01:00
parent ae92641806
commit 47b8f6ef4b
31 changed files with 124 additions and 98 deletions
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+24 -21
View File
@@ -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);
}
}
}
}
+25 -22
View File
@@ -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);
}
}
}
}
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{
+2 -2
View File
@@ -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)
{