ChangeLog ========= Version 0.11.0 - fixes to make sure unfs3 works on macOS and Windows again - 32-bit mode can now be enabled at any time, for compatibility with very old NFS clients - starting unfsd now gives a reliable error code if it fails to start - fix incorrect file mode when doing exclusive create - fix to correctly update the time on symlinks, not what they point to - Flex' libfl is no longer needed Version 0.10.0 - switched to libtirpc as a base requirement - contrib scripts now require Python 3 instead of Python 2 - fix stale handle when moving files or directories Version 0.9.23 - include AFS support for better serving of files from AFS filesystems - use svc_getreq_poll() when available - fix serving files larger than 4GB from Windows - better support for 64-bit systems - fixes for macOS and Windows support - fixes when cross compiling - better support for exporting FAT filesystems Version 0.9.22 - fix spelling mistake in "no_all_squash" export option parsing - fix build on more recent FreeBSD systems - fix filesystem size reporting for Solaris Zones and others - document permission needs for exported directories Version 0.9.21 - avoid returning large fileids on Windows, for better compatibility with clients such as Linux 2.6.24 - try to prevent races between READDIR and removal of files Version 0.9.20 - fix LOOKUP permission reporting on execute-bit-only directories - fix writing of files opened for writing with intervening chmod -w - fix reading of files opened for reading with intervening chmod -r Version 0.9.19 - fix chown operation on symbolic links - fix auxiliary group support Version 0.9.18 - add support for writing a pid file with the -i option - fix atomic_attr() to respect uid/gid squashing - add -T option for doing test parse of the exports file Version 0.9.17 - add support for 64 bit inode numbers - the returned "fileid" is now equal to the file's real inode number - fix ACCESS and read_executable to stop adding permissions when user or group matches - report unreadable executables as unreadable unless -r is used - support for using larger read and write sizes: up to 32K for UDP and 512K for TCP - add support for "anonuid" and "anongid" export options - add Windows support - improve error reporting for WRITE and COMMIT requests - improve file descriptor cache to not keep files open forever Version 0.9.16 - add support for "insecure" and "secure" export options - do not abort daemon on RPC or XDR failures Version 0.9.15 - only allow mount requests from source ports below 1024 Version 0.9.14 - accept SET_TO_SERVER_TIME in object creation calls - update maintainer email address Version 0.9.13 - add support for CREATE EXCLUSIVE procedure call - fix some minor compiler warnings Version 0.9.12 - add option for binding to a specified interface - lots of compile fixes for Solaris/AIX/Irix/Mac OS X - make redirection of operating system calls possible - fix READDIR error reporting - fix handling of . and .. lookups for Irix clients Version 0.9.11 - handle case where a tagged file exists but the master file doesn't - make clustering work in non-readable directories - make filehandle resolution work on non-readable directories - fix file creation by Solaris NFS clients Version 0.9.10 - fix building with gcc 2.95.x or 2.96 - make ALWAYS cluster tag take effect for file creations - fix possible use-after-free bug in fh.c:fh_rec Version 0.9.9 - add support for mount passwords, for use with secure links - make exports parser accept dashes in hostnames and leading whitespace - fix debug mode to use line buffering, useful for redirections - make exporting of (automounted) removable media possible Version 0.9.8 - fix cache LRU algorithm, could lead to unreliable operations once the filehandle cache filled up Version 0.9.7 - make renames across directories not cause stale filehandles - allow clients to read files they only have execute permission for - lift restrictions on attribute setting - fix bug in special-casing of root directory filehandles - add file$$$$ tag to clustering extensions Version 0.9.6 - run the source through indent to improve style consistency - fix bug in READDIR that resulted in truncated replies - add options to specify which ports and protocols to use Version 0.9.5 - code cleanups, remove now impossible cases (stale filehandles) - fix bug in READDIR that could return EOF one entry too early Version 0.9.4 - support the DUMP and EXPORT mount protocol procedures - use a simple counter instead of the system time for cache LRU - document tagged files in a seperate manpage, tags(7) - introduce a new ALWAYS tag for forced redirection Version 0.9.3 - fix mount handler not properly initializing return status - send messages to syslog for some mount problems - make it possible to export and mount symlinks to directories - fix cluster extensions breakage from 0.9.1 code merge - prevent filehandle cache from storing redundant information Version 0.9.2 - clean up lots of duplicate code in nfs.c - move configuration parser and cluster extensions into subdirectories - use real write verifier in WRITE and COMMIT Version 0.9.1 - add -d option to prevent forking into background (for debugging) - merge in lots of cleaner code from the experimental branch - merge nfsd and mountd into one program - better /etc/exports parser using lex and yacc Version 0.9.0 - check for clients attempting to use invalid pathnames - include cluster extensions (optional at compile and run time) Version 0.8.8 - fix ACCESS compatibility problem affecting HP-UX clients Version 0.8.7 - fixed chmod handling to make us pass the Connectathon 2003 NFS testsuite's "basic" and "general" tests - improve filehandle integrity checking Version 0.8.6 - use inode generation numbers only in SETATTR and fd cache because it is a huge performance hit everywhere else - use 32 bit device and inode numbers to save space in filehandles - have nfsd bind to port number 2049 (nfs) by default Version 0.8.5 - undo refusal to use "." and ".." since it confuses NetBSD clients - include inode generation number in filehandles whenever possible Version 0.8.4 - handle export of the root directory correctly - return XDEV error in RENAME and LINK if export options for given objects do not match (needed for squash options differences) - prevent the use of "." and ".." as names - use largefile API to enable access to files greater than 2 GB - check filehandles for integrity before using them - we no longer need GNU make Version 0.8.3 - use shorter filehandles whenever possible - use stat cache in unfs3_readdir() - switch filehandle cache to use static allocation of entries - make unfs3_readdir() account for XDR overhead correctly Version 0.8.2 - simplify and speed up low-level filehandle routines - fix a serious bug in READDIR, cookie == 0 was handled incorrectly - make it build and run on NetBSD 1.6.1/i386 Version 0.8.1 - use svc_getcaller instead of our own hack (well, duh) - don't attempt to service v1 mount calls, only v1 umount - check incoming object names for validity Version 0.8 - support for export controls via /etc/exports - introduce caching of stat() results to improve performance - explicitly check for gcc in the configure script - make user/group id squashing be based on export options - remove the now obsolete -r and -a nfsd options Version 0.7 - attempt at race protection/detection code for many NFS procedures - add comments to all error code paths Version 0.6.1 - document possible races with local fs activity on server - minor fix in LOOKUP error handling Version 0.6 - initial public release