Date: Sat, 30 Jun 2001 11:34:11 -0600 From: Wes Peters <wes@softweyr.com> To: Igor Podlesny <poige@morning.ru> Cc: freebsd-hackers@FreeBSD.ORG, freebsd-isp@freebsd.org Subject: Re: Flight of the rat, living wreck..... Message-ID: <3B3E0D93.79738728@softweyr.com> References: <754836544.20010630185133@morning.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Igor Podlesny wrote: > > /* > > * Macro for finding the interface (ifnet structure) corresponding to one > > * of our IP addresses. > > */ > > #define INADDR_TO_IFP(addr, ifp) \ > > /* struct in_addr addr; */ \ > > /* struct ifnet *ifp; */ \ > > { \ > > register struct in_ifaddr *ia; \ > > \ > > for (ia = in_ifaddrhead.tqh_first; \ > > // so here we start looking through the queue > > > ia != NULL > > // sanity (I'd have written just (ia)) > > > && ((ia->ia_ifp->if_flags & IFF_POINTOPOINT)? \ > > // hm. special case if the interface is PTP > > > IA_DSTSIN(ia):IA_SIN(ia))->sin_addr.s_addr != (addr).s_addr; \ > > // so it is like: if it is PTP, then we using DST address in comparison > // with addr.s_addr > > // it is the time I started to ask myself why it is so? why we're (ok, > // they're) checking for remote ip-address if the head comment > // says: > // * Macro for finding the interface (ifnet structure) corresponding to one > // * of our IP addresses. > // ^^^ > // ^^^ With point-to-point connections, the address at the opposite end of the connection is always used in the route table. When the interface is created as a point-to-point interface, a route is automatically entered from the local address to the opposite address. The "corresponding" in the comment at the beginning of the macro is interpreted rather loosely. -- "Where am I, and what am I doing in this handbasket?" Wes Peters Softweyr LLC wes@softweyr.com http://softweyr.com/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B3E0D93.79738728>