64 dci_senderID = (*env)->GetFieldID(env, clazz, "sender",
65 "Ljava/net/SocketAddress;");
66 dci_senderAddrID = (*env)->GetFieldID(env, clazz,
67 "cachedSenderInetAddress",
68 "Ljava/net/InetAddress;");
69 dci_senderPortID = (*env)->GetFieldID(env, clazz,
70 "cachedSenderPort", "I");
71 }
72
73 JNIEXPORT void JNICALL
74 Java_sun_nio_ch_DatagramChannelImpl_disconnect0(JNIEnv *env, jobject this,
75 jobject fdo, jboolean isIPv6)
76 {
77 jint fd = fdval(env, fdo);
78 int rv;
79
80 #ifdef __solaris__
81 rv = connect(fd, 0, 0);
82 #endif
83
84 #if defined(__linux__) || defined(_ALLBSD_SOURCE)
85 {
86 int len;
87 SOCKADDR sa;
88
89 memset(&sa, 0, sizeof(sa));
90
91 #ifdef AF_INET6
92 if (isIPv6) {
93 struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)&sa;
94 #if defined(_ALLBSD_SOURCE)
95 him6->sin6_family = AF_INET6;
96 #else
97 him6->sin6_family = AF_UNSPEC;
98 #endif
99 len = sizeof(struct sockaddr_in6);
100 } else
101 #endif
102 {
103 struct sockaddr_in *him4 = (struct sockaddr_in*)&sa;
104 #if defined(_ALLBSD_SOURCE)
|
64 dci_senderID = (*env)->GetFieldID(env, clazz, "sender",
65 "Ljava/net/SocketAddress;");
66 dci_senderAddrID = (*env)->GetFieldID(env, clazz,
67 "cachedSenderInetAddress",
68 "Ljava/net/InetAddress;");
69 dci_senderPortID = (*env)->GetFieldID(env, clazz,
70 "cachedSenderPort", "I");
71 }
72
73 JNIEXPORT void JNICALL
74 Java_sun_nio_ch_DatagramChannelImpl_disconnect0(JNIEnv *env, jobject this,
75 jobject fdo, jboolean isIPv6)
76 {
77 jint fd = fdval(env, fdo);
78 int rv;
79
80 #ifdef __solaris__
81 rv = connect(fd, 0, 0);
82 #endif
83
84 #if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
85 {
86 int len;
87 SOCKADDR sa;
88
89 memset(&sa, 0, sizeof(sa));
90
91 #ifdef AF_INET6
92 if (isIPv6) {
93 struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)&sa;
94 #if defined(_ALLBSD_SOURCE)
95 him6->sin6_family = AF_INET6;
96 #else
97 him6->sin6_family = AF_UNSPEC;
98 #endif
99 len = sizeof(struct sockaddr_in6);
100 } else
101 #endif
102 {
103 struct sockaddr_in *him4 = (struct sockaddr_in*)&sa;
104 #if defined(_ALLBSD_SOURCE)
|