getsourcefilter(3N) getsourcefilter(3N)
NAME
getsourcefilter() - get IP multicast source filter state
SYNOPSIS
DESCRIPTION
This function retrieves the multicast source filter state for an IPv4 or IPv6 multicast group which the application has joined on a given
socket.
Parameters
s Specifies the descriptor identifying the socket. The socket address family must be or and the socket type must be
interface Holds the interface index of a local interface, or zero. If set to zero, the system chooses a multicast group by matching the
multicast address only.
group Points to either a sockaddr_in structure (for IPv4) or a sockaddr_in6 structure (for IPv6) that holds the IP multicast address of
the group.
grouplen Holds the size of the structure pointed to by the group argument.
fmode Points to an integer that will contain the filter mode on a successful return. The value of this field will be either or which
are defined in
numsrc On input, the numsrc argument holds the number of source addresses that will fit in the slist array. On output, the numsrc argu-
ment will hold the total number of sources in the filter.
slist Points to buffer into which an array of sockaddr_storage structures containing the IP addresses of included or excluded (depend-
ing on the filter mode) sources will be written. The sockaddr_storage structures will contain either a sockaddr_in structure
(for IPv4 addresses) or a sockaddr_in6 structure (for IPv6 addresses, including IPv4-mapped IPv6 addresses); the address family
will match that of the group argument. If numsrc was 0 on input, a NULL pointer may be supplied.
If the application does not know the size of the source list beforehand, it can make a reasonable guess (for example, by setting numsrc to
0), and if upon completion, numsrc holds a larger value, the operation can be repeated with a large enough buffer.
That is, on return, numsrc is always updated to be the total number of sources in the filter, while slist will hold as many source
addresses as fit, up to the minimum of the array size passed in as the original numsrc value and the total number of sources in the filter.
RETURN VALUES
returns the following values:
Successful completion.
Failure.
is set to indicate the error.
ERRORS
If fails, is set to one of the following values:
The argument s is not a valid descriptor.
This function is not supported by the socket type.
Insufficient memory is available for internal
system data structures.
The address family of the
group argument is not supported.
The specified multicast group has not been joined.
slist is NULL when numsrc is greater than 0; or group does not contain a multicast address; or interface contains an
invalid interface index; or grouplen is not valid.
AUTHOR
was developed by HP and the IETF.
SEE ALSO
socket(2), getipv4sourcefilter(3N), if_nameindex(3N), setipv4sourcefilter(3N), setsourcefilter(3N), ip(7P), ip6(7P).
STANDARDS CONFORMANCE
RFC 3678
getsourcefilter(3N)