2007-11-13  Thomas Schwinge  <tschwinge@gnu.org>

	* ops.c (complete_setattr): Adapt to ``struct stat'' changes.
	* xdr.c (encode_fattr): Likewise.

2006-03-15  Thomas Schwinge  <tschwinge@gnu.org>

	* loop.c (server_loop): Fix invalid lvalues.

2002-09-29  Marcus Brinkmann  <marcus@gnu.org>

	* loop.c (server_loop): Use memset instead bzero.
	(server_loop): Add parenthesis for post-decrement (even
	though it is only used as an lvalue here).  Increment P after
	using it in the macro, not within.
	* ops.c (complete_setattr): Likewise.
	(op_setattr, op_read, op_write, op_create, op_symlink, op_mkdir,
	op_readdir, op_getport): Likewise.
	* xdr.c (encode_fattr): Likewise.
	(encode_data): Likewise.  Also use memcpy instead bcopy.
	(encode_statfs): Likewise.
	(decode_name): Likewise.  Also use memcpy instead bcopy.
	(encode_fhandle): Use memcpy instead bcopy.
	* cache.c (process_cred): Add parenthesis for post-decrement (even
	though it is only used as an lvalue here).  Increment P after
	using it in the macro, not within.
	(idspec_lookup): Use memcpy, not bcopy.
	(lookup_cache_handle): Likewise.
	(create_cached_handle): Likewise.
	(check_cached_replies): Likewise.

2002-05-29  Roland McGrath  <roland@frob.com>

	* nfsd.h (struct proctable): [0] -> [], for newfangled GCC.

2002-05-08  Roland McGrath  <roland@frob.com>

	* main.c (main): Cast int to intptr_t before any_t.

2002-05-07  Roland McGrath  <roland@frob.com>

	* loop.c (server_loop): size_t -> socklen_t
	* cache.c (fh_hash): int -> intptr_t

2002-05-03  Roland McGrath  <roland@frob.com>

	* main.c: Include <error.h>.
	* fsys.c: Likewise.

2002-03-23  James A. Morrison  <ja2morri@uwaterloo.ca>

	* fsys.c (init_filesystems): Use error, not fprintf.  Use
	MACH_PORT_NULL explicitly.
	(write_filesystems): Use error, not fprintf.  Use ERR, not errno.
	* main.c (main): Use error, not perror and exit.

2001-02-25  Roland McGrath  <roland@frob.com>

	* ops.c: Include <string.h> for decls of built-ins.

2000-12-02  Marcus Brinkmann  <marcus@gnu.org>

	* ops.c (op_readlink): Before returning, check if the buffer
	pointed to by transp is ours. If not, munmap it.
	(op_read): Likewise for bp.
	(op_readdir): Don't alloca a buffer here. Instead initialize
	BUF and BUFSIZE to 0 and let the server (eh, MiG) do it.
	munmap BUF before returning.

2000-12-01  Marcus Brinkmann  <marcus@gnu.org>

	* cache.c (scan_creds): Move I inside for-statement.
	Replace inner for-loop with a while-loop. New variable
	NEXT_I set to I->NEXT, because we might free I.
	Set I to NEXT_I at end of while block.
	Move update of leastidlastuse inside if block, because
	otherwise we will constantly prevent ourself from scanning.
	(scan_fhs): Very much the same.
	(scan_replies): Likewise. Also free CR.

	(check_cached_reply): Make HASH value absolute (as XID can be
	negative, and thus the modulus).
	Initialize REFERENCES to 1.

2000-03-17  Thomas Bushnell, BSG  <tb@mit.edu>

	* cache.c (create_cached_handle): Add comment.

1999-07-10  Roland McGrath  <roland@baalperazim.frob.com>

	* cache.c: Add #include <sys/mman.h> for munmap decl.

1999-07-03  Thomas Bushnell, BSG  <tb@mit.edu>

	* cache.c (create_cached_handle): Use munmap instead of
	vm_deallocate.

1998-12-20  Roland McGrath  <roland@baalperazim.frob.com>

	* loop.c (server_loop): Cosmetic.

	* nfsd.h: Include <rpc/types.h>.
	(bool_t, enum_t): Remove typedefs.

1998-10-20  Roland McGrath  <roland@baalperazim.frob.com>

	* cache.c (scan_creds): Add braces to silence gcc warning.
	(scan_fhs): Likewise.
	(scan_replies): Likewise.

Thu Sep 26 14:09:20 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* nfsd.h (enum_t): New type.

	* cache.c: Don't inclide <rpc/auth_unix.h>.

Thu Sep 12 16:52:13 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.
	(nfsd): Delete special depedency.

