aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/net')
-rw-r--r--libjava/java/net/DatagramSocket.java73
1 files changed, 31 insertions, 42 deletions
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java
index df397bf..f4bc4ea 100644
--- a/libjava/java/net/DatagramSocket.java
+++ b/libjava/java/net/DatagramSocket.java
@@ -187,44 +187,8 @@ public class DatagramSocket
impl = new PlainDatagramSocketImpl();
}
- if (address == null)
- return;
-
- if (! (address instanceof InetSocketAddress))
- throw new SocketException("unsupported address type");
-
- InetAddress addr = ((InetSocketAddress) address).getAddress();
- int port = ((InetSocketAddress) address).getPort();
-
- if (port < 0 || port > 65535)
- throw new IllegalArgumentException("Invalid port: " + port);
-
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkListen(port);
-
- if (addr == null)
- addr = InetAddress.ANY_IF;
-
- try
- {
- getImpl().bind(port, addr);
- }
- catch (SocketException exception)
- {
- getImpl().close();
- throw exception;
- }
- catch (RuntimeException exception)
- {
- getImpl().close();
- throw exception;
- }
- catch (Error error)
- {
- getImpl().close();
- throw error;
- }
+ if (address != null)
+ bind(address);
}
// This needs to be accessible from java.net.MulticastSocket
@@ -671,14 +635,39 @@ public class DatagramSocket
if (! (address instanceof InetSocketAddress))
throw new IllegalArgumentException("unsupported address type");
- InetSocketAddress tmp = (InetSocketAddress) address;
+ InetAddress addr = ((InetSocketAddress) address).getAddress();
+ int port = ((InetSocketAddress) address).getPort();
+
+ if (port < 0 || port > 65535)
+ throw new IllegalArgumentException("Invalid port: " + port);
SecurityManager s = System.getSecurityManager ();
if (s != null)
- s.checkListen(tmp.getPort ());
+ s.checkListen(port);
- getImpl().bind (tmp.getPort (), tmp.getAddress ());
- bound = true;
+ if (addr == null)
+ addr = InetAddress.ANY_IF;
+
+ try
+ {
+ getImpl().bind(port, addr);
+ bound = true;
+ }
+ catch (SocketException exception)
+ {
+ getImpl().close();
+ throw exception;
+ }
+ catch (RuntimeException exception)
+ {
+ getImpl().close();
+ throw exception;
+ }
+ catch (Error error)
+ {
+ getImpl().close();
+ throw error;
+ }
}
/**