getifmaddrs(3)
NAME
getifmaddrs - get multicast group memberships
SYNOPSIS
#include <sys/types.h> #include <sys/socket.h> #include <ifaddrs.h> int getifmaddrs(struct ifmaddrs **ifmap); void freeifmaddrs(struct ifmaddrs *ifmp);
DESCRIPTION
- The getifmaddrs() function stores a reference to a linked
- list of the
multicast memberships on the local machine in the memory - referenced by
ifmap. The list consists of ifmaddrs structures, as defined - in the
include file The ifmaddrs structure contains at least the - following
entries:
struct ifmaddrs *ifma_next; /* Pointer to next- struct */
struct sockaddr *ifma_name; /* Interface name - (AF_LINK) */
struct sockaddr *ifma_addr; /* Multicast address - */
struct sockaddr *ifma_lladdr; /* Link-layer transla - tion, if any */
- The ifma_next field contains a pointer to the next structure
- on the list.
This field is NULL in last structure on the list. - The ifma_name field references an AF_LINK address structure,
- containing
the name of the interface where the membership exists. - The ifma_addr references the address that this membership is
- for.
- The ifma_lladdr field references a link-layer translation
- for the protocol-level address in ifma_addr, if one is set, otherwise it
- is NULL.
- The data returned by getifmaddrs() is dynamically allocated
- and should be
freed using freeifmaddrs() when no longer needed.
RETURN VALUES
- The getifmaddrs() function returns the value 0 if success
- ful; otherwise
the value -1 is returned and the global variable errno is - set to indicate
the error.
ERRORS
- The getifmaddrs() may fail and set errno for any of the er
- rors specified
for the library routines malloc(3) or sysctl(3).
SEE ALSO
sysctl(3), networking(4), ifconfig(8)
HISTORY
The getifmaddrs() function first appeared in FreeBSD 5.2.
BUGS
- If both #include <net/if.h>
and #include <ifaddrs.h>
are being included, #include <net/if.h> must be included before - BSD November 14, 2003