Tue Sep  3 14:15:50 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* loop.c: Include "../nfs/mount.h" instead of
	"../nfs/rpcsvc/mount.h".
	* ops.c: Likewise.
	* nfsd.h: Include "../nfs/nfs-spec.h" instead of
	"../nfs/rpcsvc/nfs_prot.h".

Wed Aug 14 13:46:45 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* ops.c (nfstable): Renamed to nfs2table.
	* nfsd.h (nfstable): Likewise.
	* loop.c (server_loop): Reference nfs2table instead of nfstable.

	* nfsd.h, cache.c, ops.c, xdr.c: Use new names for things that
 	have just been changed in ../nfs/rpcsvc/nfs_prot.h.
	* xdr.c (hurd_mode_to_nfs_type): New parm VERSION; all callers
	changed.
	(encode_fattr): New parm VERSION; all callers changed.
	* nfsd.h (encode_fattr): New parm VERSION.

Tue Aug 13 14:38:36 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* ops.c (op_create): Sun's NFS client implementation actually
 	bombs if do do what RFC 1094 says to do in section 2.2.10.  So
 	don't pass O_EXCL, but do pass O_TRUNC.  That's what NetBSD does.

	* ops.c (op_setattr): Fill in an fattr in reply.

Mon Aug 12 11:15:15 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (installationdir): Include quotes in variable expansion
	here.
	* main.c: Build index_file better.

	* xdr.c (nfs_error_trans): New errors for IO and XDEV don't have
	prefixed E.

	* main.c (main): Cast second cthread_fork args.

	* nfsd.h (nfs_error_trans): Add new arg to prototype.

Thu Aug  8 19:20:31 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* xdr.c (nfs_error_trans): New parm `version'.  All callers
	changed.  If we are version 3, then return one of the new v3 error
	codes if appropriate.

Wed Aug  7 11:39:31 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* main.c (index_file): New var.
	(index_file_name): Initialize from index_file.
	(main): Don't initialize index_file_name here.

	* ops.c (op_null, op_getattr, op_setattr, op_lookup, op_readlink,
	count_read_buffersize, op_read, op_write, op_create, op_remove,
	op_rename, op_link, op_symlink, op_mkdir, op_rmdir,
	count_readdir_buffersize, op_statfs, op_mnt, op_getport): Add new
	parm `version'.
	* loop.c (server_loop): Supply VERSION to PROC->alloc_reply and
	PROC->func.
	* nfsd.h (struct procedure): Add new parm to `func' and
	`alloc_reply' members to specify protocol version.

	* ops.c (mounttable): Use op_null for MOUNTPROC_UMNT and
	MOUNTPROC_UMNTALL.

	* ops.c (op_create): Ignore most of setattr structure given.
	(op_mkdir): Likewise.
	(complete_setattr): Clean up and be less active when possible.

	* ops.c (op_readdir): Correctly end list of directory entries.

	* nfsd.h (authserver): New variable.
n	* main.c: Include <hurd.h>.
 	(main): Initialize AUTHSERVER.
	* cache.c: Include <hurd/io.h> and <hurd/auth.h>.
 	(create_cached_handle): Reauthenticate port before calling
	file_getfh.

	* fsys.c (init_filesystems): When setting NFSYS, it needs to be at
	least as big as INDEX + 1, and install the control port into the
	correct slot.
	(init_filesystems): When allocating or reallocating FSYSTABLE,
	make sure the new entries are zeroed.
	(enter_filesystem): Likewise.

Tue Aug  6 13:18:40 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* cache.c (create_cached_handle): Always call fsys_getfile when
	creating a new cached handle instead of relying upon the passed in
	port.

	* xdr.c (hurd_mode_to_nfs_mode): Specify octal number in octal
	notation.
	(encode_fattr): Bother filling in all the fields.

	* loop.c (server_loop): Don't attempt to call cache_handle_rele if
	C is null.

	* cache.c (fh_hash): Mod-ulize HASH before returning it.

	* cache.c (process_cred): Arrange to skip VERF field for
	non-AUTH_UNIX creds too.

	* loop.c (server_loop): Don't call skip_cred for the VERF here;
	process_cred does it for us.
	* xdr.c (skip_cred): Delete function.
	* nfsd.h (skip_cred): Delete decl.

	* cache.c (process_cred): After processing gid list, set P after
	it. Start gid processing loop at 0.

	* main.c (main): Detach one thread for pmap_udp_socket,
	and NTHREADS threads for main_udp_socket.
	* loop.c (server_loop): New parm `fd'; don't do select.
	Ignore errors that we get from recvfrom instead of processing the
	last message again.

	* nfsd.h (server_loop): New parm.

	* main.c (main): Stringify LOCALSTATEDIR; but for now just pound
	in /var.  Call asprintf correctly.
