aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/encoding/message.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2006-05-23 08:01:49 +0000
committerMartin Willi <martin@strongswan.org>2006-05-23 08:01:49 +0000
commit4a5bba25e28eee22bb81ac8faecfff33a0839885 (patch)
tree87857b923a9e5429e9f6ecb1f3fb1cce4989c540 /src/charon/encoding/message.c
parent4acc8989ce04ce23532435c75d3a4406ed246f04 (diff)
downloadstrongswan-4a5bba25e28eee22bb81ac8faecfff33a0839885.tar.bz2
strongswan-4a5bba25e28eee22bb81ac8faecfff33a0839885.tar.xz
- reimplemented proper IKE SA deletion using a seperate state,
should conform now to IKEv2
Diffstat (limited to 'src/charon/encoding/message.c')
-rw-r--r--src/charon/encoding/message.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/charon/encoding/message.c b/src/charon/encoding/message.c
index a57315272..9875a3df9 100644
--- a/src/charon/encoding/message.c
+++ b/src/charon/encoding/message.c
@@ -941,7 +941,7 @@ static status_t decrypt_payloads(private_message_t *this,crypter_t *crypter, sig
iterator->destroy(iterator);
return FAILED;
}
- /* decrypt */
+ /* decrypt */
encryption_payload->set_transforms(encryption_payload, crypter, signer);
this->logger->log(this->logger, CONTROL | LEVEL1, "Verify signature of encryption payload");
status = encryption_payload->verify_signature(encryption_payload, this->packet->get_data(this->packet));
@@ -955,8 +955,9 @@ static status_t decrypt_payloads(private_message_t *this,crypter_t *crypter, sig
status = encryption_payload->decrypt(encryption_payload);
if (status != SUCCESS)
{
- this->logger->log(this->logger, ERROR | LEVEL1, "Encrypted payload could not be decrypted and parsed: %s",
- mapping_find(status_m, status));
+ this->logger->log(this->logger, ERROR | LEVEL1,
+ "Encrypted payload could not be decrypted and parsed: %s",
+ mapping_find(status_m, status));
iterator->destroy(iterator);
return status;
}
@@ -997,8 +998,9 @@ static status_t decrypt_payloads(private_message_t *this,crypter_t *crypter, sig
while (encryption_payload->get_payload_count(encryption_payload) > 0)
{
encryption_payload->remove_first_payload(encryption_payload, &current_encrypted_payload);
- this->logger->log(this->logger, CONTROL | LEVEL1, "Insert unencrypted payload of type %s at end of list.",
- mapping_find(payload_type_m,current_encrypted_payload->get_type(current_encrypted_payload)));
+ this->logger->log(this->logger, CONTROL | LEVEL1,
+ "Insert unencrypted payload of type %s at end of list.",
+ mapping_find(payload_type_m, current_encrypted_payload->get_type(current_encrypted_payload)));
this->payloads->insert_last(this->payloads,current_encrypted_payload);
}
@@ -1007,14 +1009,15 @@ static status_t decrypt_payloads(private_message_t *this,crypter_t *crypter, sig
}
/* we allow unknown payloads of any type and don't bother if it was encrypted. Not our problem. */
- if (current_payload_type != UNKNOWN_PAYLOAD)
+ if (current_payload_type != UNKNOWN_PAYLOAD && current_payload_type != NO_PAYLOAD)
{
/* get the ruleset for found payload */
status = this->get_payload_rule(this, current_payload_type, &payload_rule);
if (status != SUCCESS)
{
/* payload is not allowed */
- this->logger->log(this->logger, ERROR | LEVEL1, "Payload type %s not allowed",mapping_find(payload_type_m,current_payload_type));
+ this->logger->log(this->logger, ERROR | LEVEL1, "Payload type %s not allowed",
+ mapping_find(payload_type_m,current_payload_type));
iterator->destroy(iterator);
return status;
}