diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-10-02 12:09:33 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-10-02 12:09:33 +0200 |
commit | 4915be11e8d51675275ecea98582f9e032da489a (patch) | |
tree | 9a8f2f9b28e2ae0226cfba2a14e2e18ed799b249 /src/libstrongswan/utils | |
parent | 79838a72057d33ff95a0aa077ff62dbc00aca321 (diff) | |
download | strongswan-4915be11e8d51675275ecea98582f9e032da489a.tar.bz2 strongswan-4915be11e8d51675275ecea98582f9e032da489a.tar.xz |
Migrated host to INIT/METHOD macros
Diffstat (limited to 'src/libstrongswan/utils')
-rw-r--r-- | src/libstrongswan/utils/host.c | 94 |
1 files changed, 41 insertions, 53 deletions
diff --git a/src/libstrongswan/utils/host.c b/src/libstrongswan/utils/host.c index 0a6cceb77..d3020a5d0 100644 --- a/src/libstrongswan/utils/host.c +++ b/src/libstrongswan/utils/host.c @@ -59,26 +59,20 @@ struct private_host_t { }; -/** - * implements host_t.get_sockaddr - */ -static sockaddr_t *get_sockaddr(private_host_t *this) +METHOD(host_t, get_sockaddr, sockaddr_t*, + private_host_t *this) { return &(this->address); } -/** - * implements host_t.get_sockaddr_len - */ -static socklen_t *get_sockaddr_len(private_host_t *this) +METHOD(host_t, get_sockaddr_len, socklen_t*, + private_host_t *this) { return &(this->socklen); } -/** - * Implementation of host_t.is_anyaddr. - */ -static bool is_anyaddr(private_host_t *this) +METHOD(host_t, is_anyaddr, bool, + private_host_t *this) { switch (this->address.sa_family) { @@ -163,10 +157,8 @@ int host_printf_hook(char *dst, size_t dstlen, printf_hook_spec_t *spec, return print_in_hook(dst, dstlen, "%*s", spec->width, buffer); } -/** - * Implementation of host_t.get_address. - */ -static chunk_t get_address(private_host_t *this) +METHOD(host_t, get_address, chunk_t, + private_host_t *this) { chunk_t address = chunk_empty; @@ -192,18 +184,14 @@ static chunk_t get_address(private_host_t *this) } } -/** - * implements host_t.get_family - */ -static int get_family(private_host_t *this) +METHOD(host_t, get_family, int, + private_host_t *this) { return this->address.sa_family; } -/** - * implements host_t.get_port - */ -static u_int16_t get_port(private_host_t *this) +METHOD(host_t, get_port, u_int16_t, + private_host_t *this) { switch (this->address.sa_family) { @@ -222,10 +210,8 @@ static u_int16_t get_port(private_host_t *this) } } -/** - * implements host_t.set_port - */ -static void set_port(private_host_t *this, u_int16_t port) +METHOD(host_t, set_port, void, + private_host_t *this, u_int16_t port) { switch (this->address.sa_family) { @@ -246,19 +232,19 @@ static void set_port(private_host_t *this, u_int16_t port) } } -/** - * Implements host_t.clone. - */ -static private_host_t *clone_(private_host_t *this) +METHOD(host_t, clone_, host_t*, + private_host_t *this) { - private_host_t *new = malloc_thing(private_host_t); + private_host_t *new; + new = malloc_thing(private_host_t); memcpy(new, this, sizeof(private_host_t)); - return new; + + return &new->public; } /** - * Impelements host_t.ip_equals + * Implements host_t.ip_equals */ static bool ip_equals(private_host_t *this, private_host_t *other) { @@ -332,10 +318,8 @@ static bool equals(private_host_t *this, private_host_t *other) return FALSE; } -/** - * Implements host_t.destroy - */ -static void destroy(private_host_t *this) +METHOD(host_t, destroy, void, + private_host_t *this) { free(this); } @@ -345,20 +329,24 @@ static void destroy(private_host_t *this) */ static private_host_t *host_create_empty(void) { - private_host_t *this = malloc_thing(private_host_t); - - this->public.get_sockaddr = (sockaddr_t* (*) (host_t*))get_sockaddr; - this->public.get_sockaddr_len = (socklen_t*(*) (host_t*))get_sockaddr_len; - this->public.clone = (host_t* (*) (host_t*))clone_; - this->public.get_family = (int (*) (host_t*))get_family; - this->public.get_address = (chunk_t (*) (host_t *)) get_address; - this->public.get_port = (u_int16_t (*) (host_t *))get_port; - this->public.set_port = (void (*) (host_t *,u_int16_t))set_port; - this->public.get_differences = get_differences; - this->public.ip_equals = (bool (*) (host_t *,host_t *)) ip_equals; - this->public.equals = (bool (*) (host_t *,host_t *)) equals; - this->public.is_anyaddr = (bool (*) (host_t *)) is_anyaddr; - this->public.destroy = (void (*) (host_t*))destroy; + private_host_t *this; + + INIT(this, + .public = { + .get_sockaddr = _get_sockaddr, + .get_sockaddr_len = _get_sockaddr_len, + .clone = _clone_, + .get_family = _get_family, + .get_address = _get_address, + .get_port = _get_port, + .set_port = _set_port, + .get_differences = get_differences, + .ip_equals = (bool (*)(host_t *,host_t *))ip_equals, + .equals = (bool (*)(host_t *,host_t *)) equals, + .is_anyaddr = _is_anyaddr, + .destroy = _destroy, + }, + ); return this; } |