153 JNIEXPORT jint JNICALL
154 Java_sun_nio_ch_Net_isExclusiveBindAvailable(JNIEnv *env, jclass clazz) {
155 return -1;
156 }
157
158 JNIEXPORT jboolean JNICALL
159 Java_sun_nio_ch_Net_shouldSetBothIPv4AndIPv6Options0(JNIEnv* env, jclass cl)
160 {
161 #if defined(__linux__)
162 /* Set both IPv4 and IPv6 socket options when setting multicast options */
163 return JNI_TRUE;
164 #else
165 /* Do not set both IPv4 and IPv6 socket options when setting multicast options */
166 return JNI_FALSE;
167 #endif
168 }
169
170 JNIEXPORT jboolean JNICALL
171 Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0(JNIEnv* env, jclass cl)
172 {
173 #if defined(__linux__) || defined(__APPLE__) || defined(__solaris__)
174 /* IPv6 sockets can join IPv4 multicast groups */
175 return JNI_TRUE;
176 #else
177 /* IPv6 sockets cannot join IPv4 multicast groups */
178 return JNI_FALSE;
179 #endif
180 }
181
182 JNIEXPORT jboolean JNICALL
183 Java_sun_nio_ch_Net_canJoin6WithIPv4Group0(JNIEnv* env, jclass cl)
184 {
185 #if defined(__APPLE__) || defined(__solaris__)
186 /* IPV6_ADD_MEMBERSHIP can be used to join IPv4 multicast groups */
187 return JNI_TRUE;
188 #else
189 /* IPV6_ADD_MEMBERSHIP cannot be used to join IPv4 multicast groups */
190 return JNI_FALSE;
191 #endif
192 }
193
194 JNIEXPORT jboolean JNICALL
195 Java_sun_nio_ch_Net_canUseIPv6OptionsWithIPv4LocalAddress0(JNIEnv* env, jclass cl)
196 {
197 /* IPV6_XXX socket options can be used on IPv6 sockets bound to IPv4 address */
198 return JNI_TRUE;
199 }
200
201 JNIEXPORT jint JNICALL
202 Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6,
203 jboolean stream, jboolean reuse, jboolean ignored)
204 {
205 int fd;
|
153 JNIEXPORT jint JNICALL
154 Java_sun_nio_ch_Net_isExclusiveBindAvailable(JNIEnv *env, jclass clazz) {
155 return -1;
156 }
157
158 JNIEXPORT jboolean JNICALL
159 Java_sun_nio_ch_Net_shouldSetBothIPv4AndIPv6Options0(JNIEnv* env, jclass cl)
160 {
161 #if defined(__linux__)
162 /* Set both IPv4 and IPv6 socket options when setting multicast options */
163 return JNI_TRUE;
164 #else
165 /* Do not set both IPv4 and IPv6 socket options when setting multicast options */
166 return JNI_FALSE;
167 #endif
168 }
169
170 JNIEXPORT jboolean JNICALL
171 Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0(JNIEnv* env, jclass cl)
172 {
173 #if defined(__linux__) || defined(__APPLE__)
174 /* IPv6 sockets can join IPv4 multicast groups */
175 return JNI_TRUE;
176 #else
177 /* IPv6 sockets cannot join IPv4 multicast groups */
178 return JNI_FALSE;
179 #endif
180 }
181
182 JNIEXPORT jboolean JNICALL
183 Java_sun_nio_ch_Net_canJoin6WithIPv4Group0(JNIEnv* env, jclass cl)
184 {
185 #if defined(__APPLE__)
186 /* IPV6_ADD_MEMBERSHIP can be used to join IPv4 multicast groups */
187 return JNI_TRUE;
188 #else
189 /* IPV6_ADD_MEMBERSHIP cannot be used to join IPv4 multicast groups */
190 return JNI_FALSE;
191 #endif
192 }
193
194 JNIEXPORT jboolean JNICALL
195 Java_sun_nio_ch_Net_canUseIPv6OptionsWithIPv4LocalAddress0(JNIEnv* env, jclass cl)
196 {
197 /* IPV6_XXX socket options can be used on IPv6 sockets bound to IPv4 address */
198 return JNI_TRUE;
199 }
200
201 JNIEXPORT jint JNICALL
202 Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6,
203 jboolean stream, jboolean reuse, jboolean ignored)
204 {
205 int fd;
|