summaryrefslogtreecommitdiff
path: root/external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java
diff options
context:
space:
mode:
Diffstat (limited to 'external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java')
-rw-r--r--external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java b/external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java
index f6296bd4dd..d86e84d07e 100644
--- a/external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java
+++ b/external/ikvm/openjdk/java/net/TwoStacksPlainSocketImpl_c.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -416,7 +416,9 @@ static void socketConnect(JNIEnv env, TwoStacksPlainSocketImpl _this, InetAddres
* Method: socketBind
* Signature: (Ljava/net/InetAddress;I)V
*/
-static void socketBind(JNIEnv env, TwoStacksPlainSocketImpl _this, InetAddress iaObj, int localport) {
+static void socketBind(JNIEnv env, TwoStacksPlainSocketImpl _this,
+ InetAddress iaObj, int localport,
+ boolean exclBind) {
FileDescriptor fdObj = _this.fd;
FileDescriptor fd1Obj = _this.fd1;
cli.System.Net.Sockets.Socket fd = null;
@@ -430,7 +432,7 @@ static void socketBind(JNIEnv env, TwoStacksPlainSocketImpl _this, InetAddress i
SOCKETADDRESS him;
him = new SOCKETADDRESS();
- family = iaObj.family;
+ family = getInetAddress_family(env, iaObj);
if (family == IPv6 && !ipv6_supported) {
JNU_ThrowByName(env, JNU_JAVANETPKG+"SocketException",
@@ -457,13 +459,12 @@ static void socketBind(JNIEnv env, TwoStacksPlainSocketImpl _this, InetAddress i
him, JNI_FALSE) != 0) {
return;
}
-
if (ipv6_supported) {
ipv6bind v6bind = new ipv6bind();
v6bind.addr = him;
v6bind.ipv4_fd = fd;
v6bind.ipv6_fd = fd1;
- rv = NET_BindV6(v6bind);
+ rv = NET_BindV6(v6bind, exclBind);
if (rv != -1) {
/* check if the fds have changed */
if (v6bind.ipv4_fd != fd) {
@@ -488,7 +489,7 @@ static void socketBind(JNIEnv env, TwoStacksPlainSocketImpl _this, InetAddress i
}
}
} else {
- rv = NET_Bind(fd, him);
+ rv = NET_WinBind(fd, him, exclBind);
}
if (rv == -1) {
@@ -787,10 +788,10 @@ static void socketClose0(JNIEnv env, TwoStacksPlainSocketImpl _this, boolean use
*
*
* Class: java_net_TwoStacksPlainSocketImpl
- * Method: socketSetOption
+ * Method: socketNativeSetOption
* Signature: (IZLjava/lang/Object;)V
*/
-static void socketSetOption(JNIEnv env, TwoStacksPlainSocketImpl _this, int cmd, boolean on, Object value) {
+static void socketNativeSetOption(JNIEnv env, TwoStacksPlainSocketImpl _this, int cmd, boolean on, Object value) {
cli.System.Net.Sockets.Socket fd, fd1;
int[] level = new int[1];
int[] optname = new int[1];