From: cco <cri...@ip...> - 2008-11-18 18:34:47
|
On Tue, Nov 18, 2008 at 01:15:45PM -0500, Vlad Yasevich wrote: > cco wrote: > > On Tue, Nov 18, 2008 at 11:47:42AM -0500, Vlad Yasevich wrote: > >> cco wrote: > >>> hi! > >>> > >>> any idea why something like: > >>> > >>> struct sctp_event_subscribe ev_sub; > >>> ... > >>> setsockopt(s, IPPROTO_SCTP, SCTP_EVENTS, > >>> &ev_sub, sizeof(ev_sub)); > >>> > >>> fails with EINVAL? > >>> > >>> I am using 2.6.21 / 2.6.22, debian unstable; and I think I saw this > >>> working before updating debian on those machines... > >> It might be that the even structures between the kernel and user mismatch. > >> We used to have a bug that we did very strict size matching that was later > >> relaxed to allow the the user to have older event structure. > >> > >> In any case, you can't have a newer ever structure in userspace with the older > >> version in the kernel. > > > > cristian: hi again! > > > > could the mismatch btw. the user space header > > files/libs and the kernel be the reason why the struct sctp_sndrcvinfo * > > sinfo from sctp_recvmsg() contains garbagge (at least for ppid) ? > > Never heard of this. ppid is opaque and the kernel doesn't change the > byte ordering at all for it. It's a job of the user application to set > the byte ordering for it and to do appropriate conversions. cristian: yes, but if I cannot set the SCTP_EVENTS on the socket (and thus sctp_data_io_event) I won't get any sctp_sndrcvinfo at sctp_recvmsg(), right? thanks again! bye now! cristian |