natPlainDatagramSocketImpl.cc (bind): Call setsockopt to enable SO_BROADCAST.
authorBryce McKinlay <bryce@waitaki.otago.ac.nz>
Mon, 18 Feb 2002 07:32:34 +0000 (07:32 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Mon, 18 Feb 2002 07:32:34 +0000 (07:32 +0000)
2002-02-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

* java/net/natPlainDatagramSocketImpl.cc (bind): Call setsockopt to
enable SO_BROADCAST.

From-SVN: r49835

libjava/ChangeLog
libjava/java/net/natPlainDatagramSocketImpl.cc

index cf37be1e690e646d2edfa09bc0dbb870ecd7ff80..a0770ba1ce9ed612cd51dad50a1cf3e09f3257a0 100644 (file)
@@ -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.
index d94a2f3d8a1efa36a2cea1ca4dce1685e828945b..aedd48bbbdde844fe55e406771f3e88aed75c899 100644 (file)
@@ -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: