repair endianness issue in IN_MULTICAST().

again, *BSD difference...

From: Nick Sayer <nsayer@quack.kfu.com>
This commit is contained in:
itojun 2000-08-15 07:34:08 +00:00
parent 18c955d6f3
commit 7059b1cfa8
3 changed files with 9 additions and 5 deletions

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */
/* $KAME: if_stf.c,v 1.40 2000/06/20 19:44:42 itojun Exp $ */
/* $KAME: if_stf.c,v 1.42 2000/08/15 07:24:23 itojun Exp $ */
/*
* Copyright (C) 2000 WIDE Project.
@ -408,7 +408,7 @@ stf_checkaddr4(in, ifp)
* reject packets with the following address:
* 224.0.0.0/4 0.0.0.0/8 127.0.0.0/8 255.0.0.0/8
*/
if (IN_MULTICAST(in->s_addr))
if (IN_MULTICAST(ntohl(in->s_addr)))
return -1;
switch ((ntohl(in->s_addr) & 0xff000000) >> 24) {
case 0: case 127: case 255:

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */
/* $KAME: net_osdep.h,v 1.21 2000/07/02 23:34:38 itojun Exp $ */
/* $KAME: net_osdep.h,v 1.22 2000/08/15 07:23:10 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -150,6 +150,10 @@
* FreeBSD4: opt_{inet,inet6,ipsec,ip6fw,altq}.h
* NetBSD: opt_{inet,ipsec,altq}.h
* others: does not use defopt
*
* - IN_MULTICAST/IN_CLASS[A-D] macro.
* OpenBSD and NetBSD: net endian (kernel) or host endian (userland)
* others: always host endian
*/
#ifndef __NET_NET_OSDEP_H_DEFINED_

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */
/* $KAME: in_gif.c,v 1.43 2000/06/20 19:45:00 itojun Exp $ */
/* $KAME: in_gif.c,v 1.44 2000/08/15 07:24:24 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -347,7 +347,7 @@ gif_encapcheck4(m, off, proto, arg)
return 0;
/* martian filters on outer source - NOT done in ip_input! */
if (IN_MULTICAST(ip.ip_src.s_addr))
if (IN_MULTICAST(ntohl(ip.ip_src.s_addr)))
return 0;
switch ((ntohl(ip.ip_src.s_addr) & 0xff000000) >> 24) {
case 0: case 127: case 255: