From: Lennart Poettering Date: Tue, 12 Aug 2014 12:54:32 +0000 (+0200) Subject: timesyncd: move the generic sockaddr_equal() call to socket-util.h X-Git-Tag: v216~186 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=f01e5736f1555eec9183e48448fa3454f265b73e;p=elogind.git timesyncd: move the generic sockaddr_equal() call to socket-util.h --- diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c index 0a0726d87..1a04f323a 100644 --- a/src/shared/socket-util.c +++ b/src/shared/socket-util.c @@ -711,3 +711,19 @@ static const char* const socket_address_bind_ipv6_only_table[_SOCKET_ADDRESS_BIN }; DEFINE_STRING_TABLE_LOOKUP(socket_address_bind_ipv6_only, SocketAddressBindIPv6Only); + +bool sockaddr_equal(const union sockaddr_union *a, const union sockaddr_union *b) { + assert(a); + assert(b); + + if (a->sa.sa_family != b->sa.sa_family) + return false; + + if (a->sa.sa_family == AF_INET) + return a->in.sin_addr.s_addr == b->in.sin_addr.s_addr; + + if (a->sa.sa_family == AF_INET6) + return memcmp(&a->in6.sin6_addr, &b->in6.sin6_addr, sizeof(a->in6.sin6_addr)) == 0; + + return false; +} diff --git a/src/shared/socket-util.h b/src/shared/socket-util.h index 9883ab032..0b4998d04 100644 --- a/src/shared/socket-util.h +++ b/src/shared/socket-util.h @@ -109,3 +109,5 @@ SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const char * int netlink_family_to_string_alloc(int b, char **s); int netlink_family_from_string(const char *s) _pure_; + +bool sockaddr_equal(const union sockaddr_union *a, const union sockaddr_union *b); diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c index e5a8a578c..500f83f67 100644 --- a/src/timesync/timesyncd.c +++ b/src/timesync/timesyncd.c @@ -536,22 +536,6 @@ static void manager_adjust_poll(Manager *m, double offset, bool spike) { } } -static bool sockaddr_equal(union sockaddr_union *a, union sockaddr_union *b) { - assert(a); - assert(b); - - if (a->sa.sa_family != b->sa.sa_family) - return false; - - if (a->sa.sa_family == AF_INET) - return a->in.sin_addr.s_addr == b->in.sin_addr.s_addr; - - if (a->sa.sa_family == AF_INET6) - return memcmp(&a->in6.sin6_addr, &b->in6.sin6_addr, sizeof(a->in6.sin6_addr)) == 0; - - return false; -} - static int manager_receive_response(sd_event_source *source, int fd, uint32_t revents, void *userdata) { Manager *m = userdata; struct ntp_msg ntpmsg;