I have finished now my work here with TI-RPC, and I'm only doing
bug-fixing now before this gets comitted.

I'd like that many people test these changes and send me bugreports
back. This is a port from NetBSD, and as in NetBSD, it uses Unix Domain
Sockets instead of TLI/XLI stuff. I'v taken the credential checking stuff
from our previous RPC implementation, thanks to Bill Paul for the work he
has done there.

There are still some little things to do in future:

- Fix manpages
- Fix 'bind to ip' for nfsd which is broken at the moment
- Upgrade locking stuff in rpc.library to latest version (ti-rpc2.3)

Here are the patches:


To patch the CURRENT source-tree and to install these changes, do the
following steps:

1. cd /usr/src
2. run ./before-patch.sh
3. patch -I -E -p < rpc.diff_02202001
4. make world
5. Run mergemaster

With these patches applied, all rpc dependent programms in FreeBSD still
work and compile, nfsd(8) and mountd(8) and the mount utilities
(mount_nfs, umount, prc.umntall) have been patched to support IPv6, and
I'm using here NFS over UDP6 on localhost sucessfully.

This is an output of rpcinfo(8), which also has been updated:

# rpcinfo
   program version netid     address                service    owner
    100000    4    tcp          rpcbind    superuser
    100000    3    tcp          rpcbind    superuser
    100000    2    tcp          rpcbind    superuser
    100000    4    udp          rpcbind    superuser
    100000    3    udp          rpcbind    superuser
    100000    2    udp          rpcbind    superuser
    100000    4    tcp6      ::.0.111               rpcbind    superuser
    100000    3    tcp6      ::.0.111               rpcbind    superuser
    100000    4    udp6      ::.0.111               rpcbind    superuser
    100000    3    udp6      ::.0.111               rpcbind    superuser
    100000    4    unix      /var/run/rpcbind.sock  rpcbind    superuser
    100000    3    unix      /var/run/rpcbind.sock  rpcbind    superuser
    100000    2    unix      /var/run/rpcbind.sock  rpcbind    superuser
    100005    1    udp          mountd     superuser
    100005    3    udp          mountd     superuser
    100005    1    tcp          mountd     superuser
    100005    3    tcp          mountd     superuser
    100005    1    udp6      ::.3.251               mountd     superuser
    100005    3    udp6      ::.3.251               mountd     superuser
    100005    1    tcp6      ::.3.253               mountd     superuser
    100005    3    tcp6      ::.3.253               mountd     superuser
    100003    2    udp            nfs        superuser
    100003    3    udp            nfs        superuser
    100003    2    udp6      ::.8.1                 nfs        superuser
    100003    3    udp6      ::.8.1                 nfs        superuser 

And I can do:

# mount -v ::1:/usr/ports/ /mnt
::1:/usr/ports on /mnt (nfs)

# ls -l /mnt
total 1353
-rw-r--r--    1 root  wheel       19 Jul 14  1997 .cvsignore
drwxr-xr-x    2 root  wheel      512 Dec 25  1999 CVS

# umount -v ::1:/usr/ports/
::1:/usr/ports: unmount from /mnt 

Now to the other changes which are included in this patch:

- Portmapper(8) has been replaced by the son of portmap, rpcbind.

- There is also a fix included for ypbind, to not to sent 10000ends of
requests out, if the yp-server is away for a little time.

- Umount(8) is also fixed to unmount pathnames longer than 80 chars, which
are currently truncated by the Kernel statfs structure.

- In rc.network, all rpc dependent programms and servers are only started
if ${portmap_enable} is set to "YES". In defaults/rc.conf there are some
comments about this. This should prevent some hangs for rpc dependent
programms (rpc.umntall, nfsd, ypbind etc.)

- Because I was to lazy to fix our rpc.lockd(8), I've included the working
NetBSD rpc.lockd(8) implementation, wich uses TI-RPC and works fine for
server side locking, client side locking is not implemented yet.

Im doing some patch splits now, so all necessary parts will hopefully
be commited by Alfred Perlstein in the next few days.


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-current" in the body of the message

Reply via email to