Skip to content

Commit

Permalink
util: ipv4 multicast socket address test utility
Browse files Browse the repository at this point in the history
  • Loading branch information
mtomaschewski committed Apr 4, 2017
1 parent 1758129 commit 6143ece
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
2 changes: 2 additions & 0 deletions include/wicked/address.h
Expand Up @@ -60,6 +60,7 @@ typedef struct ni_address_array {
extern ni_bool_t ni_sockaddr_is_ipv4_loopback(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv4_linklocal(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv4_broadcast(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv4_multicast(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv4_specified(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv4_unspecified(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv6_loopback(const ni_sockaddr_t *);
Expand All @@ -72,6 +73,7 @@ extern ni_bool_t ni_sockaddr_is_ipv6_specified(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_ipv6_unspecified(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_loopback(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_linklocal(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_multicast(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_specified(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_is_unspecified(const ni_sockaddr_t *);
extern ni_bool_t ni_sockaddr_equal(const ni_sockaddr_t *, const ni_sockaddr_t *);
Expand Down
22 changes: 22 additions & 0 deletions src/address.c
Expand Up @@ -635,6 +635,15 @@ ni_sockaddr_is_ipv4_broadcast(const ni_sockaddr_t *saddr)
return FALSE;
}

ni_bool_t
ni_sockaddr_is_ipv4_multicast(const ni_sockaddr_t *saddr)
{
if (saddr->ss_family == AF_INET) {
return IN_MULTICAST(ntohl(saddr->sin.sin_addr.s_addr));
}
return FALSE;
}

ni_bool_t
ni_sockaddr_is_ipv4_specified(const ni_sockaddr_t *saddr)
{
Expand Down Expand Up @@ -754,6 +763,19 @@ ni_sockaddr_is_linklocal(const ni_sockaddr_t *saddr)
}
}

ni_bool_t
ni_sockaddr_is_multicast(const ni_sockaddr_t *saddr)
{
switch (saddr->ss_family) {
case AF_INET:
return ni_sockaddr_is_ipv4_multicast(saddr);
case AF_INET6:
return ni_sockaddr_is_ipv6_multicast(saddr);
default:
return FALSE;
}
}

ni_bool_t
ni_sockaddr_is_specified(const ni_sockaddr_t *saddr)
{
Expand Down

0 comments on commit 6143ece

Please sign in to comment.