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