[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(usagi-users 03420) Re: Any particular reason that IPV6_TCLASS/IPV6_RECVTCLASS is not implemented?
On Wed, 22 Jun 2005, David Stevens wrote:
>
> > But - do you have any opinions on the other issue I raised - the
> > transition issue? I will probably have to hack a solution within my
> > project - there I need packages right here and now (such as quagga and
> > iputils) that are run-time independent on whether the kernel contains
> your
>
> If you're compiling on a system that supports both,
> then you can call setsockopt with IPV6_RECVx. If that
> returns ENOPROTOOPT (I think that's the errno for an
> invalid socket option-- should check), then call again
> with "IPV6_2292x" (or whatever the old value is defined
> as in the eventual patch).
>
> Alternatively, you can call with "IPV6_x" and a boolean
> option and if that returns "EINVAL", then call with
> "IPV6_RECVx".
Of course - that solves my problem. I should have thought about
that myself. Thank you for your answer.
> The ancillary data processing is a little trickier, but
> it'll either be the old value of IPV6_x or the new one,
> so you can treat those as equivalent in recvmsg. If you do a
> socket option as above and set a flag to remember which
> flavor of kernel you have, you can use the appropriate
> one for both sendmsg() and recvmsg(). Without that, for
> sendmsg(), you'll get "EINVAL" when using a new cmsg_type
> on a kernel that doesn't support it, so then you switch
> to the old value (assuming that's the cause of the
> EINVAL :-)). In the kernel.org patch, the old
> value is, e.g., "IPV6_2292PKTINFO" and the new one is
> "IPV6_PKTINFO".
>
Yes, I can see how that would work, too. That will be useful in some of
my less critical applications which do use ancillary data.
thank you and best regards
--
Peder Chr. Nørgaard Senior System Developer, M. Sc.
Ericsson Denmark A/S, Telebit Division
Skanderborgvej 232 tel: +45 30 91 84 31
DK-8260 Viby J, Denmark fax: +45 89 38 51 01
e-mail: Peder.Chr.Norgaard@xxxxxxxxxxxx
(old e-mail 2000-2003: Peder.C.Norgaard@xxxxxxxxxxxxxxx)
(old e-mail 1992-2000: pcn@xxxxxxx)