[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: server socket fixes
Kaffe CVS
cvs-commits at kaffe.org
Fri Jun 10 15:41:57 PDT 2005
PatchSet 6618
Date: 2005/06/10 22:37:02
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Resynced with GNU Classpath: server socket fixes
Members:
ChangeLog:1.4144->1.4145
libraries/javalib/java/net/ServerSocket.java:1.30->1.31
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4144 kaffe/ChangeLog:1.4145
--- kaffe/ChangeLog:1.4144 Fri Jun 10 22:29:54 2005
+++ kaffe/ChangeLog Fri Jun 10 22:37:02 2005
@@ -4,6 +4,20 @@
2005-05-31 Jeroen Frijters <jeroen at frijters.net>
+ * java/net/ServerSocket.java
+ (bound): Removed.
+ (local): New field.
+ (bind): Cache local socket address.
+ (getInetAddress, getLocalPort, getLocalSocketAddress, isBound):
+ Use cached local socket address.
+ (close): bound field was removed.
+
+2005-06-10 Dalibor Topic <robilad at kaffe.org>
+
+ Resynced with GNU Classpath.
+
+ 2005-05-31 Jeroen Frijters <jeroen at frijters.net>
+
* gnu/java/nio/channels/FileChannelImpl.java
(FileChannelImpl()): Removed.
(FileChannelImpl(File,int)): Made private.
Index: kaffe/libraries/javalib/java/net/ServerSocket.java
diff -u kaffe/libraries/javalib/java/net/ServerSocket.java:1.30 kaffe/libraries/javalib/java/net/ServerSocket.java:1.31
--- kaffe/libraries/javalib/java/net/ServerSocket.java:1.30 Sun Apr 24 10:08:10 2005
+++ kaffe/libraries/javalib/java/net/ServerSocket.java Fri Jun 10 22:37:04 2005
@@ -76,9 +76,9 @@
private SocketImpl impl;
/**
- * True if socket is bound.
+ * We need to retain the local address even after the socket is closed.
*/
- private boolean bound;
+ private InetSocketAddress local;
/*
* This constructor is only used by java.nio.
@@ -238,7 +238,9 @@
{
impl.bind(addr, tmp.getPort());
impl.listen(backlog);
- bound = true;
+ local = new InetSocketAddress(
+ (InetAddress) impl.getOption(SocketOptions.SO_BINDADDR),
+ impl.getLocalPort());
}
catch (IOException exception)
{
@@ -264,18 +266,10 @@
*/
public InetAddress getInetAddress()
{
- if (! isBound())
+ if (local == null)
return null;
- try
- {
- return (InetAddress) impl.getOption(SocketOptions.SO_BINDADDR);
- }
- catch (SocketException e)
- {
- // This never happens as we are bound.
- return null;
- }
+ return local.getAddress();
}
/**
@@ -285,10 +279,10 @@
*/
public int getLocalPort()
{
- if (! isBound())
+ if (local == null)
return -1;
- return impl.getLocalPort();
+ return local.getPort();
}
/**
@@ -300,10 +294,7 @@
*/
public SocketAddress getLocalSocketAddress()
{
- if (! isBound())
- return null;
-
- return new InetSocketAddress(getInetAddress(), getLocalPort());
+ return local;
}
/**
@@ -393,7 +384,6 @@
impl.close();
impl = null;
- bound = false;
if (getChannel() != null)
getChannel().close();
@@ -424,7 +414,7 @@
*/
public boolean isBound()
{
- return bound;
+ return local != null;
}
/**
More information about the kaffe
mailing list