From owner-FreeBSD-tech-jp@jp.freebsd.org  Mon May 18 13:12:21 1998
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta13/8.7.3) id NAA24532
	Mon, 18 May 1998 13:12:21 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta13/8.7.3) with ESMTP id NAA24520
	for <freebsd-tech-jp@jp.freebsd.org>; Mon, 18 May 1998 13:12:17 +0900 (JST)
Received: from [202.230.214.51] (singapore.j-link.or.jp [202.230.214.51])
	by japan.j-link.or.jp (8.8.7+2.7Wbeta7/3.6Wb6-970921) with ESMTP id NAA00109
	for <freebsd-tech-jp@jp.freebsd.org>; Mon, 18 May 1998 13:12:14 +0900 (JST)
Message-Id: <199805180412.NAA00109@japan.j-link.or.jp>
X-Sender: ken@pop.j-link.or.jp
X-Mailer: Macintosh Eudora Pro Version 3.1.1-Jr2
Mime-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
Date: Mon, 18 May 1998 13:12:12 +0900
To: freebsd-tech-jp@jp.freebsd.org
From: Kenichi Sasaki <ken@j-link.or.jp>
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24]
X-Sequence: FreeBSD-tech-jp 1450
Subject: [FreeBSD-tech-jp 1450] direct broadcast patch
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org

J-LINK$B$N:4!9LZ$G$9!#(Jtech-jp$B$O=i$a$F$G$9!#(J
$B@hF|!"(Jusers-jp$B$K$F(Jdirect broadcast$B$,(J2.2$B7O$G$ODL$i$J$$$H$$$&$3$H$G(J
$B$5$C$=$/%Q%C%A$r:n$C$F$_$^$7$?!#(J
$B$=$3$G!"<ALd$J$s$G$9$,(J

1.$B$3$s$J=q$-J}$G$$$$$N$G$7$g$&$+!)(J
$B!!%+!<%M%k$r$$$8$k$N$O=i$a$F$J$s$G!"IT0B$G$9!#(J
2.sysctl$B$K(Jdirected_broadcast$B$,MQ0U$5$l$F$$$k!#(J
$B!!$R$g$C$H$7$F(J3.0-current$B$J$s$+$O<BAu$5$l$F$$$k$s$G$7$g$&$+!)(J

$B0J>e!"$h$m$7$/$*4j$$$7$^$9!#(J
$B!t(Jsysctl$B$N%G%U%)%k%HCM$,Kd$a9~$_$H$OCN$i$J$+$C$?!#(J

*** ip_input.c.orig     Fri Feb 27 02:17:09 1998
--- ip_input.c  Mon May 18 12:45:05 1998
***************
*** 98,103 ****
--- 98,107 ----
  static int    ip_acceptsourceroute = 0;
  SYSCTL_INT(_net_inet_ip, IPCTL_ACCEPTSOURCEROUTE, accept_sourceroute,
        CTLFLAG_RW, &ip_acceptsourceroute, 0, "");
+
+ static int    directed_broadcast = 0;
+ SYSCTL_INT(_net_inet_ip, IPCTL_DIRECTEDBROADCAST, directed_broadcast,
+       CTLFLAG_RW, &directed_broadcast, 0, "");
  #ifdef DIAGNOSTIC
  static int    ipprintfs = 0;
  #endif
***************
*** 387,393 ****
                if (IA_SIN(ia)->sin_addr.s_addr == INADDR_ANY)
                        goto ours;
  #endif
!               if (ia->ia_ifp && ia->ia_ifp->if_flags & IFF_BROADCAST) {
                        if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr ==
                            ip->ip_dst.s_addr)
                                goto ours;
--- 391,398 ----
                if (IA_SIN(ia)->sin_addr.s_addr == INADDR_ANY)
                        goto ours;
  #endif
!               if (ia->ia_ifp && ia->ia_ifp->if_flags & IFF_BROADCAST &&
!                  (directed_broadcast && ia->ia_ifp == m->m_pkthdr.rcvif)) {
                        if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr ==
                            ip->ip_dst.s_addr)
                                goto ours;
***************
*** 1344,1350 ****
        }

        error = ip_output(m, (struct mbuf *)0, &ipforward_rt,
!                         IP_FORWARDING, 0);
        if (error)
                ipstat.ips_cantforward++;
        else {
--- 1349,1357 ----
        }

        error = ip_output(m, (struct mbuf *)0, &ipforward_rt,
!                       IP_FORWARDING |
!                               (directed_broadcast ? IP_ALLOWBROADCAST : 0),
!                                                                       0);
        if (error)
                ipstat.ips_cantforward++;
        else {

----------------------------------------------------------------------------
 $B!J3t!K%*%U%#%C%/%9!!(JJ-LINK$B;v6HIt(J   $B!!!!:4!9LZ(J $B7{0l(J

  TEL: 03-3252-7491             E-Mail: ken@j-link.or.jp         (office)
  FAX: 03-3252-7499                     kenich-s@red.an.egg.or.jp(personal)
----------------------------------------------------------------------------


