< prev index next >

src/java.base/unix/native/libnet/PlainSocketImpl.c

Print this page

        

@@ -41,11 +41,10 @@
 jfieldID psi_ipaddressID;
 jfieldID psi_portID;
 jfieldID psi_localportID;
 jfieldID psi_timeoutID;
 jfieldID psi_trafficClassID;
-jfieldID psi_serverSocketID;
 jfieldID psi_fdLockID;
 jfieldID psi_closePendingID;
 
 extern void setDefaultScopeID(JNIEnv *env, struct sockaddr *him);
 

@@ -126,13 +125,10 @@
     CHECK_NULL(psi_localportID);
     psi_timeoutID = (*env)->GetFieldID(env, cls, "timeout", "I");
     CHECK_NULL(psi_timeoutID);
     psi_trafficClassID = (*env)->GetFieldID(env, cls, "trafficClass", "I");
     CHECK_NULL(psi_trafficClassID);
-    psi_serverSocketID = (*env)->GetFieldID(env, cls, "serverSocket",
-                        "Ljava/net/ServerSocket;");
-    CHECK_NULL(psi_serverSocketID);
     psi_fdLockID = (*env)->GetFieldID(env, cls, "fdLock",
                                       "Ljava/lang/Object;");
     CHECK_NULL(psi_fdLockID);
     psi_closePendingID = (*env)->GetFieldID(env, cls, "closePending", "Z");
     CHECK_NULL(psi_closePendingID);

@@ -154,14 +150,14 @@
 static jclass socketExceptionCls;
 
 /*
  * Class:     java_net_PlainSocketImpl
  * Method:    socketCreate
- * Signature: (Z)V */
+ * Signature: (ZZ)V */
 JNIEXPORT void JNICALL
 Java_java_net_PlainSocketImpl_socketCreate(JNIEnv *env, jobject this,
-                                           jboolean stream) {
+                                           jboolean stream, jboolean server) {
     jobject fdObj, ssObj;
     int fd;
     int type = (stream ? SOCK_STREAM : SOCK_DGRAM);
     int domain = ipv6_available() ? AF_INET6 : AF_INET;
 

@@ -200,12 +196,11 @@
 
     /*
      * If this is a server socket then enable SO_REUSEADDR
      * automatically and set to non blocking.
      */
-    ssObj = (*env)->GetObjectField(env, this, psi_serverSocketID);
-    if (ssObj != NULL) {
+    if (server) {
         int arg = 1;
         SET_NONBLOCKING(fd);
         if (NET_SetSockOpt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&arg,
                        sizeof(arg)) < 0) {
             NET_ThrowNew(env, errno, "cannot set SO_REUSEADDR");
< prev index next >