So, I have a ~70% done implementation this 'apr_mcast' api.

I am on air planes all day today, so hopefully I can finish up the code.

Any comments on the following API:

/**
 * @defgroup apr_mcast IP Multicast
 * @{
 */

/**
 * Join a Multicast Group
 * @param sock The socket to join a multicast group
 * @param join The address of the multicast group to join
 * @param iface Address of the interface to use.  If NULL is passed, the
 *              defautl multicast interface will be used. (OS Dependent)
 */
APR_DECLARE(apr_status_t) apr_mcast_join(apr_socket_t *sock,
                                         apr_sockaddr_t *join,
                                         apr_sockaddr_t *iface);



/**
 * Leave a Multicast Group.  All arguments must be the same as
 * apr_mcast_join.
 * @param sock The socket to leave a multicast group
 * @param join The address of the multicast group to join
 * @param iface Address of the interface to use.  If NULL is passed, the
 *              defautl multicast interface will be used. (OS Dependent)
 */
APR_DECLARE(apr_status_t) apr_mcast_leave(apr_socket_t *sock,
                                          apr_sockaddr_t *leave,
                                          apr_sockaddr_t *iface);

/**
 * Set the Multicast Time to Live (ttl) for a socket.
 * @param sock The socket to set the multicast ttl
 * @param ttl Time to live to Assign. 0-255, default=1
 * @remark If the TTL is 0, packets will only be seen by sockets on
 * the local machine, with multicast loopback enabled.
 */
APR_DECLARE(apr_status_t) apr_mcast_ttl(apr_socket_t *sock,
                                        apr_byte_t ttl);


/** * Enable or disable IP Multicast Loopback * @param sock The socket to set multicast loopback * @param opt 0=disable, 1=enable */ APR_DECLARE(apr_status_t) apr_mcast_loopback(apr_socket_t *sock, apr_byte_t opt);


/** @} */


Not sure if we want a different base name.. 'apr_socket_multicast' vs apr_socket_mcast' vs 'apr_multicast'.


-Paul

Reply via email to