198
199 void
200 NET_ThrowCurrent(JNIEnv *env, char *msg)
201 {
202 NET_ThrowNew(env, WSAGetLastError(), msg);
203 }
204
205 void
206 NET_ThrowSocketException(JNIEnv *env, char* msg)
207 {
208 static jclass cls = NULL;
209 if (cls == NULL) {
210 cls = (*env)->FindClass(env, "java/net/SocketException");
211 CHECK_NULL(cls);
212 cls = (*env)->NewGlobalRef(env, cls);
213 CHECK_NULL(cls);
214 }
215 (*env)->ThrowNew(env, cls, msg);
216 }
217
218 void
219 NET_ThrowByNameWithLastError(JNIEnv *env, const char *name,
220 const char *defaultDetail) {
221 char errmsg[255];
222 sprintf(errmsg, "errno: %d, error: %s\n", WSAGetLastError(), defaultDetail);
223 JNU_ThrowByNameWithLastError(env, name, errmsg);
224 }
225
226 jfieldID
227 NET_GetFileDescriptorID(JNIEnv *env)
228 {
229 jclass cls = (*env)->FindClass(env, "java/io/FileDescriptor");
230 CHECK_NULL_RETURN(cls, NULL);
231 return (*env)->GetFieldID(env, cls, "fd", "I");
232 }
233
234 jint IPv6_supported()
235 {
236 SOCKET s = socket(AF_INET6, SOCK_STREAM, 0) ;
237 if (s == INVALID_SOCKET) {
238 return JNI_FALSE;
239 }
240 closesocket(s);
241
242 return JNI_TRUE;
243 }
244
245 jint reuseport_supported()
|
198
199 void
200 NET_ThrowCurrent(JNIEnv *env, char *msg)
201 {
202 NET_ThrowNew(env, WSAGetLastError(), msg);
203 }
204
205 void
206 NET_ThrowSocketException(JNIEnv *env, char* msg)
207 {
208 static jclass cls = NULL;
209 if (cls == NULL) {
210 cls = (*env)->FindClass(env, "java/net/SocketException");
211 CHECK_NULL(cls);
212 cls = (*env)->NewGlobalRef(env, cls);
213 CHECK_NULL(cls);
214 }
215 (*env)->ThrowNew(env, cls, msg);
216 }
217
218 jfieldID
219 NET_GetFileDescriptorID(JNIEnv *env)
220 {
221 jclass cls = (*env)->FindClass(env, "java/io/FileDescriptor");
222 CHECK_NULL_RETURN(cls, NULL);
223 return (*env)->GetFieldID(env, cls, "fd", "I");
224 }
225
226 jint IPv6_supported()
227 {
228 SOCKET s = socket(AF_INET6, SOCK_STREAM, 0) ;
229 if (s == INVALID_SOCKET) {
230 return JNI_FALSE;
231 }
232 closesocket(s);
233
234 return JNI_TRUE;
235 }
236
237 jint reuseport_supported()
|