src/java.base/unix/native/libnet/PlainSocketImpl.c
changeset 55375 96c7427456f9
parent 54689 b28b7f631301
equal deleted inserted replaced
55374:5c4f1b7c753b 55375:96c7427456f9
    43 jfieldID psi_localportID;
    43 jfieldID psi_localportID;
    44 jfieldID psi_timeoutID;
    44 jfieldID psi_timeoutID;
    45 jfieldID psi_trafficClassID;
    45 jfieldID psi_trafficClassID;
    46 jfieldID psi_fdLockID;
    46 jfieldID psi_fdLockID;
    47 jfieldID psi_closePendingID;
    47 jfieldID psi_closePendingID;
    48 
       
    49 extern void setDefaultScopeID(JNIEnv *env, struct sockaddr *him);
       
    50 
    48 
    51 /*
    49 /*
    52  * file descriptor used for dup2
    50  * file descriptor used for dup2
    53  */
    51  */
    54 static int marker_fd = -1;
    52 static int marker_fd = -1;
   259     /* connect */
   257     /* connect */
   260     if (NET_InetAddressToSockaddr(env, iaObj, port, &sa, &len,
   258     if (NET_InetAddressToSockaddr(env, iaObj, port, &sa, &len,
   261                                   JNI_TRUE) != 0) {
   259                                   JNI_TRUE) != 0) {
   262         return;
   260         return;
   263     }
   261     }
   264     setDefaultScopeID(env, &sa.sa);
       
   265 
   262 
   266     if (trafficClass != 0 && ipv6_available()) {
   263     if (trafficClass != 0 && ipv6_available()) {
   267         NET_SetTrafficClass(&sa, trafficClass);
   264         NET_SetTrafficClass(&sa, trafficClass);
   268     }
   265     }
   269 
   266 
   507     /* bind */
   504     /* bind */
   508     if (NET_InetAddressToSockaddr(env, iaObj, localport, &sa,
   505     if (NET_InetAddressToSockaddr(env, iaObj, localport, &sa,
   509                                   &len, JNI_TRUE) != 0) {
   506                                   &len, JNI_TRUE) != 0) {
   510         return;
   507         return;
   511     }
   508     }
   512     setDefaultScopeID(env, &sa.sa);
       
   513 
   509 
   514     if (NET_Bind(fd, &sa, len) < 0) {
   510     if (NET_Bind(fd, &sa, len) < 0) {
   515         if (errno == EADDRINUSE || errno == EADDRNOTAVAIL ||
   511         if (errno == EADDRINUSE || errno == EADDRNOTAVAIL ||
   516             errno == EPERM || errno == EACCES) {
   512             errno == EPERM || errno == EACCES) {
   517             NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "BindException",
   513             NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "BindException",