2003-06-17 Michael Koch <konqueror@gmx.de>
authorMichael Koch <konqueror@gmx.de>
Tue, 17 Jun 2003 19:11:56 +0000 (19:11 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Tue, 17 Jun 2003 19:11:56 +0000 (19:11 +0000)
* java/net/InetSocketAddress.java
(InetSocketAddress): Use wildcard address if addr is null.
(InetSocketAddress): Dont duplicate implementation.
(InetSocketAddress): Throw exception when hostname is null.
* java/net/Socket.java:
Reworked imports.
(Socket): Throw exception when raddr is null, handle case when laddr
is null.

From-SVN: r68106

libjava/ChangeLog
libjava/java/net/InetSocketAddress.java
libjava/java/net/Socket.java

index da274367f52ae00c3f6604fc254428cde7a08549..4f06213570135324ed18e08866e413ed0f3385ce 100644 (file)
@@ -1,3 +1,14 @@
+2003-06-17  Michael Koch  <konqueror@gmx.de>
+
+       * java/net/InetSocketAddress.java
+       (InetSocketAddress): Use wildcard address if addr is null.
+       (InetSocketAddress): Dont duplicate implementation.
+       (InetSocketAddress): Throw exception when hostname is null.
+       * java/net/Socket.java:
+       Reworked imports.
+       (Socket): Throw exception when raddr is null, handle case when laddr
+       is null.
+
 2003-06-17  Michael Koch  <konqueror@gmx.de>
 
        * java/nio/DirectByteBufferImpl.java
index 3c54b51a0f0b0446b1e150fb7d877a1f30fbd660..c720fbcfe61875b943d51a6122add1cb15157e83 100644 (file)
@@ -69,6 +69,9 @@ public class InetSocketAddress extends SocketAddress
   {
     if (port < 0 || port > 65535)
       throw new IllegalArgumentException();
+
+    if (addr == null)
+      addr = InetAddress.ANY_IF;
   
     this.addr = addr;
     this.port = port;
@@ -85,25 +88,9 @@ public class InetSocketAddress extends SocketAddress
   public InetSocketAddress(int port)
     throws IllegalArgumentException
   {
-    if (port < 0 || port > 65535)
-      throw new IllegalArgumentException();
-
-    this.port = port;
-    
-    try
-      {
-       byte[] any = { 0, 0, 0, 0 };
-       this.addr = InetAddress.getByAddress (any);
-       this.hostname = "0.0.0.0";
-      }
-    catch (UnknownHostException e)
-      {
-        this.addr = null;
-       this.hostname = "";
-      }
+    this ((InetAddress) null, port);
   }
 
-
   /**
    * Constructs an InetSocketAddress instance.
    *
@@ -115,7 +102,8 @@ public class InetSocketAddress extends SocketAddress
   public InetSocketAddress(String hostname, int port)
     throws IllegalArgumentException
   {
-    if (port < 0 || port > 65535)
+    if (port < 0 || port > 65535
+       || hostname == null)
       throw new IllegalArgumentException();
 
     this.port = port;
index 8535fa9ef61152b6b6c1f35a79dad2d212f6569a..38b31ec8cc8948dcd6e596d37fe177f0f2a073c4 100644 (file)
@@ -37,7 +37,9 @@ exception statement from your version. */
 
 package java.net;
 
-import java.io.*;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.nio.channels.SocketChannel;
 import java.nio.channels.IllegalBlockingModeException;
 
@@ -87,8 +89,6 @@ public class Socket
 
   private boolean closed = false;
 
-  // Constructors
-
   /**
    * Initializes a new instance of <code>Socket</code> object without 
    * connecting to a remote host.  This useful for subclasses of socket that 
@@ -282,6 +282,9 @@ public class Socket
   {
     this();
 
+    if (raddr == null)
+      throw new NullPointerException ();
+    
     if (impl == null)
       throw new IOException("Cannot initialize Socket implementation");
 
@@ -289,8 +292,12 @@ public class Socket
     if (sm != null)
       sm.checkConnect(raddr.getHostName(), rport);
 
-    // bind/connect socket
-    bind (new InetSocketAddress (laddr, lport));
+    // bind socket
+    SocketAddress bindaddr =
+      laddr == null ? null : new InetSocketAddress (laddr, lport);
+    bind (bindaddr);
+    
+    // connect socket
     connect (new InetSocketAddress (raddr, rport));
 
     // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port,