diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 30b03061db3..215ea00f808 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2006-04-20 Tom Tromey + + PR libgcj/21941: + * gnu/java/net/natPlainDatagramSocketImplPosix.cc (send): Throw + UnknownHostException if needed. + * gnu/java/net/natPlainSocketImplPosix.cc (connect): Throw + UnknownHostException if needed. + 2006-04-19 Tom Tromey * Makefile.in: Rebuilt. diff --git a/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc b/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc index ada5fd160c5..96b374db5f5 100644 --- a/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc +++ b/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2005 Free Software Foundation +/* Copyright (C) 2003, 2005, 2006 Free Software Foundation This file is part of libgcj. @@ -38,6 +38,7 @@ details. */ #include #include #include +#include union SockAddr { @@ -291,7 +292,11 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p) // FIXME: Deal with Multicast and if the socket is connected. jint rport = p->getPort(); union SockAddr u; - jbyteArray haddress = p->getAddress()->addr; + ::java::net::InetAddress *host = p->getAddress(); + if (! host) + throw new ::java::net::UnknownHostException(p->toString()); + + jbyteArray haddress = host->addr; jbyte *bytes = elements (haddress); int len = haddress->length; struct sockaddr *ptr = (struct sockaddr *) &u.address; diff --git a/libjava/gnu/java/net/natPlainSocketImplPosix.cc b/libjava/gnu/java/net/natPlainSocketImplPosix.cc index be9437cd7db..28707db4de8 100644 --- a/libjava/gnu/java/net/natPlainSocketImplPosix.cc +++ b/libjava/gnu/java/net/natPlainSocketImplPosix.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2005 Free Software Foundation +/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation This file is part of libgcj. @@ -51,6 +51,7 @@ details. */ #include #include #include +#include union SockAddr { @@ -136,10 +137,13 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor void gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, - jint timeout) + jint timeout) { ::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr; ::java::net::InetAddress *host = tmp->getAddress(); + if (! host) + throw new ::java::net::UnknownHostException(tmp->toString()); + jint rport = tmp->getPort(); // Set the SocketImpl's address and port fields before we try to