Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site uwvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxb!mhuxn!mhuxm!mhuxj!houxm!whuxlm!akgua!mcnc!decvax!genrad!teddy!panda!talcott!harvard!seismo!uwvax!hagens From: hagens@uwvax.UUCP (Rob Hagens) Newsgroups: net.unix-wizards Subject: 4.2 ip source route bug? Message-ID: <104@uwvax.UUCP> Date: Wed, 23-Jan-85 10:44:10 EST Article-I.D.: uwvax.104 Posted: Wed Jan 23 10:44:10 1985 Date-Received: Mon, 28-Jan-85 06:15:22 EST Distribution: net Organization: U of Wisconsin CS Dept Lines: 28 I have been having trouble getting 4.2 to forward source routed ip datagrams. It seems that once into 4.2 ip, they never get back out. Looking at the ip code, in ip_input.c, in function ip_dooptions, at case label IPOPT_LSRR: The next hop in the source route is placed into struct ipaddr. Then a check is made to see if this address corresponds to any interface: ifp = if_ifwithaddr((struct sockaddr *)&ipaddr; If, when this function returns, ifp == 0, then the source route is aborted (ip_options returns without changing the destination address, and ip_input assumes the datagram is for the current host). Looking at the function if_ifwithaddr(), it appears that it checks 14 bytes of internet address. I am confused here. One would think that the only portion of the address to check is the net, not the entire address, let alone 14 bytes! (see the #define equal in the if_ifwithaddr()). Does anyone know whats going on here. I'd like a second opinion before I change this stuff. Rob Hagens -- Rob Hagens @ wisconsin ...!{allegra,heurikon,ihnp4,seismo,sfwin,ucbvax,uwm-evax}!uwvax!hagens hagens@wisc-rsch.arpa