diff options
author | Martin Willi <martin@strongswan.org> | 2005-12-06 16:00:07 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2005-12-06 16:00:07 +0000 |
commit | 2b547481315c3b641b716023858efdbb2c3e422a (patch) | |
tree | 14f5f4f27b0fb602c20ef10e5e20f96bfeae1ea2 /Source/charon/encoding | |
parent | 4b41a0d4047fa483578f458ef21af5cad64b572b (diff) | |
download | strongswan-2b547481315c3b641b716023858efdbb2c3e422a.tar.bz2 strongswan-2b547481315c3b641b716023858efdbb2c3e422a.tar.xz |
- code cleanup in network and config
- moved packet_t members to private, added getter and setters
Diffstat (limited to 'Source/charon/encoding')
11 files changed, 32 insertions, 31 deletions
diff --git a/Source/charon/encoding/message.c b/Source/charon/encoding/message.c index 3c6386a3c..7506bcde7 100644 --- a/Source/charon/encoding/message.c +++ b/Source/charon/encoding/message.c @@ -488,11 +488,7 @@ static void add_payload(private_message_t *this, payload_t *payload) */ static void set_source(private_message_t *this, host_t *host) { - if (this->packet->source != NULL) - { - this->packet->source->destroy(this->packet->source); - } - this->packet->source = host; + this->packet->set_source(this->packet, host); } /** @@ -500,11 +496,8 @@ static void set_source(private_message_t *this, host_t *host) */ static void set_destination(private_message_t *this, host_t *host) { - if (this->packet->destination != NULL) - { - this->packet->destination->destroy(this->packet->destination); - } - this->packet->destination = host; + + this->packet->set_destination(this->packet, host); } /** @@ -512,7 +505,7 @@ static void set_destination(private_message_t *this, host_t *host) */ static host_t* get_source(private_message_t *this) { - return this->packet->source; + return this->packet->get_source(this->packet); } /** @@ -520,7 +513,7 @@ static host_t* get_source(private_message_t *this) */ static host_t * get_destination(private_message_t *this) { - return this->packet->destination; + return this->packet->get_destination(this->packet); } /** @@ -542,6 +535,7 @@ static status_t generate(private_message_t *this, crypter_t *crypter, signer_t* payload_t *payload, *next_payload; iterator_t *iterator; status_t status; + chunk_t packet_data; this->logger->log(this->logger, CONTROL, "Generating message of type %s, contains %d payloads", mapping_find(exchange_type_m,this->exchange_type), @@ -554,11 +548,11 @@ static status_t generate(private_message_t *this, crypter_t *crypter, signer_t* return INVALID_STATE; } - if (this->packet->source == NULL || - this->packet->destination == NULL) + if (this->packet->get_source(this->packet) == NULL || + this->packet->get_destination(this->packet) == NULL) { this->logger->log(this->logger, ERROR|MORE, "%s not defined", - !this->packet->source ? "source" : "destination"); + !this->packet->get_source(this->packet) ? "source" : "destination"); return INVALID_STATE; } @@ -615,12 +609,7 @@ static status_t generate(private_message_t *this, crypter_t *crypter, signer_t* ike_header->destroy(ike_header); /* build packet */ - if (this->packet->data.ptr != NULL) - { - this->logger->log(this->logger, CONTROL | MOST, "Replace last generated packet data"); - allocator_free(this->packet->data.ptr); - } - generator->write_to_chunk(generator, &(this->packet->data)); + generator->write_to_chunk(generator, &packet_data); generator->destroy(generator); /* if last payload is of type encrypted, integrity checksum if necessary */ @@ -628,13 +617,15 @@ static status_t generate(private_message_t *this, crypter_t *crypter, signer_t* { this->logger->log(this->logger, CONTROL | MORE, "Build signature on whole message"); encryption_payload_t *encryption_payload = (encryption_payload_t*)payload; - status = encryption_payload->build_signature(encryption_payload, this->packet->data); + status = encryption_payload->build_signature(encryption_payload, packet_data); if (status != SUCCESS) { return status; } } + this->packet->set_data(this->packet, packet_data); + /* clone packet for caller */ *packet = this->packet->clone(this->packet); @@ -656,7 +647,7 @@ static packet_t *get_packet (private_message_t *this) */ static chunk_t get_packet_data (private_message_t *this) { - return allocator_clone_chunk(this->packet->data); + return allocator_clone_chunk(this->packet->get_data(this->packet)); } /** @@ -930,7 +921,7 @@ static status_t decrypt_payloads(private_message_t *this,crypter_t *crypter, sig /* decrypt */ encryption_payload->set_transforms(encryption_payload, crypter, signer); this->logger->log(this->logger, CONTROL | MORE, "Verify signature of encryption payload"); - status = encryption_payload->verify_signature(encryption_payload, this->packet->data); + status = encryption_payload->verify_signature(encryption_payload, this->packet->get_data(this->packet)); if (status != SUCCESS) { this->logger->log(this->logger, ERROR | MORE, "encryption payload signature invalid"); @@ -1206,7 +1197,7 @@ message_t *message_create_from_packet(packet_t *packet) this->payloads = linked_list_create(); /* parser is created from data of packet */ - this->parser = parser_create(this->packet->data); + this->parser = parser_create(this->packet->get_data(this->packet)); this->logger = charon->logger_manager->create_logger(charon->logger_manager, MESSAGE, NULL); diff --git a/Source/charon/encoding/payloads/auth_payload.h b/Source/charon/encoding/payloads/auth_payload.h index 3c02b2845..7be3859aa 100644 --- a/Source/charon/encoding/payloads/auth_payload.h +++ b/Source/charon/encoding/payloads/auth_payload.h @@ -72,7 +72,7 @@ extern mapping_t auth_method_m[]; typedef struct auth_payload_t auth_payload_t; /** - * @brief Object representing an IKEv2 AUTH payload. + * @brief Class representing an IKEv2 AUTH payload. * * The AUTH payload format is described in draft section 3.8. * diff --git a/Source/charon/encoding/payloads/cert_payload.h b/Source/charon/encoding/payloads/cert_payload.h index 8cbdf469c..8553e1a1d 100644 --- a/Source/charon/encoding/payloads/cert_payload.h +++ b/Source/charon/encoding/payloads/cert_payload.h @@ -67,7 +67,7 @@ extern mapping_t cert_encoding_m[]; typedef struct cert_payload_t cert_payload_t; /** - * Object representing an IKEv2 CERT payload. + * @brief Class representing an IKEv2 CERT payload. * * The CERT payload format is described in draft section 3.6. * This is just a dummy implementation to fullfill the standards @@ -77,6 +77,8 @@ typedef struct cert_payload_t cert_payload_t; * @b Constructors: * - cert_payload_create() * + * @todo Implement setters/getters for the different certificate encodings. + * * @ingroup payloads */ struct cert_payload_t { diff --git a/Source/charon/encoding/payloads/certreq_payload.h b/Source/charon/encoding/payloads/certreq_payload.h index 4be395922..055bfc79d 100644 --- a/Source/charon/encoding/payloads/certreq_payload.h +++ b/Source/charon/encoding/payloads/certreq_payload.h @@ -48,6 +48,8 @@ typedef struct certreq_payload_t certreq_payload_t; * @b Constructors: * - certreq_payload_create() * + * @todo Implement payload functionality. + * * @ingroup payloads */ struct certreq_payload_t { diff --git a/Source/charon/encoding/payloads/delete_payload.h b/Source/charon/encoding/payloads/delete_payload.h index 801c10444..522754c95 100644 --- a/Source/charon/encoding/payloads/delete_payload.h +++ b/Source/charon/encoding/payloads/delete_payload.h @@ -46,6 +46,8 @@ typedef struct delete_payload_t delete_payload_t; * @b Constructors: * - delete_payload_create() * + * @todo Implement better setter/getters + * * @ingroup payloads */ struct delete_payload_t { diff --git a/Source/charon/encoding/payloads/eap_payload.h b/Source/charon/encoding/payloads/eap_payload.h index e0e54b125..a934a1860 100644 --- a/Source/charon/encoding/payloads/eap_payload.h +++ b/Source/charon/encoding/payloads/eap_payload.h @@ -44,6 +44,8 @@ typedef struct eap_payload_t eap_payload_t; * @b Constructors: * - eap_payload_create() * + * @todo Implement functionality for this payload + * * @ingroup payloads */ struct eap_payload_t { diff --git a/Source/charon/encoding/payloads/encryption_payload.h b/Source/charon/encoding/payloads/encryption_payload.h index a54663417..7119a72a0 100644 --- a/Source/charon/encoding/payloads/encryption_payload.h +++ b/Source/charon/encoding/payloads/encryption_payload.h @@ -186,7 +186,7 @@ struct encryption_payload_t { /** * @brief Creates an empty encryption_payload_t object. * - * @returnencryption_payload_t object + * @return encryption_payload_t object * * @ingroup payloads */ diff --git a/Source/charon/encoding/payloads/notify_payload.h b/Source/charon/encoding/payloads/notify_payload.h index 9ece46151..40995c402 100644 --- a/Source/charon/encoding/payloads/notify_payload.h +++ b/Source/charon/encoding/payloads/notify_payload.h @@ -92,6 +92,8 @@ typedef struct notify_payload_t notify_payload_t; * @b Constructors: * - notify_payload_create() * - notify_payload_create_from_protocol_and_type() + * + * @todo Build specified constructor/getter for notify's * * @ingroup payloads */ diff --git a/Source/charon/encoding/payloads/proposal_substructure.h b/Source/charon/encoding/payloads/proposal_substructure.h index d7b9c7bd4..5380d1c65 100644 --- a/Source/charon/encoding/payloads/proposal_substructure.h +++ b/Source/charon/encoding/payloads/proposal_substructure.h @@ -61,7 +61,7 @@ extern mapping_t protocol_id_m[]; typedef struct proposal_substructure_t proposal_substructure_t; /** - * Object representing an IKEv2-PROPOSAL SUBSTRUCTURE. + * @brief Class representing an IKEv2-PROPOSAL SUBSTRUCTURE. * * The PROPOSAL SUBSTRUCTURE format is described in RFC section 3.3.1. * diff --git a/Source/charon/encoding/payloads/transform_attribute.h b/Source/charon/encoding/payloads/transform_attribute.h index 1bcc02db2..732edd023 100644 --- a/Source/charon/encoding/payloads/transform_attribute.h +++ b/Source/charon/encoding/payloads/transform_attribute.h @@ -49,7 +49,7 @@ extern mapping_t transform_attribute_type_m[]; typedef struct transform_attribute_t transform_attribute_t; /** - * Object representing an IKEv2- TRANSFORM Attribute. + * @brief Class representing an IKEv2- TRANSFORM Attribute. * * The TRANSFORM ATTRIBUTE format is described in RFC section 3.3.5. * diff --git a/Source/charon/encoding/payloads/transform_substructure.h b/Source/charon/encoding/payloads/transform_substructure.h index 4efb42f3f..cd5cffe7b 100644 --- a/Source/charon/encoding/payloads/transform_substructure.h +++ b/Source/charon/encoding/payloads/transform_substructure.h @@ -95,7 +95,7 @@ extern mapping_t extended_sequence_numbers_m[]; typedef struct transform_substructure_t transform_substructure_t; /** - * Object representing an IKEv2- TRANSFORM SUBSTRUCTURE. + * @brief Class representing an IKEv2- TRANSFORM SUBSTRUCTURE. * * The TRANSFORM SUBSTRUCTURE format is described in RFC section 3.3.2. * |