Subject: Re: sendto(2) EINVAL / pacing problem
To: Christoph Kaegi <kgc@zhwin.ch>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-net
Date: 02/11/2004 04:32:35
> OK, I followed sendit() and sosend().
> The EINVAL comes from the line
> error = (*so->so_proto->pr_usrreq)(so,
> (flags & MSG_OOB) ? PRU_SENDOOB : PRU_SEND,
> top, addr, control, p);
> I also put printfs into udp_usrreq.c but didn't score a hit there.
> Now, as this is a unix domain socket, could it be that the above
> mentionned line doesn't call udp_usrreq() but something else?
Yes. As I mentioned a bit ago, UDP is for AF_INET and AF_INET6, not
AF_LOCAL (nee AF_UNIX).
> I couldn't find out, where so->so_proto->pr_usrreq gets initialized.
For AF_LOCAL, sys/kern/uipc_proto.c (the initialization of unixsw[]).
Looks to me as though you want uipc_usrreq().
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse@rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B