Hi,
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:
http://home.teleport.ch/freebsd/rpc.diff_02202001.tgz
http://home.teleport.ch/freebsd/before-patch.sh
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 0.0.0.0.0.111 rpcbind superuser
100000 3 tcp 0.0.0.0.0.111 rpcbind superuser
100000 2 tcp 0.0.0.0.0.111 rpcbind superuser
100000 4 udp 0.0.0.0.0.111 rpcbind superuser
100000 3 udp 0.0.0.0.0.111 rpcbind superuser
100000 2 udp 0.0.0.0.0.111 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 0.0.0.0.3.252 mountd superuser
100005 3 udp 0.0.0.0.3.252 mountd superuser
100005 1 tcp 0.0.0.0.3.254 mountd superuser
100005 3 tcp 0.0.0.0.3.254 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 0.0.0.0.8.1 nfs superuser
100003 3 udp 0.0.0.0.8.1 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.
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-current" in the body of the message