aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/encoding
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2005-12-06 16:00:07 +0000
committerMartin Willi <martin@strongswan.org>2005-12-06 16:00:07 +0000
commit2b547481315c3b641b716023858efdbb2c3e422a (patch)
tree14f5f4f27b0fb602c20ef10e5e20f96bfeae1ea2 /Source/charon/encoding
parent4b41a0d4047fa483578f458ef21af5cad64b572b (diff)
downloadstrongswan-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')
-rw-r--r--Source/charon/encoding/message.c41
-rw-r--r--Source/charon/encoding/payloads/auth_payload.h2
-rw-r--r--Source/charon/encoding/payloads/cert_payload.h4
-rw-r--r--Source/charon/encoding/payloads/certreq_payload.h2
-rw-r--r--Source/charon/encoding/payloads/delete_payload.h2
-rw-r--r--Source/charon/encoding/payloads/eap_payload.h2
-rw-r--r--Source/charon/encoding/payloads/encryption_payload.h2
-rw-r--r--Source/charon/encoding/payloads/notify_payload.h2
-rw-r--r--Source/charon/encoding/payloads/proposal_substructure.h2
-rw-r--r--Source/charon/encoding/payloads/transform_attribute.h2
-rw-r--r--Source/charon/encoding/payloads/transform_substructure.h2
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.
*