Hi,
I have a first working (but the code has many many whitespaces diff's
and I'm sure some errors) version of the TI-NetBSD-RPC code available.
It's a diff against CURRENT, but it'll work also on STABLE if you
adjust src/include/Makefile - this file is different from CURRENT.
The diff is uncompressed 1.5MB, compressed 290kb. You can get it on
http://www.attic.ch/patches/rpc.diff.tgz
Please send me a diff if you clean up the code. I'll make a new version
available.
I'm still testing the new rpcbind, and I can normaly use nfsv3 and also
YP seems to work as it has before. Can someone test the rpc.lockd ?
I'll clean up the code (I have already done a lot !) as I come back from
my vacation this week.
Issues with the code:
1.) NETBSD sets in svc_tcp.c some LOCAL_CREDS which we don't have in our
src/sys/kern/uipc_usrreq.c. They have a FLAG which - if set -
automatically sends the credentials on AF_UNIX sockets connections
if we do a recvmsg(). We have to implement this to have rpcbind properly
working. AF_UNIX socket operations are broken at the moment, but
with compability-mode 'rpcbind -Li' rpcbind works.
2. Maybe it's related to 1., but unregistring the rpc-services does not
work at the moment.
3.) It breaks 'make world', some rpc based programms do not find the
symbol for a extern defined variable from rpcgen generated code. NetBSD
has the same code generated from rpcbind, so it has to be somewhere
defined. Can someone with a netbsd account look if they have the same
problem ?
cc -O -pipe -I. -o rpc.statd file.o sm_inter_svc.o statd.o procs.o
-lrpcsvc
sm_inter_svc.o: In function `sm_prog_1':
sm_inter_svc.o(.text+0xb): undefined reference to `_rpcsvcdirty'
4.) The threaded version of the libs may not work. As I have seen
it was untested by NetBSD people and I fixed some bugs myself. One thing
I'm not sure about the way I changed pthread_getspecific(key) in several
files.
Some time ago this function has changed from
void * pthread_getspecific(pthread_key_t key, void **value_ptr) to
void * pthread_getspecific(pthread_key_t key);
And I wonder where the **value_ptr now is. Is this the right way to do
this ?
value_ptr = (int*)pthread_getspecific(key);
5.) The semantics of authdes_create() are not the same as in TI-RPC
code of Sun. Can someone look a little bit at this changes ?
-----------------------------------------
Here is a list of rpcinfo (and rpcinfo -p)
su-2.03# rpcinfo localhost
program version netid address service owner
100000 4 tcp 0.0.0.0.0.111 portmapper superuser
100000 3 tcp 0.0.0.0.0.111 portmapper superuser
100000 2 tcp 0.0.0.0.0.111 portmapper superuser
100000 4 udp 0.0.0.0.0.111 portmapper superuser
100000 3 udp 0.0.0.0.0.111 portmapper superuser
100000 2 udp 0.0.0.0.0.111 portmapper superuser
100000 4 tcp6 ::.0.111 portmapper superuser
100000 3 tcp6 ::.0.111 portmapper superuser
100000 4 udp6 ::.0.111 portmapper superuser
100000 3 udp6 ::.0.111 portmapper superuser
100007 2 udp 0.0.0.0.3.140 ypbind unknown
100007 2 tcp 0.0.0.0.3.154 ypbind unknown
100021 0 udp 0.0.0.0.2.107 nlockmgr unknown
100021 1 udp 0.0.0.0.2.107 nlockmgr unknown
100021 3 udp 0.0.0.0.2.107 nlockmgr unknown
100021 4 udp 0.0.0.0.2.107 nlockmgr unknown
100021 0 tcp 0.0.0.0.3.144 nlockmgr unknown
100021 1 tcp 0.0.0.0.3.144 nlockmgr unknown
100021 3 tcp 0.0.0.0.3.144 nlockmgr unknown
100021 4 tcp 0.0.0.0.3.144 nlockmgr unknown
100021 0 udp6 ::ffff:0.0.0.0.2.106 nlockmgr unknown
100021 1 udp6 ::ffff:0.0.0.0.2.106 nlockmgr unknown
100021 3 udp6 ::ffff:0.0.0.0.2.106 nlockmgr unknown
100021 4 udp6 ::ffff:0.0.0.0.2.106 nlockmgr unknown
100021 0 tcp6 ::ffff:0.0.0.0.3.135 nlockmgr unknown
100021 1 tcp6 ::ffff:0.0.0.0.3.135 nlockmgr unknown
100021 3 tcp6 ::ffff:0.0.0.0.3.135 nlockmgr unknown
100021 4 tcp6 ::ffff:0.0.0.0.3.135 nlockmgr unknown
100024 1 udp 0.0.0.0.2.229 status unknown
100024 1 tcp 0.0.0.0.3.121 status unknown
100005 3 udp 0.0.0.0.3.123 mountd unknown
100005 3 tcp 0.0.0.0.3.115 mountd unknown
100005 1 udp 0.0.0.0.3.123 mountd unknown
100005 1 tcp 0.0.0.0.3.115 mountd unknown
100003 2 udp 0.0.0.0.8.1 nfs unknown
100003 3 udp 0.0.0.0.8.1 nfs unknown
su-2.03# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 908 ypbind
100007 2 tcp 922 ypbind
100021 0 udp 619 nlockmgr
100021 1 udp 619 nlockmgr
100021 3 udp 619 nlockmgr
100021 4 udp 619 nlockmgr
100021 0 tcp 912 nlockmgr
100021 1 tcp 912 nlockmgr
100021 3 tcp 912 nlockmgr
100021 4 tcp 912 nlockmgr
100024 1 udp 741 status
100024 1 tcp 889 status
100005 3 udp 891 mountd
100005 3 tcp 883 mountd
100005 1 udp 891 mountd
100005 1 tcp 883 mountd
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
Martin
Martin Blapp, [EMAIL PROTECTED]
------------------------------------------------
Improware AG, UNIX solution and service provider
Zurlindenstrasse 29, 4133 Pratteln, Switzerland
Phone: +41 79 370 26 05, Fax: +41 61 826 93 01
------------------------------------------------
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message