IP Multicast

Overview

// global functions

apr_status_t
apr_mcast_join(
    apr_socket_t* sock,
    apr_sockaddr_t* join,
    apr_sockaddr_t* iface,
    apr_sockaddr_t* source
);

apr_status_t
apr_mcast_leave(
    apr_socket_t* sock,
    apr_sockaddr_t* addr,
    apr_sockaddr_t* iface,
    apr_sockaddr_t* source
);

apr_status_t
apr_mcast_hops(
    apr_socket_t* sock,
    apr_byte_t ttl
);

apr_status_t
apr_mcast_loopback(
    apr_socket_t* sock,
    apr_byte_t opt
);

apr_status_t
apr_mcast_interface(
    apr_socket_t* sock,
    apr_sockaddr_t* iface
);

Detailed Documentation

Global Functions

apr_status_t
apr_mcast_join(
    apr_socket_t* sock,
    apr_sockaddr_t* join,
    apr_sockaddr_t* iface,
    apr_sockaddr_t* source
)

Join a Multicast Group

Parameters:

sock

The socket to join a multicast group

join

The address of the multicast group to join

iface

Address of the interface to use. If NULL is passed, the default multicast interface will be used. (OS Dependent)

source

Source Address to accept transmissions from (non-NULL implies Source-Specific Multicast)

apr_status_t
apr_mcast_leave(
    apr_socket_t* sock,
    apr_sockaddr_t* addr,
    apr_sockaddr_t* iface,
    apr_sockaddr_t* source
)

Leave a Multicast Group. All arguments must be the same as apr_mcast_join.

Parameters:

sock

The socket to leave a multicast group

addr

The address of the multicast group to leave

iface

Address of the interface to use. If NULL is passed, the default multicast interface will be used. (OS Dependent)

source

Source Address to accept transmissions from (non-NULL implies Source-Specific Multicast)

apr_status_t
apr_mcast_hops(
    apr_socket_t* sock,
    apr_byte_t ttl
)

Set the Multicast Time to Live (ttl) for a multicast transmission. If the TTL is 0, packets will only be seen by sockets on the local machine, and only when multicast loopback is enabled.

Parameters:

sock

The socket to set the multicast ttl

ttl

Time to live to Assign. 0-255, default=1

apr_status_t
apr_mcast_loopback(
    apr_socket_t* sock,
    apr_byte_t opt
)

Toggle IP Multicast Loopback

Parameters:

sock

The socket to set multicast loopback

opt

0=disable, 1=enable

apr_status_t
apr_mcast_interface(
    apr_socket_t* sock,
    apr_sockaddr_t* iface
)

Set the Interface to be used for outgoing Multicast Transmissions.

Parameters:

sock

The socket to set the multicast interface on

iface

Address of the interface to use for Multicast