diff options
| author | mycroft <mycroft@NetBSD.org> | 1995-06-01 21:35:34 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 1995-06-01 21:35:34 +0000 |
| commit | eb216fd6c2dc48f5df3ffcfca36cd0d19cc482c4 (patch) | |
| tree | ad26d59695b3dd46ae479a7401c462f8f3826226 /sys | |
| parent | d045544ebdf4f6b44a2c9546a3a632b4848aaf0e (diff) | |
Avoid byte-swapping IP addresses at run time.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/netinet/igmp.c | 28 | ||||
| -rw-r--r-- | sys/netinet/in.c | 71 | ||||
| -rw-r--r-- | sys/netinet/in.h | 66 | ||||
| -rw-r--r-- | sys/netinet/in_pcb.c | 8 | ||||
| -rw-r--r-- | sys/netinet/in_var.h | 5 | ||||
| -rw-r--r-- | sys/netinet/ip_icmp.c | 8 | ||||
| -rw-r--r-- | sys/netinet/ip_input.c | 25 | ||||
| -rw-r--r-- | sys/netinet/ip_mroute.c | 6 | ||||
| -rw-r--r-- | sys/netinet/ip_output.c | 11 | ||||
| -rw-r--r-- | sys/netinet/tcp_input.c | 6 | ||||
| -rw-r--r-- | sys/netinet/udp_usrreq.c | 4 | ||||
| -rw-r--r-- | sys/netiso/iso.c | 11 |
12 files changed, 105 insertions, 144 deletions
diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index fcd97c50a7e..9a823927129 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -1,4 +1,4 @@ -/* $NetBSD: igmp.c,v 1.11 1995/06/01 15:59:04 mycroft Exp $ */ +/* $NetBSD: igmp.c,v 1.12 1995/06/01 21:35:34 mycroft Exp $ */ /* * Internet Group Management Protocol (IGMP) routines. @@ -27,13 +27,8 @@ #include <netinet/igmp_var.h> #define IP_MULTICASTOPTS 0 -#define IN_LOCAL_GROUP(addr) \ - (((addr) & igmp_local_group_mask) == igmp_local_group) int igmp_timers_are_running; -u_int32_t igmp_all_hosts_group; -u_int32_t igmp_local_group; -u_int32_t igmp_local_group_mask; static struct router_info *rti_head; void igmp_sendpkt __P((struct in_multi *, int)); @@ -46,9 +41,6 @@ igmp_init() * To avoid byte-swapping the same value over and over again. */ igmp_timers_are_running = 0; - igmp_all_hosts_group = htonl(INADDR_ALLHOSTS_GROUP); - igmp_local_group = htonl(INADDR_UNSPEC_GROUP); - igmp_local_group_mask = htonl(IN_CLASSC_NET); rti_head = 0; } @@ -161,7 +153,7 @@ igmp_input(m, iphlen) rti->rti_type = IGMP_v1_ROUTER; rti->rti_age = 0; - if (ip->ip_dst.s_addr != igmp_all_hosts_group) { + if (ip->ip_dst.s_addr != INADDR_ALLHOSTS_GROUP) { ++igmpstat.igps_rcv_badqueries; m_freem(m); return; @@ -186,7 +178,7 @@ igmp_input(m, iphlen) IN_NEXT_MULTI(step, inm); } } else { - if (!IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) { + if (!IN_MULTICAST(ip->ip_dst.s_addr)) { ++igmpstat.igps_rcv_badqueries; m_freem(m); return; @@ -206,7 +198,7 @@ igmp_input(m, iphlen) while (inm != NULL) { if (inm->inm_ifp == ifp && !IN_LOCAL_GROUP(inm->inm_addr.s_addr) && - (ip->ip_dst.s_addr == igmp_all_hosts_group || + (ip->ip_dst.s_addr == INADDR_ALLHOSTS_GROUP || ip->ip_dst.s_addr == inm->inm_addr.s_addr)) { switch (inm->inm_state) { case IGMP_DELAYING_MEMBER: @@ -240,7 +232,7 @@ igmp_input(m, iphlen) if (ifp->if_flags & IFF_LOOPBACK) break; - if (!IN_MULTICAST(ntohl(igmp->igmp_group.s_addr)) || + if (!IN_MULTICAST(igmp->igmp_group.s_addr) || igmp->igmp_group.s_addr != ip->ip_dst.s_addr) { ++igmpstat.igps_rcv_badreports; m_freem(m); @@ -256,10 +248,10 @@ igmp_input(m, iphlen) * to compensate for the lack of any way for a process to * determine the arrival interface of an incoming packet. */ - if ((ntohl(ip->ip_src.s_addr) & IN_CLASSA_NET) == 0) { + if ((ip->ip_src.s_addr & IN_CLASSA_NET) == 0) { IFP_TO_IA(ifp, ia); if (ia) - ip->ip_src.s_addr = htonl(ia->ia_subnet); + ip->ip_src.s_addr = ia->ia_subnet; } /* @@ -306,7 +298,7 @@ igmp_input(m, iphlen) if (ifp->if_flags & IFF_LOOPBACK) break; - if (!IN_MULTICAST(ntohl(igmp->igmp_group.s_addr)) || + if (!IN_MULTICAST(igmp->igmp_group.s_addr) || igmp->igmp_group.s_addr != ip->ip_dst.s_addr) { ++igmpstat.igps_rcv_badreports; m_freem(m); @@ -322,12 +314,12 @@ igmp_input(m, iphlen) * to compensate for the lack of any way for a process to * determine the arrival interface of an incoming packet. */ - if ((ntohl(ip->ip_src.s_addr) & IN_CLASSA_NET) == 0) { + if ((ip->ip_src.s_addr & IN_CLASSA_NET) == 0) { #ifndef MROUTING IFP_TO_IA(ifp, ia); #endif if (ia) - ip->ip_src.s_addr = htonl(ia->ia_subnet); + ip->ip_src.s_addr = ia->ia_subnet; } /* diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 2b511a2078f..5b9fe7f702a 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -1,4 +1,4 @@ -/* $NetBSD: in.c,v 1.19 1995/05/31 21:50:34 mycroft Exp $ */ +/* $NetBSD: in.c,v 1.20 1995/06/01 21:35:58 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1991, 1993 @@ -54,37 +54,6 @@ #include "ether.h" #ifdef INET -/* - * Return the network number from an internet address. - */ -u_int32_t -in_netof(in) - struct in_addr in; -{ - register u_int32_t i = ntohl(in.s_addr); - register u_int32_t net; - register struct in_ifaddr *ia; - - if (IN_CLASSA(i)) - net = i & IN_CLASSA_NET; - else if (IN_CLASSB(i)) - net = i & IN_CLASSB_NET; - else if (IN_CLASSC(i)) - net = i & IN_CLASSC_NET; - else if (IN_CLASSD(i)) - net = i & IN_CLASSD_NET; - else - return (0); - - /* - * Check whether network is a subnet; - * if so, return subnet number. - */ - for (ia = in_ifaddr; ia; ia = ia->ia_next) - if (net == ia->ia_net) - return (i & ia->ia_subnetmask); - return (net); -} #ifndef SUBNETSARELOCAL #define SUBNETSARELOCAL 1 @@ -100,16 +69,15 @@ int in_localaddr(in) struct in_addr in; { - register u_int32_t i = ntohl(in.s_addr); register struct in_ifaddr *ia; if (subnetsarelocal) { for (ia = in_ifaddr; ia; ia = ia->ia_next) - if ((i & ia->ia_netmask) == ia->ia_net) + if ((in.s_addr & ia->ia_netmask) == ia->ia_net) return (1); } else { for (ia = in_ifaddr; ia; ia = ia->ia_next) - if ((i & ia->ia_subnetmask) == ia->ia_subnet) + if ((in.s_addr & ia->ia_subnetmask) == ia->ia_subnet) return (1); } return (0); @@ -124,14 +92,13 @@ int in_canforward(in) struct in_addr in; { - register u_int32_t i = ntohl(in.s_addr); register u_int32_t net; - if (IN_EXPERIMENTAL(i) || IN_MULTICAST(i)) + if (IN_EXPERIMENTAL(in.s_addr) || IN_MULTICAST(in.s_addr)) return (0); - if (IN_CLASSA(i)) { - net = i & IN_CLASSA_NET; - if (net == 0 || net == (IN_LOOPBACKNET << IN_CLASSA_NSHIFT)) + if (IN_CLASSA(in.s_addr)) { + net = in.s_addr & IN_CLASSA_NET; + if (net == 0 || net == htonl(IN_LOOPBACKNET << IN_CLASSA_NSHIFT)) return (0); } return (1); @@ -176,7 +143,6 @@ in_control(so, cmd, data, ifp) struct in_aliasreq *ifra = (struct in_aliasreq *)data; struct sockaddr_in oldaddr; int error, hostIsNew, maskIsNew; - u_int32_t i; /* * Find address for this interface, if it exists. @@ -308,8 +274,8 @@ in_control(so, cmd, data, ifp) (struct sockaddr_in *) &ifr->ifr_addr, 1)); case SIOCSIFNETMASK: - i = ifra->ifra_addr.sin_addr.s_addr; - ia->ia_subnetmask = ntohl(ia->ia_sockmask.sin_addr.s_addr = i); + ia->ia_subnetmask = ia->ia_sockmask.sin_addr.s_addr = + ifra->ifra_addr.sin_addr.s_addr; break; case SIOCAIFADDR: @@ -327,8 +293,7 @@ in_control(so, cmd, data, ifp) if (ifra->ifra_mask.sin_len) { in_ifscrub(ifp, ia); ia->ia_sockmask = ifra->ifra_mask; - ia->ia_subnetmask = - ntohl(ia->ia_sockmask.sin_addr.s_addr); + ia->ia_subnetmask = ia->ia_sockmask.sin_addr.s_addr; maskIsNew = 1; } if ((ifp->if_flags & IFF_POINTOPOINT) && @@ -415,7 +380,7 @@ in_ifinit(ifp, ia, sin, scrub) struct sockaddr_in *sin; int scrub; { - register u_int32_t i = ntohl(sin->sin_addr.s_addr); + register u_int32_t i = sin->sin_addr.s_addr; struct sockaddr_in oldaddr; int s = splimp(), flags = RTF_UP, error, ether_output(); @@ -451,7 +416,7 @@ in_ifinit(ifp, ia, sin, scrub) */ if (ia->ia_subnetmask == 0) { ia->ia_subnetmask = ia->ia_netmask; - ia->ia_sockmask.sin_addr.s_addr = htonl(ia->ia_subnetmask); + ia->ia_sockmask.sin_addr.s_addr = ia->ia_subnetmask; } else ia->ia_netmask &= ia->ia_subnetmask; ia->ia_net = i & ia->ia_netmask; @@ -463,9 +428,9 @@ in_ifinit(ifp, ia, sin, scrub) ia->ia_ifa.ifa_metric = ifp->if_metric; if (ifp->if_flags & IFF_BROADCAST) { ia->ia_broadaddr.sin_addr.s_addr = - htonl(ia->ia_subnet | ~ia->ia_subnetmask); + ia->ia_subnet | ~ia->ia_subnetmask; ia->ia_netbroadcast.s_addr = - htonl(ia->ia_net | ~ ia->ia_netmask); + ia->ia_net | ~ia->ia_netmask; } else if (ifp->if_flags & IFF_LOOPBACK) { ia->ia_ifa.ifa_dstaddr = ia->ia_ifa.ifa_addr; flags |= RTF_HOST; @@ -483,7 +448,7 @@ in_ifinit(ifp, ia, sin, scrub) if (ifp->if_flags & IFF_MULTICAST) { struct in_addr addr; - addr.s_addr = htonl(INADDR_ALLHOSTS_GROUP); + addr.s_addr = INADDR_ALLHOSTS_GROUP; in_addmulti(&addr, ifp); } return (error); @@ -499,14 +464,12 @@ in_broadcast(in, ifp) struct ifnet *ifp; { register struct ifaddr *ifa; - u_int32_t t; if (in.s_addr == INADDR_BROADCAST || in.s_addr == INADDR_ANY) return 1; if ((ifp->if_flags & IFF_BROADCAST) == 0) return 0; - t = ntohl(in.s_addr); /* * Look through the list of addresses for a match * with a broadcast address. @@ -519,7 +482,8 @@ in_broadcast(in, ifp) /* * Check for old-style (host 0) broadcast. */ - t == ia->ia_subnet || t == ia->ia_net)) + in.s_addr == ia->ia_subnet || + in.s_addr == ia->ia_net)) return 1; return (0); #undef ia @@ -631,4 +595,5 @@ in_delmulti(inm) } splx(s); } + #endif diff --git a/sys/netinet/in.h b/sys/netinet/in.h index 555e068850d..a33b5698ddf 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -1,4 +1,4 @@ -/* $NetBSD: in.h,v 1.15 1995/05/31 07:39:33 mycroft Exp $ */ +/* $NetBSD: in.h,v 1.16 1995/06/01 21:36:05 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1990, 1993 @@ -85,43 +85,62 @@ struct in_addr { * Definitions of bits in internet address integers. * On subnets, the decomposition of addresses to host and net parts * is done according to subnet mask, not the masks here. + * + * By byte-swapping the constants, we avoid ever having to byte-swap IP + * addresses inside the kernel. Unfortunately, user-level programs rely + * on these macros not doing byte-swapping. */ -#define IN_CLASSA(i) (((int32_t)(i) & 0x80000000) == 0) -#define IN_CLASSA_NET 0xff000000 +#ifdef _KERNEL +#define __IPADDR(x) htonl((u_int32_t)(x)) +#else +#define __IPADDR(x) ((u_int32_t)(x)) +#endif + +#define IN_CLASSA(i) (((u_int32_t)(i) & __IPADDR(0x80000000)) == \ + __IPADDR(0x00000000)) +#define IN_CLASSA_NET __IPADDR(0xff000000) #define IN_CLASSA_NSHIFT 24 -#define IN_CLASSA_HOST 0x00ffffff +#define IN_CLASSA_HOST __IPADDR(0x00ffffff) #define IN_CLASSA_MAX 128 -#define IN_CLASSB(i) (((int32_t)(i) & 0xc0000000) == 0x80000000) -#define IN_CLASSB_NET 0xffff0000 +#define IN_CLASSB(i) (((u_int32_t)(i) & __IPADDR(0xc0000000)) == \ + __IPADDR(0x80000000)) +#define IN_CLASSB_NET __IPADDR(0xffff0000) #define IN_CLASSB_NSHIFT 16 -#define IN_CLASSB_HOST 0x0000ffff +#define IN_CLASSB_HOST __IPADDR(0x0000ffff) #define IN_CLASSB_MAX 65536 -#define IN_CLASSC(i) (((int32_t)(i) & 0xe0000000) == 0xc0000000) -#define IN_CLASSC_NET 0xffffff00 +#define IN_CLASSC(i) (((u_int32_t)(i) & __IPADDR(0xe0000000)) == \ + __IPADDR(0xc0000000)) +#define IN_CLASSC_NET __IPADDR(0xffffff00) #define IN_CLASSC_NSHIFT 8 -#define IN_CLASSC_HOST 0x000000ff +#define IN_CLASSC_HOST __IPADDR(0x000000ff) -#define IN_CLASSD(i) (((int32_t)(i) & 0xf0000000) == 0xe0000000) -#define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */ -#define IN_CLASSD_NSHIFT 28 /* net and host fields, but */ -#define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */ +#define IN_CLASSD(i) (((u_int32_t)(i) & __IPADDR(0xf0000000)) == \ + __IPADDR(0xe0000000)) +/* These ones aren't really net and host fields, but routing needn't know. */ +#define IN_CLASSD_NET __IPADDR(0xf0000000) +#define IN_CLASSD_NSHIFT 28 +#define IN_CLASSD_HOST __IPADDR(0x0fffffff) #define IN_MULTICAST(i) IN_CLASSD(i) -#define IN_EXPERIMENTAL(i) (((int32_t)(i) & 0xf0000000) == 0xf0000000) -#define IN_BADCLASS(i) (((int32_t)(i) & 0xf0000000) == 0xf0000000) +#define IN_EXPERIMENTAL(i) (((u_int32_t)(i) & __IPADDR(0xf0000000)) == \ + __IPADDR(0xf0000000)) +#define IN_BADCLASS(i) (((u_int32_t)(i) & __IPADDR(0xf0000000)) == \ + __IPADDR(0xf0000000)) + +#define IN_LOCAL_GROUP(i) (((u_int32_t)(i) & __IPADDR(0xffffff00)) == \ + __IPADDR(0xe0000000)) -#define INADDR_ANY (u_int32_t)0x00000000 -#define INADDR_LOOPBACK (u_int32_t)0x7f000001 -#define INADDR_BROADCAST (u_int32_t)0xffffffff /* must be masked */ +#define INADDR_ANY __IPADDR(0x00000000) +#define INADDR_LOOPBACK __IPADDR(0x7f000001) +#define INADDR_BROADCAST __IPADDR(0xffffffff) /* must be masked */ #ifndef _KERNEL -#define INADDR_NONE 0xffffffff /* -1 return */ +#define INADDR_NONE __IPADDR(0xffffffff) /* -1 return */ #endif -#define INADDR_UNSPEC_GROUP (u_int32_t)0xe0000000 /* 224.0.0.0 */ -#define INADDR_ALLHOSTS_GROUP (u_int32_t)0xe0000001 /* 224.0.0.1 */ -#define INADDR_MAX_LOCAL_GROUP (u_int32_t)0xe00000ff /* 224.0.0.255 */ +#define INADDR_UNSPEC_GROUP __IPADDR(0xe0000000) /* 224.0.0.0 */ +#define INADDR_ALLHOSTS_GROUP __IPADDR(0xe0000001) /* 224.0.0.1 */ #define IN_LOOPBACKNET 127 /* official! */ @@ -240,7 +259,6 @@ int in_broadcast __P((struct in_addr, struct ifnet *)); int in_canforward __P((struct in_addr)); int in_cksum __P((struct mbuf *, int)); int in_localaddr __P((struct in_addr)); -u_int32_t in_netof __P((struct in_addr)); void in_socktrim __P((struct sockaddr_in *)); #endif #endif /* !_NETINET_IN_H_ */ diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 3a28aa51beb..c9303068e7d 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -1,4 +1,4 @@ -/* $NetBSD: in_pcb.c,v 1.13 1995/04/13 06:28:21 cgd Exp $ */ +/* $NetBSD: in_pcb.c,v 1.14 1995/06/01 21:36:11 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1991, 1993 @@ -111,7 +111,7 @@ in_pcbbind(inp, nam) return (EAFNOSUPPORT); #endif lport = sin->sin_port; - if (IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { + if (IN_MULTICAST(sin->sin_addr.s_addr)) { /* * Treat SO_REUSEADDR as SO_REUSEPORT for multicast; * allow complete duplication of binding if @@ -186,7 +186,7 @@ in_pcbconnect(inp, nam) #define ifatoia(ifa) ((struct in_ifaddr *)(ifa)) if (sin->sin_addr.s_addr == INADDR_ANY) sin->sin_addr = IA_SIN(in_ifaddr)->sin_addr; - else if (sin->sin_addr.s_addr == (u_int32_t)INADDR_BROADCAST && + else if (sin->sin_addr.s_addr == INADDR_BROADCAST && (in_ifaddr->ia_ifp->if_flags & IFF_BROADCAST)) sin->sin_addr = satosin(&in_ifaddr->ia_broadaddr)->sin_addr; } @@ -242,7 +242,7 @@ in_pcbconnect(inp, nam) * interface has been set as a multicast option, use the * address of that interface as our source address. */ - if (IN_MULTICAST(ntohl(sin->sin_addr.s_addr)) && + if (IN_MULTICAST(sin->sin_addr.s_addr) && inp->inp_moptions != NULL) { struct ip_moptions *imo; struct ifnet *ifp; diff --git a/sys/netinet/in_var.h b/sys/netinet/in_var.h index ea2e68fd71f..bc84bc833da 100644 --- a/sys/netinet/in_var.h +++ b/sys/netinet/in_var.h @@ -1,4 +1,4 @@ -/* $NetBSD: in_var.h,v 1.12 1995/05/31 06:08:29 mycroft Exp $ */ +/* $NetBSD: in_var.h,v 1.13 1995/06/01 21:36:16 mycroft Exp $ */ /* * Copyright (c) 1985, 1986, 1993 @@ -72,9 +72,6 @@ struct in_aliasreq { */ #define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) -#define IN_LNAOF(in, ifa) \ - ((ntohl((in).s_addr) & ~((struct in_ifaddr *)(ifa)->ia_subnetmask)) - #ifdef _KERNEL extern struct in_ifaddr *in_ifaddr; diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index 4ce6389cf22..5137e85e41a 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -1,4 +1,4 @@ -/* $NetBSD: ip_icmp.c,v 1.13 1995/05/31 21:50:38 mycroft Exp $ */ +/* $NetBSD: ip_icmp.c,v 1.14 1995/06/01 21:36:22 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1993 @@ -286,7 +286,7 @@ icmp_input(m, hlen) icmpstat.icps_badlen++; goto freeit; } - if (IN_MULTICAST(ntohl(icp->icmp_ip.ip_dst.s_addr))) + if (IN_MULTICAST(icp->icmp_ip.ip_dst.s_addr)) goto badcode; NTOHS(icp->icmp_ip.ip_len); #ifdef ICMPPRINTFS @@ -422,8 +422,8 @@ icmp_reflect(m) int optlen = (ip->ip_hl << 2) - sizeof(struct ip); if (!in_canforward(ip->ip_src) && - ((ntohl(ip->ip_src.s_addr) & IN_CLASSA_NET) != - (IN_LOOPBACKNET << IN_CLASSA_NSHIFT))) { + ((ip->ip_src.s_addr & IN_CLASSA_NET) != + htonl(IN_LOOPBACKNET << IN_CLASSA_NSHIFT))) { m_freem(m); /* Bad return address */ goto done; /* ip_output() will check for broadcast */ } diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index bbf1dcf6581..bf3290ebddf 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.17 1995/05/15 02:09:58 cgd Exp $ */ +/* $NetBSD: ip_input.c,v 1.18 1995/06/01 21:36:27 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1993 @@ -248,10 +248,8 @@ next: ia->ia_ifp == m->m_pkthdr.rcvif && #endif (ia->ia_ifp->if_flags & IFF_BROADCAST)) { - u_int32_t t; - - if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr == - ip->ip_dst.s_addr) + if (ip->ip_dst.s_addr == + satosin(&ia->ia_broadaddr)->sin_addr.s_addr) goto ours; if (ip->ip_dst.s_addr == ia->ia_netbroadcast.s_addr) goto ours; @@ -259,14 +257,12 @@ next: * Look for all-0's host part (old broadcast addr), * either for subnet or net. */ - t = ntohl(ip->ip_dst.s_addr); - if (t == ia->ia_subnet) - goto ours; - if (t == ia->ia_net) + if (ip->ip_dst.s_addr == ia->ia_subnet || + ip->ip_dst.s_addr == ia->ia_net) goto ours; } } - if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) { + if (IN_MULTICAST(ip->ip_dst.s_addr)) { struct in_multi *inm; #ifdef MROUTING extern struct socket *ip_mrouter; @@ -322,7 +318,7 @@ next: } goto ours; } - if (ip->ip_dst.s_addr == (u_int32_t)INADDR_BROADCAST) + if (ip->ip_dst.s_addr == INADDR_BROADCAST) goto ours; if (ip->ip_dst.s_addr == INADDR_ANY) goto ours; @@ -746,7 +742,7 @@ ip_dooptions(m) /* * Let ip_intr's mcast routing check handle mcast pkts */ - forward = !IN_MULTICAST(ntohl(ip->ip_dst.s_addr)); + forward = !IN_MULTICAST(ip->ip_dst.s_addr); break; case IPOPT_RR: @@ -1083,10 +1079,9 @@ ip_forward(m, srcrt) satosin(rt_key(rt))->sin_addr.s_addr != 0 && ipsendredirects && !srcrt) { #define RTA(rt) ((struct in_ifaddr *)(rt->rt_ifa)) - u_int32_t src = ntohl(ip->ip_src.s_addr); - if (RTA(rt) && - (src & RTA(rt)->ia_subnetmask) == RTA(rt)->ia_subnet) { + (ip->ip_src.s_addr & RTA(rt)->ia_subnetmask) == + RTA(rt)->ia_subnet) { if (rt->rt_flags & RTF_GATEWAY) dest = satosin(rt->rt_gateway)->sin_addr.s_addr; else diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 0c3dc2ffa76..a760e3884b2 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -1,4 +1,4 @@ -/* $NetBSD: ip_mroute.c,v 1.15 1995/05/31 21:50:39 mycroft Exp $ */ +/* $NetBSD: ip_mroute.c,v 1.16 1995/06/01 21:36:32 mycroft Exp $ */ /* * IP multicast forwarding procedures @@ -997,7 +997,7 @@ ip_mforward(m, ifp) * or a packet destined to a local-only group. */ if (ip->ip_ttl <= 1 || - ntohl(ip->ip_dst.s_addr) <= INADDR_MAX_LOCAL_GROUP) + IN_LOCAL_GROUP(ip->ip_dst.s_addr)) return (0); /* @@ -1447,7 +1447,7 @@ ipip_input(m, hlen) * uniquely identifies the tunnel (i.e., that this site has * at most one tunnel with the remote site). */ - if (! IN_MULTICAST(ntohl(((struct ip *)((char *)ip + hlen))->ip_dst.s_addr))) { + if (!IN_MULTICAST(((struct ip *)((char *)ip + hlen))->ip_dst.s_addr)) { ++mrtstat.mrts_bad_tunnel; m_freem(m); return; diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 33a89833e8c..a0ba78f86a0 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1,4 +1,4 @@ -/* $NetBSD: ip_output.c,v 1.22 1995/05/15 01:24:53 cgd Exp $ */ +/* $NetBSD: ip_output.c,v 1.23 1995/06/01 21:36:40 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1990, 1993 @@ -157,7 +157,7 @@ ip_output(m0, opt, ro, flags, imo) if (ro->ro_rt->rt_flags & RTF_GATEWAY) dst = (struct sockaddr_in *)ro->ro_rt->rt_gateway; } - if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) { + if (IN_MULTICAST(ip->ip_dst.s_addr)) { struct in_multi *inm; m->m_flags |= M_MCAST; @@ -833,7 +833,7 @@ ip_setmoptions(optname, imop, m) break; } mreq = mtod(m, struct ip_mreq *); - if (!IN_MULTICAST(ntohl(mreq->imr_multiaddr.s_addr))) { + if (!IN_MULTICAST(mreq->imr_multiaddr.s_addr)) { error = EINVAL; break; } @@ -854,8 +854,7 @@ ip_setmoptions(optname, imop, m) } ifp = ro.ro_rt->rt_ifp; rtfree(ro.ro_rt); - } - else { + } else { INADDR_TO_IFP(mreq->imr_interface, ifp); } /* @@ -906,7 +905,7 @@ ip_setmoptions(optname, imop, m) break; } mreq = mtod(m, struct ip_mreq *); - if (!IN_MULTICAST(ntohl(mreq->imr_multiaddr.s_addr))) { + if (!IN_MULTICAST(mreq->imr_multiaddr.s_addr)) { error = EINVAL; break; } diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 308c9e9188d..1c2df2c476d 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.12 1995/04/13 06:36:37 cgd Exp $ */ +/* $NetBSD: tcp_input.c,v 1.13 1995/06/01 21:36:45 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994 @@ -556,7 +556,7 @@ findpcb: * packet with M_BCAST not set. */ if (m->m_flags & (M_BCAST|M_MCAST) || - IN_MULTICAST(ntohl(ti->ti_dst.s_addr))) + IN_MULTICAST(ti->ti_dst.s_addr)) goto drop; am = m_get(M_DONTWAIT, MT_SONAME); /* XXX */ if (am == NULL) @@ -1282,7 +1282,7 @@ dropwithreset: * Don't bother to respond if destination was broadcast/multicast. */ if ((tiflags & TH_RST) || m->m_flags & (M_BCAST|M_MCAST) || - IN_MULTICAST(ntohl(ti->ti_dst.s_addr))) + IN_MULTICAST(ti->ti_dst.s_addr)) goto drop; if (tiflags & TH_ACK) tcp_respond(tp, ti, m, (tcp_seq)0, ti->ti_ack, TH_RST); diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 946f0bc0f73..484dd6102ea 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -1,4 +1,4 @@ -/* $NetBSD: udp_usrreq.c,v 1.15 1995/04/13 06:37:18 cgd Exp $ */ +/* $NetBSD: udp_usrreq.c,v 1.16 1995/06/01 21:36:51 mycroft Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1990, 1993 @@ -152,7 +152,7 @@ udp_input(m, iphlen) } } - if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) || + if (IN_MULTICAST(ip->ip_dst.s_addr) || in_broadcast(ip->ip_dst, m->m_pkthdr.rcvif)) { struct socket *last; /* diff --git a/sys/netiso/iso.c b/sys/netiso/iso.c index 921e3437945..d2e2e8d42b2 100644 --- a/sys/netiso/iso.c +++ b/sys/netiso/iso.c @@ -1,4 +1,4 @@ -/* $NetBSD: iso.c,v 1.9 1995/04/11 04:30:59 mycroft Exp $ */ +/* $NetBSD: iso.c,v 1.10 1995/06/01 21:41:40 mycroft Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -353,16 +353,11 @@ caddr_t buf; /* RESULT: network portion of address here */ */ len += ADDROSINET_IDI_LEN; else if (idi == IDI_RFC986) { - u_long inetaddr; struct ovl_rfc986 *o986 = (struct ovl_rfc986 *)isoa; /* bump len to include idi and version (1 byte) */ len += ADDRRFC986_IDI_LEN + 1; - /* get inet addr long aligned */ - bcopy(o986->o986_inetaddr, &inetaddr, sizeof(inetaddr)); - inetaddr = ntohl(inetaddr); /* convert to host byte order */ - IFDEBUG(D_ROUTE) printf("iso_netof: isoa "); dump_buf(isoa, sizeof(*isoa)); @@ -370,12 +365,12 @@ caddr_t buf; /* RESULT: network portion of address here */ ENDDEBUG /* bump len by size of network portion of inet address */ - if (IN_CLASSA(inetaddr)) { + if (IN_CLASSA(o986->o986_inetaddr)) { len += 4-IN_CLASSA_NSHIFT/8; IFDEBUG(D_ROUTE) printf("iso_netof: class A net len is now %d\n", len); ENDDEBUG - } else if (IN_CLASSB(inetaddr)) { + } else if (IN_CLASSB(o986->o986_inetaddr)) { len += 4-IN_CLASSB_NSHIFT/8; IFDEBUG(D_ROUTE) printf("iso_netof: class B net len is now %d\n", len); |
