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

Reply via email to