summaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/net/ServerSocket.java18
-rw-r--r--libjava/java/net/Socket.java25
2 files changed, 29 insertions, 14 deletions
diff --git a/libjava/java/net/ServerSocket.java b/libjava/java/net/ServerSocket.java
index d1ea4d6c2ba..7af1a3301c0 100644
--- a/libjava/java/net/ServerSocket.java
+++ b/libjava/java/net/ServerSocket.java
@@ -73,6 +73,11 @@ public class ServerSocket
*/
private SocketImpl impl;
+ /**
+ * True if socket is bound.
+ */
+ private boolean bound;
+
/*
* This constructor is only used by java.nio.
*/
@@ -225,6 +230,7 @@ public class ServerSocket
{
impl.bind (tmp.getAddress (), tmp.getPort ());
impl.listen(backlog);
+ bound = true;
}
catch (IOException exception)
{
@@ -355,6 +361,7 @@ public class ServerSocket
getChannel().close();
impl = null;
+ bound = false;
}
}
@@ -379,16 +386,7 @@ public class ServerSocket
*/
public boolean isBound()
{
- try
- {
- Object bindaddr = impl.getOption (SocketOptions.SO_BINDADDR);
- }
- catch (SocketException e)
- {
- return false;
- }
-
- return true;
+ return bound;
}
/**
diff --git a/libjava/java/net/Socket.java b/libjava/java/net/Socket.java
index 1b443d08a1e..27fa69131b5 100644
--- a/libjava/java/net/Socket.java
+++ b/libjava/java/net/Socket.java
@@ -79,10 +79,25 @@ public class Socket
*/
private SocketImpl impl;
- private boolean implCreated = false;
+ /**
+ * True if socket implementation was created by calling their create() method.
+ */
+ private boolean implCreated;
+
+ /**
+ * True if the socket is bound.
+ */
+ private boolean bound;
- private boolean inputShutdown = false;
- private boolean outputShutdown = false;
+ /**
+ * True if input is shutdown.
+ */
+ private boolean inputShutdown;
+
+ /**
+ * True if output is shutdown.
+ */
+ private boolean outputShutdown;
/**
* Initializes a new instance of <code>Socket</code> object without
@@ -342,6 +357,7 @@ public class Socket
try
{
getImpl().bind (tmp.getAddress(), tmp.getPort());
+ bound = true;
}
catch (IOException exception)
{
@@ -995,6 +1011,7 @@ public class Socket
getChannel().close();
impl = null;
+ bound = false;
}
/**
@@ -1206,7 +1223,7 @@ public class Socket
*/
public boolean isBound ()
{
- return getLocalAddress () != null;
+ return bound;
}
/**