diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/sockets/multicast.h | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/sockets/multicast.h')
-rw-r--r-- | ext/sockets/multicast.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/ext/sockets/multicast.h b/ext/sockets/multicast.h new file mode 100644 index 0000000..f46a6a8 --- /dev/null +++ b/ext/sockets/multicast.h @@ -0,0 +1,92 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Gustavo Lopes <cataphract@php.net> | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#if defined(MCAST_JOIN_GROUP) && \ + (!defined(PHP_WIN32) || (_WIN32_WINNT >= 0x600 && SOCKETS_ENABLE_VISTA_API)) && \ + !defined(__APPLE__) +#define RFC3678_API 1 +/* has block/unblock and source membership, in this case for both IPv4 and IPv6 */ +#define HAS_MCAST_EXT 1 +#elif defined(IP_ADD_SOURCE_MEMBERSHIP) && !defined(__APPLE__) +/* has block/unblock and source membership, but only for IPv4 */ +#define HAS_MCAST_EXT 1 +#endif + +int php_if_index_to_addr4( + unsigned if_index, + php_socket *php_sock, + struct in_addr *out_addr TSRMLS_DC); + +int php_add4_to_if_index( + struct in_addr *addr, + php_socket *php_sock, + unsigned *if_index TSRMLS_DC); + +int php_mcast_join( + php_socket *sock, + int level, + struct sockaddr *group, + socklen_t group_len, + unsigned int if_index TSRMLS_DC); + +int php_mcast_leave( + php_socket *sock, + int level, + struct sockaddr *group, + socklen_t group_len, + unsigned int if_index TSRMLS_DC); + +#ifdef HAS_MCAST_EXT +int php_mcast_join_source( + php_socket *sock, + int level, + struct sockaddr *group, + socklen_t group_len, + struct sockaddr *source, + socklen_t source_len, + unsigned int if_index TSRMLS_DC); + +int php_mcast_leave_source( + php_socket *sock, + int level, + struct sockaddr *group, + socklen_t group_len, + struct sockaddr *source, + socklen_t source_len, + unsigned int if_index TSRMLS_DC); + +int php_mcast_block_source( + php_socket *sock, + int level, + struct sockaddr *group, + socklen_t group_len, + struct sockaddr *source, + socklen_t source_len, + unsigned int if_index TSRMLS_DC); + +int php_mcast_unblock_source( + php_socket *sock, + int level, + struct sockaddr *group, + socklen_t group_len, + struct sockaddr *source, + socklen_t source_len, + unsigned int if_index TSRMLS_DC); +#endif |