setsourcefilter(3N)setsourcefilter(3N)NAMEsetsourcefilter() - set IP multicast source filter state
SYNOPSISDESCRIPTION
This function sets the multicast source filter state for an IPv4 or
IPv6 multicast group on a given socket. This function can be used to
join a multicast group by specifying a filter mode of (with or without
a source list), or by specifying a filter mode of with a non-empty
source list. If the multicast group is already joined, this function
replaces the existing filter mode and source list with the ones pro‐
vided. This function can be used to leave a multicast group by speci‐
fying a filter mode of and an empty source list.
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; or when joining a group, the sys‐
tem chooses the interface that datagrams for the group would
be sent from, based on the routing configuration.
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 argu‐
ment.
fmode Identifies the filter mode. The value of this field must be
either or which are defined in
numsrc Holds the number of source addresses in the slist array.
slist Points to an array of sockaddr_storage structures containing
the IP addresses to include or exclude depending on the fil‐
ter mode. 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 must match
that of the group argument.
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.
numsrc exceeds the maximum number of sources
allowed, as determined by the ndd tunable
parameters and (for IPv4), or and (for
IPv6).
The address family of the
group argument is not supported.
Trying to leave an unjoined group.
group does not hold an IP multicast address; or
slist contains an invalid source address;
or the specified filter mode is not valid;
or interface contains an invalid interface
index; or grouplen is not valid; or the
address family of a source address in the
slist argument does not match the address
family of the group argument.
AUTHOR
was developed by HP and the IETF.
SEE ALSOndd(1M), socket(2), getipv4sourcefilter(3N), getsourcefilter(3N),
if_nameindex(3N), setipv4sourcefilter(3N), ip(7P), ip6(7P).
STANDARDS CONFORMANCE
RFC 3678
setsourcefilter(3N)