caloccia@bbnccv.UUCP (William P. Caloccia) (08/09/86)
I'm porting code to support the HMP protocol, from a Sun-2 running SunOS 1.3, to a Sun-2 running SunOS 3.0. The code was running on the Sun with the earlier OS, but will not work on the Sun 3.0. In particular, the problem appears on the input side, after processing by hmp_input(). hmp_input() gets called from the IP layer to extract struct sockaddr info from the packet. It then calls sbappendaddr(), and if successful, it invokes sorwakeup(). The mbuf chain appears ok until the call to sbappendaddr, and sbappendaddr seems to work ok. Problem #1: the (privledged) user program's recvfrom() gets correct information in the struct sockaddr, but receives NO data when there IS data. Problem #2: apparently if the total data in the incoming hmp packet is very short (say 8 bytes), then the system crashes with a "PANIC: RECEIVE 2A" apparently from soreceive(). (so the mbuff chain appears to get munged) Does anyone know of any changes in the sun network code (between versions 1.3 and 3.0) that might cause this program to break ? Have any of the data structures (mbuf, sockaddr, socket, sockbuf) or calling procedures changed (hmp_input, sbappendaddr, sorwakeup) ? thanks, --bill (caloccia@bbnccv.arpa) * trademarks appear in preceeding article * -- William P. Caloccia