rpc.statd already ipv6 clean?
Bjoern A. Zeeb
bz at FreeBSD.org
Thu Sep 26 15:55:21 UTC 2019
On 26 Sep 2019, at 15:25, Rick Macklem wrote:
> Mihir Luthra wrote:
>> Hiroki Sato wrote:
>>>
>>>
>>> I think you should learn TI-RPC API first. The nettype specifies a
>>> class of transport protocol, not address family.
>>>
>>> Thanks, I did some more research on TI-RPC today.
>> In `statd.c` what I see is in
>> `create_service()`/`complete_service()`,
>> transport info is being fetched through getnetconfig(), which makes
>> it
>> listen on all transports. I guess its clean in `statd.c` but same can
>> also
>> be done in `procs.c`/`file.c`. Maybe trying all transports until it
>> finds
>> one which is connectionless? Apologies if I got something wrong, new
>> to
>> this topic.
>>
>> Also, while looking at the code, I think it always assumes ipv4 is
>> always
>> present. Like `127.0.0.1` is added to host list always. On ipv6 only
>> machine this may fail.
> Although I'll admit it isn't something I am particularily fond of,
> FreeBSD likes
> utilities to build/work with only one of ipv4/ipv6.
> To do this, "#ifdef INET" and "#ifdef INET6" is applied to the code
> and the
> Makefile is tweaked to define one or both of these.
> (You can look at usr.sbin/nfsuserd for an example of this.)
I am not sure if this is entirely on-topic but here’s a diff from a
work-tree of mine from sometime earlier this year:
https://people.freebsd.org/~bz/20190926-01-golegacy.diff
This is a lot of resolver and rpc (libc) code. I think this did compile
but I am almost certain that a few changes are not doing the right thing
and need review and testing.
I might have upstreamed 2 or 3 lines of this already in case the patch
doesn’t apply cleanly anymore.
I’ll be more than happy to work with someone going through this as
well and reviewing/updating it. I can also put it into Phabricator; at
the moment it only collects dust as I didn’t have time to work on this
hobby project lately.
/bz
>
> Btw, these protocols are old Sun Microsystems ones without any
> published
> RFC, so what is "correct" is difficult to determine. I suppose the
> Open
> Solaris sources is the best protocol specification. (Interop. testing
> with Linux
> would be nice, since Linux is the "defacto standard" now.)
>
> Good luck with it, rick
>
> Kind Regards,
> Mihir
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
More information about the freebsd-net
mailing list