Unix Netork/Kernel problem
William P. Caloccia
caloccia at bbnccv.UUCP
Sat Aug 9 08:53:00 AEST 1986
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 at bbnccv.arpa)
* trademarks appear in preceeding article *
--
William P. Caloccia
More information about the Comp.unix.wizards
mailing list