From owner-FreeBSD-users-jp@jp.freebsd.org  Tue Sep 10 18:48:05 1996
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) id SAA15383
	Tue, 10 Sep 1996 18:48:05 +0900 (JST)
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) with ESMTP id SAA15378
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 10 Sep 1996 18:48:03 +0900 (JST)
Received: from ari.bekkoame.or.jp (hnj0068.bekkoame.or.jp [202.231.201.68]) by cola.bekkoame.or.jp (8.7.5+2.6W/3.4W2) with ESMTP id SAA21599 for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 10 Sep 1996 18:47:52 +0900 (JST)
Received: from localhost (localhost [127.0.0.1]) by ari.bekkoame.or.jp (8.7.5/3.4Wbeta6-08/06/96) with SMTP id SAA20079; Tue, 10 Sep 1996 18:48:01 +0900 (JST)
Message-Id: <199609100948.SAA20079@ari.bekkoame.or.jp>
X-Authentication-Warning: mitchan2.ari.bekkoame.or.jp: Host localhost [127.0.0.1] didn't use HELO protocol
To: FreeBSD-users-jp@jp.freebsd.org
Cc: mit-sato@ari.bekkoame.or.jp
X-Mailer: Mew beta version 0.99 on Emacs 19.28.1, Mule 2.2
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Date: Tue, 10 Sep 1996 18:47:58 +0900
From: Mitsuhide Satou <mit-sato@ari.bekkoame.or.jp>
Reply-To: mit-sato@aries.bekkoame.or.jp
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 4450
Subject: [FreeBSD-users-jp 4450] ipfw(8) bug ?
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$B:4F#!w$Y$C$3$"$a$G$9!#(B

2.1.5R $B$r;H$C$F%U%!%$%"%&%)!<%k$r:n$C$F$$$F5$$,$D$$$?$N$G$9$,!"(B
$BNc$($P!"(B

	ipfw add deny from 172.25.0.0/16 to any ...

$B$H$+$9$k$H!"(B"ip number" $B$&$s$?$i(B.. $B$H!"(BIP $B%"%I%l%9$N;XDj$,$*$+$7$$$H(B
$B8@$C$FMh$^$9!#(B
$B$G!"%=!<%9$r8+$F$_$k$H!"(Blookup_host $B$NCf$G(B

	struct hostent *he = gethostbyname(host);
	if (!he)
		return(-1);

$B$H$$$&$h$&$J;v$r$d$C$F$$$k$8$c$"!<$j$^$;$s$+!#(B
$B$3$l$8$c!"$I$&9M$($F$b(B IP $B%"%I%l%9$G$N;XDj$,=PMh$=$&$K$"$j$^$;$s!#(B
$B;d$N4*0c$$$G$9$+!)(B

$B$7$+$?$,$J$$$N$G0J2<$NMM$K=$@5$7$^$7$?!#(B

---<< $B$3$3$+$i(B >>---
*** ipfw.c.orig	Tue Sep 10 18:28:19 1996
--- ipfw.c	Tue Sep 10 17:19:40 1996
*************** lookup_host (host, ipaddr)
*** 377,388 ****
--- 377,438 ----
  {
  	struct hostent *he = gethostbyname(host);
  
+ 	if (isdigit(host[0])) return lookup_ip(host, ipaddr);
+ 
+ 	he = gethostbyname(host);
  	if (!he)
  		return(-1);
  
  	*ipaddr = *(struct in_addr *)he->h_addr_list[0];
  
  	return(0);
+ }
+ 
+ int
+ lookup_ip (host, ipaddr)
+ 	char *host;
+ 	struct in_addr *ipaddr;
+ {
+     u_long addr = 0;
+     char buff[32], host_buff[128];
+     char *p, *c;
+     int i;
+ 
+     strcpy(host_buff, host);
+     p = host_buff;
+     while (*p) {
+ 	if (*p=='/' || *p==':' || *p==' ' || *p=='\t') {
+ 	    *p=0;
+ 	    break;
+ 	}
+ 	p++;
+     }
+ 
+     p = host_buff;
+     i = 0;
+     c = buff;
+     while (*p == '.' || isdigit(*p))
+     {
+ 	if (isdigit(*p)) 
+ 	{
+ 	    *c = *p;
+ 	    c++;
+ 	}
+ 	else
+ 	{
+ 	    *c = 0;
+ 	    addr |= (((u_long)atoi(buff)) << (i*8));
+ 	    i++;
+ 	    if (i > 4) break ;
+ 	    c = buff;
+ 	}
+ 	p++;
+     }
+     *c = 0;
+     if (i <= 3) addr |= (((u_long)atoi(buff)) << (i*8));
+     ipaddr->s_addr = addr;
+     
+     return 0;
  }
  
  void
---<< $B$3$3$^$G(B >>---

$BJ8;zNs$+$i(B IP $B%"%I%l%9$rF@$k$N$K$b$C$HNI$$J}K!$C$F$"$j$^$9$+!)(B

$B!t(B $B$@$$$?$$!"(BIntel $B$N(B byte order $B$K0MB8$7$?=q$-J}$@$7!#(B
$B!t(B $B$G$b!"$^$"!"$3$l$GF0$/$h$&$K$J$C$?$+$i!"$^$"$$$$!)(B

--
$B:4F#(B $B;0=((B (E-Mail: mit-sato@aries.bekkoame.or.jp)
