* include/cygwin/in.h (struct ip_mreq_source): Define.
(struct ip_msfilter): Define. (IP_MSFILTER_SIZE): Define. (struct in_pktinfo): Define. (struct group_req): Define. (struct group_source_req): Define. (struct group_filter): Define. (GROUP_FILTER_SIZE): Define. (INADDR_ALLRTRS_GROUP): Define. * include/cygwin/socket.h: Define protocol agnostic multicast options.
This commit is contained in:
		| @@ -1,3 +1,16 @@ | |||||||
|  | 2007-01-16  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
|  | 	* include/cygwin/in.h (struct ip_mreq_source): Define. | ||||||
|  | 	(struct ip_msfilter): Define. | ||||||
|  | 	(IP_MSFILTER_SIZE): Define. | ||||||
|  | 	(struct in_pktinfo): Define. | ||||||
|  | 	(struct group_req): Define. | ||||||
|  | 	(struct group_source_req): Define. | ||||||
|  | 	(struct group_filter): Define. | ||||||
|  | 	(GROUP_FILTER_SIZE): Define. | ||||||
|  | 	(INADDR_ALLRTRS_GROUP): Define. | ||||||
|  | 	* include/cygwin/socket.h: Define protocol agnostic multicast options. | ||||||
|  |  | ||||||
| 2007-01-15  Corinna Vinschen  <corinna@vinschen.de> | 2007-01-15  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* CYGWIN_LICENSE: Fix web pages and contact information. | 	* CYGWIN_LICENSE: Fix web pages and contact information. | ||||||
|   | |||||||
| @@ -116,7 +116,7 @@ struct in_addr | |||||||
|   in_addr_t s_addr; |   in_addr_t s_addr; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* Request struct for multicast socket ops */ | /* Request struct for IPv4 multicast socket ops */ | ||||||
|  |  | ||||||
| struct ip_mreq | struct ip_mreq | ||||||
| { | { | ||||||
| @@ -124,6 +124,59 @@ struct ip_mreq | |||||||
|   struct in_addr imr_interface;	/* local IP address of interface */ |   struct in_addr imr_interface;	/* local IP address of interface */ | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | struct ip_mreq_source | ||||||
|  | { | ||||||
|  |   struct in_addr imr_multiaddr; | ||||||
|  |   struct in_addr imr_sourceaddr; | ||||||
|  |   struct in_addr imr_interface; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | struct ip_msfilter | ||||||
|  | { | ||||||
|  |   struct in_addr imsf_multiaddr; | ||||||
|  |   struct in_addr imsf_interface; | ||||||
|  |   uint32_t       imsf_fmode; | ||||||
|  |   uint32_t       imsf_numsrc; | ||||||
|  |   struct in_addr imsf_slist[1]; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \ | ||||||
|  | 				  - sizeof (struct in_addr) \ | ||||||
|  | 				  + (numsrc) * sizeof (struct in_addr)) | ||||||
|  |  | ||||||
|  | struct in_pktinfo | ||||||
|  | { | ||||||
|  |   struct in_addr ipi_addr; | ||||||
|  |   uint32_t       ipi_ifindex; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /* Request struct for IP agnostic multicast socket ops */ | ||||||
|  |  | ||||||
|  | struct group_req | ||||||
|  | { | ||||||
|  |   uint32_t                gr_interface; | ||||||
|  |   struct sockaddr_storage gr_group; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | struct group_source_req | ||||||
|  | { | ||||||
|  |   uint32_t                gsr_interface; | ||||||
|  |   struct sockaddr_storage gsr_group; | ||||||
|  |   struct sockaddr_storage gsr_source; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | struct group_filter | ||||||
|  | { | ||||||
|  |   uint32_t                gf_interface; | ||||||
|  |   struct sockaddr_storage gf_group; | ||||||
|  |   uint32_t                gf_fmode; | ||||||
|  |   uint32_t                gf_numsrc; | ||||||
|  |   struct sockaddr_storage gf_slist[1]; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \ | ||||||
|  | 				   - sizeof (struct sockaddr_storage) \ | ||||||
|  | 				   + (numsrc) * sizeof (struct sockaddr_storage)) | ||||||
|  |  | ||||||
| /* Structure describing an Internet (IP) socket address. */ | /* Structure describing an Internet (IP) socket address. */ | ||||||
| #define __SOCK_SIZE__	16		/* sizeof(struct sockaddr)	*/ | #define __SOCK_SIZE__	16		/* sizeof(struct sockaddr)	*/ | ||||||
| @@ -187,6 +240,7 @@ struct sockaddr_in | |||||||
| /* Defines for Multicast INADDR */ | /* Defines for Multicast INADDR */ | ||||||
| #define INADDR_UNSPEC_GROUP	0xe0000000      /* 224.0.0.0   */ | #define INADDR_UNSPEC_GROUP	0xe0000000      /* 224.0.0.0   */ | ||||||
| #define INADDR_ALLHOSTS_GROUP	0xe0000001      /* 224.0.0.1   */ | #define INADDR_ALLHOSTS_GROUP	0xe0000001      /* 224.0.0.1   */ | ||||||
|  | #define INADDR_ALLRTRS_GROUP	0xe0000002	/* 224.0.0.2   */ | ||||||
| #define INADDR_MAX_LOCAL_GROUP  0xe00000ff      /* 224.0.0.255 */ | #define INADDR_MAX_LOCAL_GROUP  0xe00000ff      /* 224.0.0.255 */ | ||||||
|  |  | ||||||
| #define INET_ADDRSTRLEN 16 | #define INET_ADDRSTRLEN 16 | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| /* cygwin/socket.h | /* cygwin/socket.h | ||||||
|  |  | ||||||
|    Copyright 1999, 2000, 2001, 2005 Red Hat, Inc. |    Copyright 1999, 2000, 2001, 2005, 2006, 2007 Red Hat, Inc. | ||||||
|  |  | ||||||
| This file is part of Cygwin. | This file is part of Cygwin. | ||||||
|  |  | ||||||
| @@ -243,6 +243,17 @@ struct OLD_msghdr | |||||||
| #define IPV6_LEAVE_GROUP                IPV6_DROP_MEMBERSHIP | #define IPV6_LEAVE_GROUP                IPV6_DROP_MEMBERSHIP | ||||||
| #define IPV6_PKTINFO                    19 | #define IPV6_PKTINFO                    19 | ||||||
|  |  | ||||||
|  | /* IP agnostic options for use with getsockopt/setsockopt */ | ||||||
|  | #define MCAST_JOIN_GROUP                41 | ||||||
|  | #define MCAST_LEAVE_GROUP               42 | ||||||
|  | #define MCAST_BLOCK_SOURCE              43 | ||||||
|  | #define MCAST_UNBLOCK_SOURCE            44 | ||||||
|  | #define MCAST_JOIN_SOURCE_GROUP         45 | ||||||
|  | #define MCAST_LEAVE_SOURCE_GROUP        46 | ||||||
|  |  | ||||||
|  | #define MCAST_EXCLUDE                    0 | ||||||
|  | #define MCAST_INCLUDE                    1 | ||||||
|  |  | ||||||
| /* Old WinSock1 values, needed internally */ | /* Old WinSock1 values, needed internally */ | ||||||
| #ifdef __INSIDE_CYGWIN__ | #ifdef __INSIDE_CYGWIN__ | ||||||
| #define _WS1_IP_OPTIONS          1 | #define _WS1_IP_OPTIONS          1 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user