summaryrefslogtreecommitdiff
path: root/ext/sockets/multicast.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/sockets/multicast.h
downloadphp2-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.h92
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