summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java/net/PlainSocketImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/net/PlainSocketImpl.java')
-rw-r--r--libjava/gnu/java/net/PlainSocketImpl.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/libjava/gnu/java/net/PlainSocketImpl.java b/libjava/gnu/java/net/PlainSocketImpl.java
index eefee10ee28..dad1724d6b1 100644
--- a/libjava/gnu/java/net/PlainSocketImpl.java
+++ b/libjava/gnu/java/net/PlainSocketImpl.java
@@ -1,5 +1,5 @@
/* PlainSocketImpl.java -- Default socket implementation
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -110,6 +110,9 @@ public final class PlainSocketImpl extends SocketImpl
// localAddress cache
InetAddress localAddress;
+ // Local address as an InetSocketAddress.
+ InetSocketAddress localSocketAddress;
+
/**
* A cached copy of the in stream for reading from the socket.
*/
@@ -325,6 +328,24 @@ public final class PlainSocketImpl extends SocketImpl
protected native void sendUrgentData(int data) throws IOException;
+ public synchronized InetSocketAddress getLocalAddress()
+ {
+ if (localSocketAddress == null)
+ {
+ try
+ {
+ localSocketAddress
+ = new InetSocketAddress ((InetAddress) getOption(SocketOptions.SO_BINDADDR),
+ localport);
+ }
+ catch (SocketException _)
+ {
+ return null;
+ }
+ }
+ return localSocketAddress;
+ }
+
/**
* Returns an InputStream object for reading from this socket. This will
* be an instance of SocketInputStream.
OpenPOWER on IntegriCloud