*** Don't forget to increment the version number in nfs.cl for each commit
*** [and leave this message at the top of the file]

2003-11-06  Ahmon Dancy  <dancy@dancy>

	* Updated readme.txt to discuss proper use of *nfs-fw-uids*.
	
2003-07-03  Ahmon Dancy  <dancy@dancy>

	* Updated readme.txt  Updated nfs.cfg.sample.

2003-07-03    <dancy@CANDY2K>

	* mountd and nfsd can now use an existing portmapper instead of
	the built-in one.  This will help for people who have Microsoft's
	SFU installed.
	
2003-07-02    <Ahmon Dancy@GOBY>

	* nfs.cl: Added *nfs-set-mode-bits* variable and corresponding
	code for allow the administrator to set extra mode bits before
	returning them to the client.
	
2003-06-06    <dancy@CANDY2K>

	
	* nfs.cl: Bumped version to 1.1.4

	Updated nfs-okay-to-write so that it checks *nfs-rw-uids* for
	other user ids that are granted write access.
	
	* nfs.cfg.sample:  New parameter *nfs-rw-uids*.

	* readme.txt: Added documentation about *nfs-rw-uids*.

	* util.cl: Fixed stupid signed/unsigned bug in the ULARGE_INTEGER
	foreign struct definition.  It was screwing up the results of the
	diskfree function.  Also added :foreign-static-gc allocation type
	to ff:allocate-fobject calls.

	* loadem.cl: Modified function 'main' for convenience during
	debugging.  

	* notes.txt: Clarifications

2003-05-10    <dancy@DANCYSOFT>

	* mountd.cl: mountd-export: Return no group information for
	exported filesystems.  This means that the export is for
	"everyone".  This enhances interoperability with more picky
	clients.

2003-03-19    <dancy@DANCYSOFT>

	* nfs.cl: Bumped version to 1.1.3.

	Added additional mappings to map-errno-to-nfs-error-code.

	Added ~% to format string in get-open-file.

	Added a with-nfs-err-handler macro to use as a generic error
	handler around general operations.  Right now, it is only used for
	nfsd-read.

	Changed nfsd-read to use new with-nfs-err-handler.

	* Makefile:  Updated to use cygwin zip.
	
2003-03-13  Ahmon Dancy  <dancy@dancy>

	* util.cl: Fixed up the remaining foreign calls for case mode
	issues.

	* nfs.cl: Bumped version to 1.1.2.
	
*******************************************************************************
1.1.1 public release
*******************************************************************************

2003-01-22    <layer@OOB2>
1.1.1

	* Makefile: break on warnings during compile
	* loadem.cl: declare parse-addr :fbound
	* nfs.cl: update for 6.2 osi patch -- NOTE: compilation now
	  requires a fully patched ACL 6.2
	* readme.txt: update

2003-01-22    <dancy@DANCYSOFT>

	* loadem.cl: Use the new :start keyword argument to
	ntservice:create-service.  
	
2003-01-20    <dancy@CANDY2K>
1.1.0

	* ipaddr.cl/access.cl:  New files for use w/ new access control stuff.

	* access-control.txt:  New documentation.

	* loadem.cl: Added ipaddr.cl and access.cl to list of source files.
	Updates read-nfs-cfg to handle the new *hosts-allow* and
	*hosts-deny* parameters.  Added command line switches for added
	and removing the nfs service.  Added better error handling to the
	service add/remove stuff.

	* mountd.cl:  Do access checking on mount requests.

	* nfs.cfg.sample:  Added new *hosts-allow* and *hosts-deny*
	parameters.  Both default to 'nil' which allows open access.

	* nfs.cl:  Set version number to 1.1.0 since some features were
	added.  Removed a big chunk of useless comments.  Added access
	checking.  

	* readme.txt: Made a new section for 'Execution' which explains
	how to install the NFS server as a service.  Added mention of
	*hosts-allow* and *hosts-deny* (the docs for these are in
	access-control.txt).

	* sunrpc.cl: Cosmetic changes.
	
