1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
5: | Copyright (c) 1997-2014 The PHP Group |
6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Authors: Gustavo Lopes <cataphract@php.net> |
16: +----------------------------------------------------------------------+
17: */
18:
19: /* $Id: multicast.h,v 1.1.1.3 2014/06/15 20:03:55 misho Exp $ */
20:
21: #if defined(MCAST_JOIN_GROUP) && \
22: (!defined(PHP_WIN32) || (_WIN32_WINNT >= 0x600 && SOCKETS_ENABLE_VISTA_API)) && \
23: !defined(__APPLE__)
24: #define RFC3678_API 1
25: /* has block/unblock and source membership, in this case for both IPv4 and IPv6 */
26: #define HAS_MCAST_EXT 1
27: #elif defined(IP_ADD_SOURCE_MEMBERSHIP) && !defined(__APPLE__)
28: /* has block/unblock and source membership, but only for IPv4 */
29: #define HAS_MCAST_EXT 1
30: #endif
31:
32: int php_if_index_to_addr4(
33: unsigned if_index,
34: php_socket *php_sock,
35: struct in_addr *out_addr TSRMLS_DC);
36:
37: int php_add4_to_if_index(
38: struct in_addr *addr,
39: php_socket *php_sock,
40: unsigned *if_index TSRMLS_DC);
41:
42: int php_mcast_join(
43: php_socket *sock,
44: int level,
45: struct sockaddr *group,
46: socklen_t group_len,
47: unsigned int if_index TSRMLS_DC);
48:
49: int php_mcast_leave(
50: php_socket *sock,
51: int level,
52: struct sockaddr *group,
53: socklen_t group_len,
54: unsigned int if_index TSRMLS_DC);
55:
56: #ifdef HAS_MCAST_EXT
57: int php_mcast_join_source(
58: php_socket *sock,
59: int level,
60: struct sockaddr *group,
61: socklen_t group_len,
62: struct sockaddr *source,
63: socklen_t source_len,
64: unsigned int if_index TSRMLS_DC);
65:
66: int php_mcast_leave_source(
67: php_socket *sock,
68: int level,
69: struct sockaddr *group,
70: socklen_t group_len,
71: struct sockaddr *source,
72: socklen_t source_len,
73: unsigned int if_index TSRMLS_DC);
74:
75: int php_mcast_block_source(
76: php_socket *sock,
77: int level,
78: struct sockaddr *group,
79: socklen_t group_len,
80: struct sockaddr *source,
81: socklen_t source_len,
82: unsigned int if_index TSRMLS_DC);
83:
84: int php_mcast_unblock_source(
85: php_socket *sock,
86: int level,
87: struct sockaddr *group,
88: socklen_t group_len,
89: struct sockaddr *source,
90: socklen_t source_len,
91: unsigned int if_index TSRMLS_DC);
92: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>