diff options
author | Martin Willi <martin@revosec.ch> | 2011-07-07 12:42:15 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-08-08 13:36:56 +0200 |
commit | f9152a56ab2194c4229017191878d90a5ed346bc (patch) | |
tree | 2cb64447a86b6a4c04787b472d2c56d769a2102e | |
parent | d1196ffe589af6cbce5bc52b96e4600e4ce832a7 (diff) | |
download | strongswan-f9152a56ab2194c4229017191878d90a5ed346bc.tar.bz2 strongswan-f9152a56ab2194c4229017191878d90a5ed346bc.tar.xz |
Migrated simaka_message to INIT/METHOD macros
-rw-r--r-- | src/libsimaka/simaka_message.c | 100 |
1 files changed, 38 insertions, 62 deletions
diff --git a/src/libsimaka/simaka_message.c b/src/libsimaka/simaka_message.c index adef5a9a0..969dc45ae 100644 --- a/src/libsimaka/simaka_message.c +++ b/src/libsimaka/simaka_message.c @@ -198,34 +198,26 @@ struct private_simaka_message_t { chunk_t iv; }; -/** - * Implementation of simaka_message_t.is_request - */ -static bool is_request(private_simaka_message_t *this) +METHOD(simaka_message_t, is_request, bool, + private_simaka_message_t *this) { return this->hdr->code == EAP_REQUEST; } -/** - * Implementation of simaka_message_t.get_identifier - */ -static u_int8_t get_identifier(private_simaka_message_t *this) +METHOD(simaka_message_t, get_identifier, u_int8_t, + private_simaka_message_t *this) { return this->hdr->identifier; } -/** - * Implementation of simaka_message_t.get_subtype - */ -static simaka_subtype_t get_subtype(private_simaka_message_t *this) +METHOD(simaka_message_t, get_subtype, simaka_subtype_t, + private_simaka_message_t *this) { return this->hdr->subtype; } -/** - * Implementation of simaka_message_t.get_type - */ -static eap_type_t get_type(private_simaka_message_t *this) +METHOD(simaka_message_t, get_type, eap_type_t, + private_simaka_message_t *this) { return this->hdr->type; } @@ -243,21 +235,16 @@ static bool attr_enum_filter(void *null, attr_t **in, simaka_attribute_t *type, return TRUE; } -/** - * Implementation of simaka_message_t.create_attribute_enumerator - */ -static enumerator_t* create_attribute_enumerator(private_simaka_message_t *this) +METHOD(simaka_message_t, create_attribute_enumerator, enumerator_t*, + private_simaka_message_t *this) { return enumerator_create_filter( this->attributes->create_enumerator(this->attributes), (void*)attr_enum_filter, NULL, NULL); } -/** - * Implementation of simaka_message_t.add_attribute - */ -static void add_attribute(private_simaka_message_t *this, - simaka_attribute_t type, chunk_t data) +METHOD(simaka_message_t, add_attribute, void, + private_simaka_message_t *this, simaka_attribute_t type, chunk_t data) { attr_t *attr; @@ -522,10 +509,8 @@ static bool decrypt(private_simaka_message_t *this) return success; } -/** - * Implementation of simaka_message_t.parse - */ -static bool parse(private_simaka_message_t *this) +METHOD(simaka_message_t, parse, bool, + private_simaka_message_t *this) { chunk_t in; @@ -543,10 +528,8 @@ static bool parse(private_simaka_message_t *this) return decrypt(this); } -/** - * Implementation of simaka_message_t.verify - */ -static bool verify(private_simaka_message_t *this, chunk_t sigdata) +METHOD(simaka_message_t, verify, bool, + private_simaka_message_t *this, chunk_t sigdata) { chunk_t data, backup; signer_t *signer; @@ -616,10 +599,8 @@ static bool verify(private_simaka_message_t *this, chunk_t sigdata) return TRUE; } -/** - * Implementation of simaka_message_t.generate - */ -static chunk_t generate(private_simaka_message_t *this, chunk_t sigdata) +METHOD(simaka_message_t, generate, chunk_t, + private_simaka_message_t *this, chunk_t sigdata) { /* buffers large enough for messages we generate */ char out_buf[1024], encr_buf[512]; @@ -849,10 +830,8 @@ static chunk_t generate(private_simaka_message_t *this, chunk_t sigdata) return chunk_clone(out); } -/** - * Implementation of simaka_message_t.destroy. - */ -static void destroy(private_simaka_message_t *this) +METHOD(simaka_message_t, destroy, void, + private_simaka_message_t *this) { this->attributes->destroy_function(this->attributes, free); free(this->hdr); @@ -886,27 +865,24 @@ static simaka_message_t *simaka_message_create_data(chunk_t data, return NULL; } - this = malloc_thing(private_simaka_message_t); - - this->public.is_request = (bool(*)(simaka_message_t*))is_request; - this->public.get_identifier = (u_int8_t(*)(simaka_message_t*))get_identifier; - this->public.get_type = (eap_type_t(*)(simaka_message_t*))get_type; - this->public.get_subtype = (simaka_subtype_t(*)(simaka_message_t*))get_subtype; - this->public.create_attribute_enumerator = (enumerator_t*(*)(simaka_message_t*))create_attribute_enumerator; - this->public.add_attribute = (void(*)(simaka_message_t*, simaka_attribute_t type, chunk_t data))add_attribute; - this->public.parse = (bool(*)(simaka_message_t*))parse; - this->public.verify = (bool(*)(simaka_message_t*, chunk_t sigdata))verify; - this->public.generate = (chunk_t(*)(simaka_message_t*, chunk_t sigdata))generate; - this->public.destroy = (void(*)(simaka_message_t*))destroy; - - this->attributes = linked_list_create(); - this->encrypted = FALSE; - this->crypto = crypto; - this->p_bit = TRUE; - this->mac = chunk_empty; - this->encr = chunk_empty; - this->iv = chunk_empty; - this->hdr = malloc(data.len); + INIT(this, + .public = { + .is_request = _is_request, + .get_identifier = _get_identifier, + .get_type = _get_type, + .get_subtype = _get_subtype, + .create_attribute_enumerator = _create_attribute_enumerator, + .add_attribute = _add_attribute, + .parse = _parse, + .verify = _verify, + .generate = _generate, + .destroy = _destroy, + }, + .attributes = linked_list_create(), + .crypto = crypto, + .p_bit = TRUE, + .hdr = malloc(data.len), + ); memcpy(this->hdr, hdr, data.len); return &this->public; |