From 0563022a206294757effa44686727bffc4f7c2bd Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 23 Mar 2012 15:19:26 +0000 Subject: Merge GNU Classpath 0.99 into libjava. From-SVN: r185741 --- libjava/classpath/java/net/Socket.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'libjava/classpath/java/net/Socket.java') diff --git a/libjava/classpath/java/net/Socket.java b/libjava/classpath/java/net/Socket.java index d61e81f5e42..32b12e8b1bf 100644 --- a/libjava/classpath/java/net/Socket.java +++ b/libjava/classpath/java/net/Socket.java @@ -428,7 +428,9 @@ public class Socket * @exception IllegalBlockingModeException If this socket has an associated * channel, and the channel is in non-blocking mode * @exception SocketTimeoutException If the timeout is reached - * + * @throws SecurityException if the SocketAddress is an {@link InetSocketAddress} + * and a security manager is present which does not + * allow connections on the given host and port. * @since 1.4 */ public void connect(SocketAddress endpoint, int timeout) @@ -440,6 +442,13 @@ public class Socket if (! (endpoint instanceof InetSocketAddress)) throw new IllegalArgumentException("unsupported address type"); + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + { + InetSocketAddress inetAddr = (InetSocketAddress) endpoint; + sm.checkConnect(inetAddr.getHostName(), inetAddr.getPort()); + } + // The Sun spec says that if we have an associated channel and // it is in non-blocking mode, we throw an IllegalBlockingModeException. // However, in our implementation if the channel itself initiated this -- cgit v1.2.3