*******************************************************************************
1.0.36 public release
*******************************************************************************

2002-09-23  Kevin Layer  <layer@crikey>

	* readme.txt: improve instructions

2002-09-20    <layer@HOBART>

	* (NEW) binary-license.txt
	* (REMOVED) makezip
	* Makefile: add `dist' rule
	* loadem.cl: let Makefile copy nfs.cfg
	* nfs.cfg.sample: add d:\ mapping

2002-09-20    <dancy@CANDY2K>
1.0.36

	* fhandle.cl:  Added func remove-fhandle-by-pathname to remove
	file handles for deleted files.

	* nfs.cl:  Reformatted code in a few places and replaced some if's
	with if*'s.

	Added func remove-statcache to uncached information that becomes
	invalid during a remove or rename.  This fixes a bug that existed
	in the rename operation.

2002-09-19    <dancy@CANDY2K>
1.0.35
	
	* mountd.cl: 
	*  Added debugging control variable *mountd-debug* for mountd
	operations.  And wrapped any debugging output w/ a test of this
	variable.  
	*  mountd now keeps track of mounts that are in use.  Added a
	function (showmounts) which displays the list.  The list isn't
	used for anything other than this.

	* nfs.cl:
	*  Made some output debugging-mode only.
	*  nfs-setattr now checks the return status of (truncate-file).

	* portmap.cl:
	*  Added *portmap-debug* variable and wrapped some debugging
	output w/ a test of this variable.

	* sunrpc.cl:
	*  Added *debugrpc* variable and wrapped some debugging output w/
	a test of this variable.

	* util.cl:
	*  Fixed ascii/unicode string problem in createfile.  This was
	preventing file truncation from working properly.
	
2002-07-24    <layer@HOBART>
1.0.34

	* Makefile: make 6.2 the default
	* sunrpc.cl: *gather* -> nil; add force-output's in rpc-send

*******************************************************************************
1.0.33 public release
*******************************************************************************

2002-02-27    <layer@HOBART>
1.0.33

	* nfs.ico: minorly updated
	* loadem.cl: make icon changes dependent 6.2.pre-beta.13

2002-02-12  Kevin Layer  <layer@crikey>
1.0.32 (because this is the 32nd changelog entry)

	* (NEW) Makefile
	* nfs.cl: add version number
	* fixes.cl: require delete-directory patch for 5.0.1 and 6.0.
	* (NEW, from jkf) nfs.ico
	* loadem.cl: use new icon file in ACL 6.2; set program title, too

2001-09-06    <dancy@DANCY2K>

	* nfs.cl (nfsd-setattr): Changes and new functions to make sure
	file attributes are properly handled.

2001-09-05    <dancy@DANCY2K>

	* nfs.cl (update-stat-times-and-size): Added a keyword arg 'trunc'
	that can be used to set the new file size to a specific value.
	(nfsd-setattr): Make use of the new keyword are to
	update-stat-times-and-size when truncating a file.  (parent-dir):
	new function that computes the parent pathname of a pathname.
	Note that the parent of c:\ is c:\.  (nfsd-lookup): Make use of
	new parent-dir function when the 'filename' is "..".  This ensures
	that filehandles remain consistent.

2001-09-04    <dancy@DANCY2K>

	* mountd.cl (mountd-message-handler): Added checks to make sure
	the version of the mount protocol being requested is the one we
	support (version 1).  If not, let the client know so that it'll
	(hopefully) downgrade versions.  I copied this code from nfs.cl
	where I made the same change a short while ago.

	Also changed the big 'cond' to a 'case' statement.

2001-08-16    <dancy@DANCY2K>

	* nfs.cl (nfsd-rename):  Close the from file before trying to
	rename it.    Also, added a general error handler around
	rename-file.  Rename errors will return NFSERR_IO.

	* portmap.cl:  Don't print information for the callit function.  

2001-08-16    <layer@HOBART>

	* nfs.cl: fix syntax error

2001-08-16  Kevin Layer  <layer@crikey>

	* pretty things up

2001-08-15    <layer@HOBART>

	* nfs.html: update doc

2001-08-15  Ahmon Dancy  <dancy@dancy>

	* added preamble to all source files

	* NOTES.txt: fleshed out.

	* makezip:  added id string.  Also, use -f flag for rm.

	* nfs.cl:  Added error catcher around make-directory call.

	* nfs.html: Added link to source code zip.

2001-08-14    <dancy@DANCY2K>

	* nfs.cl: Added fixes to allow *nfs-dircachereaptime* to be 0 (for
	debugging and experimentation.  

	Only call set-file-time on files that were open for writing.

2001-08-13  Ahmon Dancy  <dancy@dancy>

	* NOTES.txt: added file to store implementation notes and bugs.

	* makezip:  Script to collect relevant files for a source
	distribution.

	* nfs.cfg.sample: New sample config file.

	* nfs.html:  opensource web page.

	* rfc*: relevant RFCs

	* readme.txt:  Formatting and additional notes.
	
2001-08-13    <dancy@DANCY2K>

	* sunrpc.cl (read-record): Added handler-case wrapper.

2001-08-13  Ahmon Dancy  <dancy@dancy>

	*  loadem.cl: parameterized the create-service function..  Added
	delete-service function.

	* readme.txt:  Added building instructions and additional notes.

2001-08-11    <Ahmon Dancy@GOBY>

	* nfs.cl: Added comment to *statcachereaptime* to indicate that it
	should be larger than *openfilereaptime*.  

	Added code to return an IO error for the symlink call.

	Made some stat slot accessor macro.  

	Removed some unused functions.

	Modernized the fsinfo handler.

	Updated the open file reaper so that it resets the file
	modification time on the file after closing it (since closing may
	update the modification time to a value we don't want).

	* util.cl:

	Added set-file-time function to adjust the modification/access
	time of a file. 

	* util.cl:  Added truncate-file function which uses foreign functions.  
	* removed extra.c, extra.cl, and Makefile.  No more C code.

2001-08-10    <layer@HOBART>

	* portmap.cl (portmap-callit): add declare to get rid of compiler
	warning
	* loadem.cl: load ntservice from ntservice/

2001-08-10  Kevin Layer  <layer@crikey>

	* nfs.cl: lower dircachereaptime; work around strange problem with
	spot's nfs (copying from spot to hobart); some debugging info

2001-08-10    <dancy@DANCY2K>

	* sunrpc.cl:  Added new function rpc-send-prog-mismatch to send
	PROG_MISMATCH RPC responses.

	* loadem.cl:  Many changes.  Mostly to support the use of the nfs
	server as an NT service.   Requires "service.fasl".

	The new way to build the program:
	:cl loadem
	(loadem)
	(main)  ;; changed from (startem)

	Moved config file reading into this file (out of nfs.cl).

	Added function (create-service) which will add the nfs server to
	the list of services in Windows.  Make sure you call (buildit) to
	build a standalone executable.   

	* mountd.cl:  Changed the formatting of some debugging output.  

	The default list of exports is now nil.

	* nfs.cl:  Now check for incorrect NFS version request and send
	back a PROG_MISMATCH RPC reply.

	* portmap.cl:  Don't use the program version when matching.  This
	is gross.. but it makes things work better with amd (but I'm
	trying to convince the maintainer of am-utils that there is a bug
	in amd).
	

2001-08-03    <dancy@DANCY2K>

	* loadem.cl: Added a (buildit) function to build an nfs
	executable.  Added a (main) function.

	* nfs.cl:  Minor change that turned out to be unnecessary
	regarding the initialization of *nfsdxdr*.

2001-07-11    <dancy@SUCK>

	* nfs.cl (nfsd-statfs):  Added check for stale file handle.

2001-07-04    <dancy@DANCYSOFT>

	* fhandle.cl: Added function swap-fhandles which is used by the
	rename code.

	* nfs.cl: Added #+(version> 6 1) near calls to
	(set-socket-options) so that this code will continue to work in a
	6.0 Allegro CL.

	Removed a bunch of obsolete diropargs stuff.

	Try to catch bad pathnames earlier by adding check to
	add-filename-to-dirname.    Also changed a bunch of code that
	calls add-filename-to-dirname to check its result.

	Fixed nfsd-rename code.

2001-07-03    <dancy@SUCK>

	* nfs.cl: Moved some defparameters closer to the top of the file.
	Set the directory cache reap time parameter to 30 seconds.  This
	should help w/ 'rm -r' behavior.  Added a new parameter
	*socketbuffersize* which is used when creating the udp and tcp
	communications sockets.  It looks like the default receive buffer
	size for UDP packets was pretty small (somewhere around 8KB) so
	writes from high-performance operating systems such as Solaris
	would cause a lot of packets to be dropped... resulting in very
	slow performance.  

	Undo the addition of '.' and '..' to directories.  It doesn't
	appear to be necessary and it may have been causing problems.

	(add-direntries): Added error handler to handle weird directories
	like "c:\System Volume Information" on Windows 2000.  Also
	added/changed some debugging output.

	* sunrpc.cl: Added an error handler around
	mp:wait-for-input-available.  Apparently errors will occur here if
	a socket in the waitlist gets a connection refused message.  This
	new code will handle that situation.   

	Added (ignore-errors) around write-sequence and send-to calls.  If
	they fail, the client will try.

2001-07-02    <dancy@SUCK>

	* nfs.cl: Lowered *statcachereaptime* from 50000 to 5.  The 50000
	was for testing.   

	* portmap.cl:  Changed the main 'cond' into a 'case'.  Implemented
	portmpap-null.  Added portmap-callit.  It doesn't do
	anything... just prints out the parameters.   As far as I can
	tell, there is no reason to implement this right now.

	* sunrpc.cl:  Added a parameter *gather* that chooses between two
	behaviors when it comes to TCP traffic.  If *gather* is t, the
	packet size plus the packet data will be combined into a single
	buffer and sent all at once.  This requires copying the the packet
	data into a new buffer which may prove to be slow.  A potential
	advantage of this is that network overhead will be reduced since
	one packet will be sent instead of one small packet (4 bytes)
	followed by a larger one.  One definite advantage of this is that
	it allows packet analyzers (like tcpdump) to read the packet
	properly. 

	* xdr.cl:  Important bug fix in xdr-opaque-variable-from-stream.
	Opaque data is supposed to be blocked to a 4-byte boundary.  I
	wasn't doing that.  Non-linux clients got very upset by this.

2001-06-22    <dancy@SUCK>

	* nfs.cl: Use excl::filesys-delete-file instead of delete-file so
	that I can get errno information.

2001-06-20    <dancy@SUCK>

	* fhandle.cl: Removed the ensure-* functions.  Removed any unused
	functions.  Added some type declarations to possibly speed some
	operations up.  Changed one function to a macro.

	* mountd.cl: Updated the code to use with-successful-reply.
	Removed some calls to obsolete functions in fhandle.cl.

	* mpsocketfix.cl: Added #-(version>= 6 1) conditionals since this
	fix is in 6.1.

	* nfs.cl: Added some type declarations.  Added a check or two to
	make sure certain functions were being called w/ pathnames (not
	strings).  Removed some calls to obsolete functions in fhandle.cl.
	Removed some unused functions.

	* sunrpc.cl: Added a #-(version>= 6 1) conditional around the code
	that caused the EWOULDBLOCK in 6.0.

	* xdr.cl: Added a gang of type declarations.  Fixed the syntax
	error I had in defstruct that was making my attempts at type
	declarations useless.

	
2001-06-14    <dancy@SUCK>

	* nfs.cl: Remove extra debugging output.  Added extra error
	checking to nfsd-create.

	* loadem.cl: Added 'fixes' to the load/compile list.

	* nfs.cl: Zillions of changes for optimization.  Added in a
	blocksize hack to improve 'rm -r' behavior w/ linux clients.

	* xdr.cl: removed a debugging message..  did some minor
	optimizations.

2001-06-07    <dancy@SUCK>


	* nfs.cl: Changed a zillion calls from ff:fslot-value to
	ff:fslot-value-typed.  Added a function to update file mtime,
	atime, and filesize in the statcache (used for nfsd-write).
	Cleaned up nfsd-remove.  Cleaned up nfsd-write.  

	* xdr.cl:  Changed the way xdr-opaque-fixed/variable return things
	(during extraction).
	
	* mountd.cl (mountd-make-fhstatus): Specify the size of the xdr to
	speed things up.

	* loadem.cl (startem): Run (nfsd) as a separate process now.

	* fhandle.cl (opaque-fhandle-to-pathname): New function.  
	* Many many changes that hopefully will improve performance

2001-05-23    <dancy@SUCK>

	* nfs.cl:  nfsd-getattr:  Added check for stale file handle.
	Commented out some debugging lines.

	nfsd-read: Changed call to xdr-opaque-variable to be more
	efficient (no subseq).

	* xdr.cl: Changed xdr-opaque-variable to allow for efficient
	operation.   Added a function xdr-opaque-variable-from-stream
	which isn't used yet.

2001-05-23    <layer@HOBART>

	* nfs.cl (nfsd-write): handle case of fhandle-vec-to-pathname
	returning nil

2001-05-23    <dancy@SUCK>

	* nfs.cl:  Changed a debugging message

	* sunrpc.cl: Update send-successful-reply so that it doesn't call
	rpc-send-msg (which saves an xdr-xdr call).

	* xdr.cl: Added a 'pos' slot to the xdr structure to use to avoid
	subseq calls in xdr-advance.  Updated other code to use this new
	slot.  Probably introduced a buncha bugs.

2001-05-23    <layer@HOBART>

	* extra.cl: make warning go away
	* nfs.cl: fix nfsd-remove to handle permission denied

2001-05-23  Kevin Layer  <layer@crikey>

	* many files, CRLF conversion

2001-05-22    <dancy@DANCYSOFT>

	* fhandle.cl:  Make sure pathnames are always canonicalized before
	hashing.  Also, added a function for dumping the file handle hash
	table.

	* mountd.cl: added (in-package :user) and cvs Id

	* mpsocketfix.cl: added (in-package :user) and cvs Id

	* nfs.cl added (in-package :user) and cvs Id
	Added a function to make sure directory names end w/ a backslash.

	Increased debugging info for nfs-readdir.

	Removed readdir caching code.

	Increased debugging info for add-direntries and also attempted to
	add a workaround for what I believe is a bug in the Linux NFS v2
	client implementation w/ regard to readdir.

	* portmap.cl:  added (in-package :user) and cvs Id

	* sunrpc.cl: added (in-package :user) and cvs Id

	* utils.cl: added (in-package :user) and cvs Id
	added :strings-convert nil  to calls to def-foreign-call to remove
	warnings. 

	* xdr.cl: added (in-package :user) and cvs Id

	* nfs.cl: Send rpc PROC_UNAVAIL for procedures that we don't
	handle.  This will prevent nfs clients from wedging.

	* sunrpc.cl: Added rpc-send-proc-unavail function to send
	PROC_UNAVAIL responses.

	* Added .cvsignore

	* added nfs.txt which is the NFS V2 RFC.

	* Updated the readme to show how to edit the export list

	* Updated extra.c to only defined INVALID_SET_FILE_POINTER if it
	isn't already defined.

	* Added Makefile and ChangeLog
	

