From owner-java@jp.FreeBSD.org Mon Oct 28 20:27:54 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g9SBRsJ64445;
	Mon, 28 Oct 2002 20:27:54 +0900 (JST)
	(envelope-from owner-java@jp.FreeBSD.org)
Received: from ongs.co.jp (ns.ongs.co.jp [202.216.232.58])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with SMTP/inet id g9SBRs364438
	for <java@jp.FreeBSD.org>; Mon, 28 Oct 2002 20:27:54 +0900 (JST)
	(envelope-from daichi@jp.freebsd.org)
Received: (qmail 5730 invoked from network); 28 Oct 2002 11:22:55 -0000
Received: from unknown (HELO parancell.ongs.co.jp) (202.216.232.62)
  by ns.ongs.co.jp with SMTP; 28 Oct 2002 11:22:55 -0000
From: daichi <daichi@jp.FreeBSD.org>
To: java@jp.FreeBSD.org, khidegon@nifty.com
Cc: FreeBSD-users-jp@jp.FreeBSD.org
Message-Id: <20021028203002.585c625f.daichi@jp.freebsd.org>
In-Reply-To: <20021028184650.6e9283c2.tetsuo@ss-lab.net>
References: <20021026234525.2e3a5257.khidegon@nifty.com>
	<20021027101119Z.kgotoh@cic-kk.co.jp>
	<20021027130156.5b6d2046.khidegon@nifty.com>
	<20021028144628.65b657d8.daichi@jp.freebsd.org>
	<20021028184650.6e9283c2.tetsuo@ss-lab.net>
Organization: FreeBSD Project(Japan)
X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; i386-portbld-freebsd4.6)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: java@jp.FreeBSD.org
Precedence: list
Date: Mon, 28 Oct 2002 20:30:02 +0900
X-Sequence: java 238
Subject: [java 238] Re: [FreeBSD-users-jp 71568] Re: java
 =?ISO-2022-JP?B?GyRCJEcbKEI=?= Broadcast
 =?ISO-2022-JP?B?GyRCSVQyRCEpGyhC?=
Errors-To: owner-java@jp.FreeBSD.org
Sender: owner-java@jp.FreeBSD.org
X-Originator: daichi@jp.FreeBSD.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+021028

$BBgCO$G$9!#(B

> $B$O$8$a$^$7$F!#$$$D$b3Z$7$/FI$^$;$F$$$?$@$$$F$$$^$9!#(B
> 
> Broadcast $B$G(B Permission denied $B$K$J$k7o$G$9$,!"(B
>    j2sdk1.3.1/src/solaris/native/java/net/PlainDatagramSocketImpl.c
> $B$N(B 492 $B9TL\$K$"$k(B
>    #if defined(__linux__) && defined(SO_BROADCAST)
> $B$N$;$$$G$7$g$&!#(Bdefined(__linux__) && $B$r>C$;$PD>$j$^$9!#(B

$BN;2r$G$9!#$3$A$i$bNkLZ$5$s$N$4;XE&DL$jLdBj$,2r7h$5$l$k$3$H$r3NG'(B
$B$7$^$7$?!#(B

--- ../src/solaris/native/java/net/PlainDatagramSocketImpl.c.orig       Sun May  6 21:27:32 2001
+++ ../src/solaris/native/java/net/PlainDatagramSocketImpl.c    Mon Oct 28 19:54:10 2002
@@ -9,10 +9,10 @@
  */
 
 #include <errno.h>
-#include <netinet/in.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
+#include <netinet/in.h>
 #include <sys/socket.h>
 
 #include "jvm.h"
@@ -489,7 +489,7 @@
                        strerror(errno));
        return;
     }
-#if defined(__linux__) && defined(SO_BROADCAST)
+#if (defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)) && defined(SO_BROADCAST)
      {
         int t = 1;
         setsockopt(fd, SOL_SOCKET, SO_BROADCAST, (char*) &t, sizeof(int));
@@ -568,8 +568,10 @@
 
        int tmp = (*env)->GetIntField(env, value, i_valueID);
        int arg = tmp ? -1: 0;
-       if (JVM_SetSockOpt(fd, SOL_SOCKET, SO_REUSEADDR,
-                      (char *)&arg, sizeof(arg)) < 0) {
+       if ((JVM_SetSockOpt(fd, SOL_SOCKET, SO_REUSEADDR,
+                      (char *)&arg, sizeof(arg)) < 0) ||
+           (JVM_SetSockOpt(fd, SOL_SOCKET, SO_REUSEPORT,
+                      (char *)&arg, sizeof(arg)) < 0)) {
            JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
                            strerror(errno));
        }

$B<!$N%Q%C%A$K<h$j9~$s$G$b$i$($k$h$&(BGreg$B$KJs9p$7$F$*$-$^$9!#(B

--
  daichi@jp.freebsd.org
