aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/net/natPlainDatagramSocketImpl.cc6
2 files changed, 10 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index cf37be1..a0770ba 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ * java/net/natPlainDatagramSocketImpl.cc (bind): Call setsockopt to
+ enable SO_BROADCAST.
+
2002-02-18 Jason Merrill <jason@redhat.com>
* name-finder.cc (toHex): Use word mode, not long long.
diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc
index d94a2f3..aedd48b 100644
--- a/libjava/java/net/natPlainDatagramSocketImpl.cc
+++ b/libjava/java/net/natPlainDatagramSocketImpl.cc
@@ -194,7 +194,6 @@ void
java::net::PlainDatagramSocketImpl::bind (jint lport,
java::net::InetAddress *host)
{
- // FIXME: prob. need to do a setsockopt with SO_BROADCAST to allow multicast.
union SockAddr u;
struct sockaddr *ptr = (struct sockaddr *) &u.address;
// FIXME: Use getaddrinfo() to get actual protocol instead of assuming ipv4.
@@ -233,6 +232,11 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
localPort = ntohs (u.address.sin_port);
else
goto error;
+ /* Allow broadcast by default. */
+ int broadcast = 1;
+ if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &broadcast,
+ sizeof (broadcast)) != 0)
+ goto error;
return;
}
error: