2001-01-09  Gordon Matzigkeit  <gord@fig.org>

	* lento/inconfig [build]: Use a different default port when the
	../devel file is present.

	* lento/tools/use-lib: Elide the [build ...] text so that scripts
	can have build-directory-only behaviour.

	* presto/Makefile (CPPFLAGS): Define DEVEL=1 when the ../devel
	file is present.

2001-01-01  Gordon Matzigkeit  <gord@fig.org>

	* MANIFEST: Add tools/InterMezzo.pm.in.
	* Makefile (config.mk): Use tools/InterMezzo.pm.in to find Perl
	dependencies.
	* tools/InterMezzo.pm.in: New Bundle::InterMezzo file for easier
	installation of InterMezzo dependencies.

2000-12-23  Gordon Matzigkeit  <gord@fig.org>

	* utils/mkizofs (VOL): Don't use a default volume name: the user
	needs to specify one explicitly.

2000-12-22  Gordon Matzigkeit  <gord@fig.org>

	* utils/Makefile (initdir): Use /etc/rc.d/init.d if it exists.

2000-12-22  Gordon Matzigkeit  <gord@fig.org>

	* tools/perl-rpms: New script to build RPM packages for the Perl
	modules we depend on.
	tools/makerpm.pl: New support script.

2000-12-22  Gordon Matzigkeit  <gord@fig.org>

	* tools/intermezzo.spec.in: Fix typo.  From Brian J. Murrell.

2000-12-21  Gordon Matzigkeit  <gord@fig.org>

	* lento/Makefile.PL (MY::postamble): Explicitly inline the arch
	library directory, since perl 5.6 doesn't want to do so itself.
	From Brian J Murrell.

2000-12-20  Gordon Matzigkeit  <gord@fig.org>

	* utils/Makefile (install-exec): Use use-lib to prepare volroot
	for installation.
	(clean, distclean): Add rules.

	* lento/use-lib: Allow specification of an output filename.

2000-12-19  Gordon Matzigkeit  <gord@fig.org>

	* utils/Makefile: Look for /etc/init.d in $(DESTDIR).  Reported by
	Brian J Murrell.

	* tools/intermezzo.spec.in (Release): Append mvd.  From Brian
	J Murrell.
	(%install): Install the test harness.  From Brian J Murrell.

2000-12-07  Gordon Matzigkeit  <gord@fig.org>

	* tools/intermezzo.spec.in (%setup): Explicitly set our build
	directory from the tarball name.

	* Makefile (tools/$(PACKAGE).spec): Use the same formula for
	determining VERSION as dist-rpm does.

2000-12-06  Gordon Matzigkeit  <gord@fig.org>

	* Makefile (dist-cvs): New rule to CVS tag the release.

2000-12-05  Gordon Matzigkeit  <gord@fig.org>

	* lento/Lento/ReqDispatcher.pm: Remove dependency on
	tests/HandleClass.pm.
	* lento/Makefile.PL (MY::postamble): Likewise.

2000-11-29  Gordon Matzigkeit  <gord@fig.org>

	* Makefile (tools/$(PACKAGE).spec): Build a spec file with no
	dependence on external macros.  Reported by Brian Murrell.
	* tools/intermezzo.spec.in: Moved from tools/intermezzo.spec.
	* MANIFEST: Likewise.

2000-11-28  Gordon Matzigkeit  <gord@fig.org>

	* Makefile (config.mk): Make sure all our subdirectories are
	included.

	* utils/Makefile (install-exec): Properly install scripts.

2000-11-27  Gordon Matzigkeit  <gord@fig.org>

	* tools/intermezzo.spec: New file.
	* tools/symlink-sources.spec: Likewise.

	* utils/volroot: Support the `status' action.
	* utils/presto: Use it when we don't have /proc.

	* MANIFEST: Add `utils/'.

	* utils/Makefile, utils/MANIFEST: New files.
	* presto/MANIFEST: Update.
	* presto/bin: Remove directory.
	* presto/bin/mkizofs: Moved to utils/mkizofs.
	* presto/bin/prestoinit: Moved to utils/presto.
	* presto/bin/volroot.pl: Moved to utils/volroot.
	
2000-11-24  Gordon Matzigkeit  <gord@fig.org>

	* presto/bin/volroot.pl: Accomodate systems that don't have /proc.

	* presto/Makefile: Conditionalize so that `make config' is done
	for all the rules that need it, and the Makefile is reread
	afterwards.

2000-11-23  Gordon Matzigkeit  <gord@fig.org>

	* presto/cache.c (presto_sprint_mounts): Fix a bounds check to
	accomodate the name of the presto device.

	* MANIFEST: Drop our own POE, as we now are compatible with the
	upstream version.

	* Makefile (config.mk): Test for POE >= 0.1110.
	* lento/Makefile.PL: Likewise.

	* lento/incontrol: Don't use ../POE.
	* lento/intercon: Likewise.
	* lento/lento.pl: Likewise.
	* lento/tests/closejournal.pl: Likewise.
	* lento/tests/kml-print.pl: Likewise.

2000-11-22  Gordon Matzigkeit  <gord@fig.org>

	* lento/lento.pl: Fix typos.

	* lento/Lento/Vldb.pm (new): Add the volume only if we're its
	server or a replicator.

2000-11-17  Gordon Matzigkeit  <gord@fig.org>

	* presto/config.in (LINUX): Add a few more possibilities for a
	default kernel source directory.

	* presto/Configure (SRC): Support the pathological case of
	configuring when only the kernel headers are installed.

2000-11-16  Gordon Matzigkeit  <gord@fig.org>

	* Makefile (config): Tweak variables for cleanly uninstalling Perl
	packages.

	* Makefile (externals): Remove config.mk before printing any
	messages, to allow for simple make retries.  Run installation
	commands as root.

	* lento/inconfig (safe_open): New routine to standardize file
	creation.

2000-11-15  Gordon Matzigkeit  <gord@fig.org>

	* lento/inconfig: Accept a bind address for the sysid file.

	* doc/Makefile: New file.
	* MANIFEST: List only `doc/' to delegate to doc/Makefile.

2000-11-14  Gordon Matzigkeit  <gord@fig.org>

	* lento/Lento/ReqDispatcher.pm: Explicitly load
	tests/HandleClass.pm, rather than messing with @INC.

	* presto/Makefile (install-modules): Clean up handling of DESTDIR
	so that exactly the right directories are created.

	* Makefile (externals): Add more verbose instructions.

	* lento/use-lib: Transfer the permissions and ownership on the
	original script to the modified one.  This corrects the old
	behaviour which silently dropped execute permission.

	* lento/inconfig: Update for new-style configuration.
	Accept `--configdir' option.

2000-11-13  Gordon Matzigkeit  <gord@fig.org>

	* tools/config_check (validate_conf_modules): Accomodate
	/etc/modules.conf.

2000-11-09  Gordon Matzigkeit  <gord@fig.org>

	* Makefile, presto/Makefile (install): Add installation rules.
	
2000-11-08  Gordon Matzigkeit  <gord@fig.org>

	* Makefile (config.mk, externals): Detect our dependencies and
	offer a way of installing the ones that aren't present.

2000-11-07  Gordon Matzigkeit  <gord@fig.org>

	* Makefile: Add `dist' and `distcheck' targets.
	* presto/Makefile: Add support for `distdir', and `.PHONY'.

	* POE/POE.pm (VERSION): Adjust to make our InterMezzo version of
	POE unique.

	* presto/Configure: Write linux/config.h and config.mk to
	temporary files in order to prevent corruption if the configure
	process is interrupted.

2000-02-08  Rob Simmonds  <simmonds@stelias.com>

        * Added fetch_on_demand flag to the voldb file.  With this set
	files are not fully fetched until they are accessed.

2000-02-04  Rob Simmonds  <simmonds@stelias.com>

	* Added client_read_only key to voldb.  With this set updates
	to the volume cannot be made on the client host. Updates made
	on the server are propagated to the clients.  

2000-01-30  Rob Simmonds  <simmonds@stelias.com>

        * Added WaitForCookie function which required changes in both
        lento and presto. This allows a session to wait for an
        asynchronous callback from presto.  This is different from
        WaitForUpcall since WaitForUpcall only works when the caller
        knows the specific sequence number of the upcall required.
        WaitForCookie makes no such assumption.  The first use of
        WaitForCookie will be to handle asynchronous permit release
        by the kernel, but some modifications will need to be made
        to the VFS layer before this can be fully implemented.

2000-01-28  Rob Simmonds  <simmonds@stelias.com>

        * Added WaitForUpcall that allows a session to wait for a 
	particular upcall to be delivered.
        * Used WaitForUpcall to allow Permit to wait for the kernel to
	   release its journal pages before lento gives up the permit.
        * Changed presto to return the upcall number that will deliver
          the latest journal pages.

2000-01-20  Rob Simmonds  <simmonds@stelias.com>

	* Fixed problem with clients failing to reintegrate after a
	disconnection.
	* Split sync function in Volume.pm into two parts, one for the
	case where the volume is synced and one for where it is not.
	* Added send_CML2 to CML.pm .  This uses the WaitForSession
	semantics and will replace send_CML when we get around to fixing 
	all the calls to send_CML (which uses the register_callback 
	semantics).
	* Added revoke permit call to init_mounttable in Vldb.pm . This has
	been done to prevent a permit persisting in the kernel on a client
	host between lento invocations.
	* Code cleaning in ReqHandler.pm and UpcallHandler.pm and removed
	"use Time::HiRes" from Connector.pm.
	* Removed two entries from the BUGS file.
	

2000-01-19  Rob Simmonds  <simmonds@stelias.com>

	* Added WaitForSession to EventSupport.pm.  This enables a session
	to request be woken when the waited for session calls WakeUpWaitList.
	* UpcallHandler.pm has been modified to use WaitForSession for
	permit upcalls.
	* ReqHandler.pm has been modified to use WaitForSession for permit
	requests.
	

2000-01-09  Rob Simmonds <simmonds@stelias.com>

	* Added functions to deal with moving a permit from one client to
	another (via the server).  This involved changing CML.pm and
	ReqHandler.pm.  
	* Fixed typo in InterMezzo-HOWTO.sgml ("volname"->"shared" 
	i.e. the name given to the volume.)
	
2000-01-04  Rob Simmonds <simmonds@stelias.com>

	* Added mknod handling so that special files are now handled
	correctly.  This involved adding code to both lento and presto. 
	* Fixed bug in ReqHandler.pm that occasionally caused empty 
	records to be sent. 
	* Fixed bug in Pinger.pm that meant that undefined values could
	be sent to "alias_set".
	
1999-12-30  Peter J. Braam  <braam@cs.cmu.edu>

	* Huge number of changes to many files:
	 - Rob and I added the syncing mechanism and brought it to 
	   some reasonable state.  This involves the new file CreatML.pm
	   as well as new methods to send the FSDB and mark volumes in
	   sync in the kernel. 

	   The upshot is that InterMezzo will now start, sync up a volume
	   by fetching everything from the server and _then_ go into
	   normal update propagation mode.  The catch is that the volume 
	   has to be quiescent. 
	 
	   In the course of this work we fixed a "mark" bug in Lento, we
	   eliminated the mount upcall.
	  

1999-12-08  root  <braam@cs.cmu.edu>

	* added method to tell kernel that volume is insync
	* fixed a reintegration bug (records numbers were off by 1)
	* downcall-test added

1999-12-06  Peter J. Braam  <braam@cs.cmu.edu>

	* lento/Lento/CML.pm (truncate_log): keep the last records,
	otherwise the record numbers get confused
	* (fill_hash): don't sort alphabetically...
	* gave reintegration the correct session level
	

1999-12-03  Peter J. Braam  <braam@cs.cmu.edu>

	* doc/intermezzo-howto.sgml: Much more stuff in it now
	* presto/super.c: added mtpt mount option.
	* lento/Lento: facist checking of the config databases
	  volumes MUST be mounted before Lento will start.

1999-12-01 00:59  braam

	* INSTALL: Typo.

1999-11-30 23:47  braam

	* .cvsignore, ChangeLog, doc/intermezzo-howto.sgml, tools/kdiff.sh:
	Minor cleanup, added the new intermezz-howto.

1999-11-29 12:36  braam

	* lento/cleanup.sh: Useful script for debugging.

1999-11-29 12:36  braam

	* ChangeLog, INSTALL, tools/itok.sh, tools/kfiles, tools/kpatch.sh,
	tools/ktoi.sh: Some tools to maintain kernel versus standalone
	versions

1999-11-29 12:29  braam

	* lento/: DumpDBs.pl, inconfig, lento, prepare.sh,
	Lento/Acceptor.pm, Lento/Bootstrap.pm, Lento/CML.pm,
	Lento/Cache.pm, Lento/Connection.pm, Lento/Connector.pm,
	Lento/Debuggable.pm, Lento/List.pm, Lento/Pinger.pm,
	Lento/Reintegrate.pm, Lento/Replicator.pm, Lento/Server.pm,
	Lento/Volume.pm, Lento/InterMezzo/ReqHandler.pm,
	Lento/InterMezzo/UpcallHandler.pm, tests/accept-test.pl,
	tests/acceptor-test.pl, tests/connect-test.pl: Numerous changes:  -
	Michael and I added Database code for persistent update journals   
	Yes: now you can shutdown lento and restart it (provided you	are
	not in the middle of action).  Mostly it works...
	
	 - The connection handling was again revisited.  The pinger is now
 	 separate from the connector.  Connections are established at
 	 level 1 and only low level sessions (var: [HEAP]->{session_level}
 	 get access to the connection.  When recovery is complete, all
 	 sessions get access. Things got considerably simpler.
	
	 - Fixed a handful of small bugs in reintegration etc.

1999-11-29  Peter J. Braam  <braam@cs.cmu.edu>

	* Many organizational changes to accomodate incorporation into 
	  the kernel
	* Persistent CML's and Replicators - thanks to Michael for his help
	* Redone the connection handling: use levels in sessions and
	  the connection to arbitrate access during recovery
	* Many reintegration bugs fixed.
	* Added tools

1999-11-29 12:21  braam

	* presto/: Configure, Makefile, cmls.c, config.mk, dcache.c, dir.c,
	inode.c, intermezzo.c, journal.c, psdev.c, super.c, sysctl.c,
	upcall.c, linux/dcache_func.h, linux/intermezzo_fs.h,
	linux/intermezzo_psdev.h, linux/intermezzo_upcall.h,
	linux/presto.h, linux/presto_psdev.h, linux/presto_upcall.h: Mostly
	cosmetic changes and filename reorganizations.
	
	This version is to go to the Linux 2.2.14 kernel...

1999-11-29 12:21  braam

	* POE/POE/Wheel/SocketFactory.pm: Fixed a small bug in bind address
	on the client end of sockets.

1999-11-24 12:49  braam

	* lento/BUGS: To test the message system, no other purpose!

1999-11-22 11:44  rminnich

	* lento/Lento/InterMezzo/ReqHandler.pm, presto/journal.c:
	ReqHandler.pm:	 added a bit more information prior to the 'die' in
	this file, so	that we know just why we're dying. It's just two
	print statements.  journal.c:	Deleted the global
	presto_no_journal, and replaced it with   macro:
	PRESTO_NO_JOURNAL(minor_device)   This now works as expected with
	the sysctl per-device no journal flag.

1999-11-10 11:32  rminnich

	* lento/Lento/Vldb.pm: Typo, used == instead of eq

1999-11-10 11:13  rminnich

	* lento/Lento/Vldb.pm, presto/psdev.c: Added a few debug prints to
	psdev, and also fixed the incorrect copyout of the length.
	
	Vldb.pm::find_by_path would fail if the volume was mounted at root.
	This is fixed. Peter can make it look nicer.

1999-11-10 09:44  rminnich

	* presto/: config.mk, linux/presto.h: corrected definition of
	PRESTO_GETMOUNT.

1999-11-10 09:10  rminnich

	* presto/psdev.c: Took out a comment that is not correct.

1999-11-10 08:11  rminnich

	* lento/Lento/: Psdev.pm, Vldb.pm: Psdev has a new method readmount
	which calls an ioctl in the device to return all mounts for that
	minor device.
	
	Vldb has a different failure case if /proc is not available.
	Instead of die() it will try to yank the mounts out of the minor
	device. Note this will fail until I check in the mods to the device
	...

1999-11-05 23:00  braam

	* presto/: Configure, Makefile, config.mk, dcache.c, super.c,
	linux/presto_psdev.h: A variety of fixes.  Things seem to work now.

1999-10-20 14:53  braam

	* TODO, lento/Lento/Bootstrap.pm, lento/Lento/CML.pm,
	lento/Lento/ClientDB.pm, lento/Lento/Journal.pm,
	lento/Lento/Replicator.pm, lento/Lento/Vldb.pm,
	lento/Lento/Volume.pm, lento/Lento/Filter/Upcall.pm,
	lento/Lento/InterMezzo/ReqHandler.pm,
	lento/Lento/InterMezzo/UpcallHandler.pm, presto/.cvsignore,
	presto/Configure, presto/Makefile, presto/cmls.c, presto/config.mk,
	presto/dcache.c, presto/dir.c, presto/intermezzo.c,
	presto/journal.c, presto/psdev.c, presto/super.c, presto/sysctl.c,
	presto/upcall.c, presto/linux/presto.h,
	presto/linux/presto_psdev.h: A variety of fixes, partly made with
	Ron Minnich.
	
	I believe basic functinonality is now there, including acquisition
	of the lock.

1999-10-20 13:12  rminnich

	* presto/: config.mk, intermezzo.c, sysctl.c, linux/presto_psdev.h:
	Modifications to support multiple-devices. Basically you will now
	see /proc/sys/intermezzo/presto<n>/hard
	/proc/sys/intermezzo/presto<n>/free_access
	
	These sysctl variables (or /proc variables) control corresponding
	variables in the upcall device structures which are indexed by
	minor device number.  These per-device variables can be modified
	whether the device is open or not.  Obviously the number of
	presto<n> entries is controlled by MAX_PRESTODEV.
	
	It is easy to add more per-device variables. See changes to
	presto_psdev.h and sysctl.c. You use ctl_table prototype structures
	as models of the per-device variables.
	
	Currently (sorry about this) the per-device variables have no
	effect, but will in a day or so.
	
	One other change, maybe temporary: if the filesystem is mounted
	read-only then upcalls won't be made to lento. This is to cover the
	case of a read-only / which has been mounted read-only just long
	enough to get lento running. Then you do a mount -o remount / and,
	voila! all subsequent dcache accesses WILL do upcalls. What's cool
	is that it works just like you want it to: the transition to making
	calls to lento is very clean: one moment you're not, since the
	superblock flags are set MS_RDONLY, the next moment you are. This
	change is in presto_chk.  I like this, I hope peter does too.

1999-10-18 10:33  braam

	* lento/Lento/: ACT.pm, CML.pm, Replicator.pm,
	InterMezzo/ReqHandler.pm: Fixed one more bug:	  - receiving and
	sending record numbers now always taken from the       replicator
	(cut the old volume crap for this purpose).

1999-10-18 09:51  braam

	* TODO, POE/POE/Kernel.pm, lento/Lento/ACT.pm, lento/Lento/CML.pm,
	lento/Lento/Cache.pm, lento/Lento/Server.pm:  Two bug fixes:
	  - zero length files did not make it across, since SendFile
	reported an
	    error and got stuck
	  - the send_CML sessions evaporated prematurely when there was
	more
	    to reintegrate

1999-10-17 12:54  braam

	* lento/tests/accept-test.pl, lento/tests/act-tester.pl,
	lento/tests/journal-tester.pl, presto/.cvsignore: Added the tests
	and a useful .cvsignore file

1999-10-17 12:46  braam

	* ChangeLog, TODO, demos/httpd-shopping/test.pl, doc/internals.pod,
	doc/protocol.txt, ifsck/Makefile, ifsck/ifsck.c, ifsck/sync.pl,
	lento/internals.pod, lento/logmangle, lento/prepare.sh,
	lento/Lento/Acceptor.pm, lento/Lento/Bootstrap.pm,
	lento/Lento/CML.pm, lento/Lento/Client.pm, lento/Lento/ClientDB.pm,
	lento/Lento/Connection.pm, lento/Lento/Connector.pm,
	lento/Lento/Journal.pm, lento/Lento/Reintegrate.pm,
	lento/Lento/Replicator.pm, lento/Lento/ReqDispatcher.pm,
	lento/Lento/Server.pm, lento/Lento/Serverdb.pm,
	lento/Lento/Vldb.pm, lento/Lento/Volume.pm,
	lento/Lento/Filter/Upcall.pm, lento/Lento/InterMezzo/ReqHandler.pm,
	lento/Lento/InterMezzo/UpcallHandler.pm, presto/config.mk: Numerous
	changes:  - break references and instead look up by sysid for
	Connections  - simplify the ClientDB, eliminate the Serverdb  - fix
	bugs related to fshl_path when Server and client are on same
	machine    (these wouldn't show up going over the net).

1999-10-12 21:45  braam

	* INSTALL, POE/POE/Kernel.pm, lento/internals.pod,
	lento/Lento/CML.pm, lento/Lento/Client.pm, lento/Lento/ClientDB.pm,
	lento/Lento/Connection.pm, lento/Lento/Connector.pm,
	lento/Lento/EventSupport.pm, lento/Lento/Replicator.pm,
	lento/Lento/ReqDispatcher.pm, lento/Lento/Server.pm,
	lento/Lento/Vldb.pm, lento/Lento/Volume.pm,
	lento/Lento/Filter/Upcall.pm, lento/Lento/InterMezzo/ReqHandler.pm,
	lento/Lento/InterMezzo/UpcallHandler.pm, presto/config.mk: Very
	many changes.
	
	 - removed some optimizations that were rather confusing
	 - all reintegration/forwarding now uses Replicators and
	   more or less works: MUCH simpler
	 - Permit no longer uses BreakPermit, but a server first gets
	   the permit from the client.

1999-10-11    <braam@cs.cmu.edu>

	* Lento/Vldb.pm, Lento/Volume.pm, Lento/CML.pm : introduced the
 	replicator as the general structure to manage update
	forwarding. This largely eliminates the client/server distinction
	in sending CMLs.

1999-10-08 14:20  braam

	* lento/: incontrol, internals.pod, lento.pl, Lento/ACT.pm,
	Lento/Acceptor.pm, Lento/Bootstrap.pm, Lento/CML.pm,
	Lento/Client.pm, Lento/Connection.pm, Lento/Connector.pm,
	Lento/Debuggable.pm, Lento/InControl.pm, Lento/Journal.pm,
	Lento/List.pm, Lento/Psdev.pm, Lento/ReqDispatcher.pm,
	Lento/Server.pm, Lento/Serverdb.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/InterMezzo/ReqHandler.pm, Lento/InterMezzo/UpcallHandler.pm:
	On the way to a well working lento...

1999-10-08 14:10  braam

	* presto/: Configure, cmls.c, config.mk, dir.c, inode.c,
	intermezzo.c, super.c, linux/presto.h: A variety of patches. 
	Multiple presto's are now supported.

1999-10-04    <braam@cs.cmu.edu>

	* Lento/Journal: general code cleanup.  Don't build unnecessary
	arrays of entries, add them to the CML rightaway
	* Lento/Debuggable: add a DUMP method 
	* Lento/Reintegrate.pm: make a clear distinction between running
	during an update forward and a reintegration.

1999-09-10 23:47  braam

	* lento/: MANIFEST, Makefile.PL, fetchfile, Lento/Acceptor.pm,
	Lento/Bootstrap.pm, Lento/CML.pm, Lento/Journal.pm,
	Lento/InterMezzo/ReqHandler.pm: Various fixes:	- when trying the
	code on some simple builds on a system with    a replicator,
	several crashes occured.  Not all have been    fixed, but most
	have.	- in the CML file rename had some problems, of calling
	handle_XXXX	without prefixing the call with an object of an
	appropriate type   - currently the handling of Reintegrate in
	ReqHandler is problematic,     it seems to have been written solely
	with Reintegration in mind     not update forwarding.	More
	fundamentally, the idea that there     are "client" and "server"
	ends of connection is not true in this	   case.  When the
	remaining fixes are in, we should make a new release.

1999-09-10 23:42  braam

	* presto/: Configure, Makefile, cmls.c, config.mk, journal.c,
	psdev.c, super.c, upcall.c, linux/presto.h, linux/presto_psdev.h,
	linux/presto_upcall.h: Three important fixes:	 - support for 2.3
	now operational    - better semantics for modifying operations	  -
	fixes to the makefiles, configure script etc

1999-08-30 05:25  pschwan

	* lento/: ChangeLog, MANIFEST, fetchfile, lento, parsepoemon.pl,
	Lento/Acceptor.pm, Lento/CML.pm, Lento/Cache.pm,
	Lento/Connection.pm, Lento/Connector.pm, Lento/Debuggable.pm,
	Lento/Packet.pm, Lento/ReqDispatcher.pm, Lento/ServerSemantics.pm,
	Lento/Filter/Packet.pm, Lento/InterMezzo/ReqHandler.pm,
	Lento/InterMezzo/UpcallHandler.pm, tests/acceptor-test.pl,
	tests/connect-test.pl: 
	a large number of changes, including:
	
	* packets are now arrays * Filter/Packet is now split into
	Filter/Packet and Packet * flow control code has been merged * flow
	control parameters are no longer in ServerSemantics * added the
	tests that were hacked on this weekend * small Packet::get
	optimisations * fetchfile changes * poemon parsing script * Pinger
	reports round-trip time * Ping request handling is inlined

1999-08-30 05:14  pschwan

	* POE/: POE/Kernel.pm, POE/Driver/SysRW.pm, POE/Wheel/ReadWrite.pm,
	tests/socketfactory.perl: 
	adds poemon stuff to Kernel; fixes up known flow control issues;
	fixes Kernel bugs found this weekend

1999-08-24 20:41  pschwan

	* lento/parsepoemon.pl: 
	The files to parse the poemon output that the Kernel now generates;
	requires gnuplot 2.6

1999-08-24 10:37  pschwan

	* lento/Lento/: ACT.pm, Acceptor.pm, Connector.pm, EventSupport.pm,
	List.pm, Server.pm: 
	Round one of the last weeks' changes.  One or two files are just
	whitespace or POD fixups; I upped the Acceptor's ListenQueue to 50
	while I'm doing the many-client tests; fixed a Connector issue
	(monitors would keep running for a bit even after Connections went
	away); another Connector issue was that multiple Connectors for the
	same peer would use the same kernel alias--this isn't an issue for
	normal operation, but it can break the multi-file-fetcher which
	connects to the server multiple times.	More changes coming but I'd
	like to hear back about my Packet changes before I commit them.

1999-08-19 12:13  pschwan

	* POE/POE/: Kernel.pm, Wheel/ReadWrite.pm: 
	Flow control fixes; things still don't quite work (though it at
	least works as well as before now), so expect some more in the
	not-so-distant future.

1999-08-18 00:29  braam

	* presto/config.mk: better to add this, otherwise a clean checkout
	does not give a buildable directory of files.

1999-08-18 00:14  braam

	* presto/Configure: Fix a minor bug, apparently only present for no
	-ac kernels

1999-08-17 13:05  braam

	* presto/linux/presto_psdev.h: typo; remove extra ";"

1999-08-17 12:39  braam

	* presto/: Makefile, cmls.c, psdev.c, linux/presto_psdev.h: Changes
	to compile (and hopefully run) smoothly on 2.3 kernels.

1999-08-17 02:31  pschwan

	* lento/fetchfile: 
	The new-and-improved multi-file fetcher

1999-08-17  Phil Schwan <pschwan@inter-mezzo.org>
	* Lento/Connection.pm (do_monitor): return immediately if the
	Connection is already dead; note that if we ever decide to patch POE to
	allow forceful, immediate session destruction by removing pending
	events from the queue, this can go.

1999-08-17 02:31  pschwan

	* lento/Lento/: Cache.pm, InterMezzo/UpcallHandler.pm: 
	Small fixes for the file fetcher that we made last week, that were
	somehow left out of my ``up to date'' tree.

1999-08-16 19:41  pschwan

	* POE/POE/: Driver/SysRW.pm, Wheel/ReadWrite.pm: 
	The flow control changes (see the message to the POE list for a
	good example of how to use them)

1999-08-16 15:26  braam

	* presto/cmls.c: small formatting differences.	Disabled some cmls
	code that doesn't work yet.

1999-08-16 15:14  braam

	* presto/Configure: Fix a bug in the script related to
	include/linux/modversions.h

1999-08-16 15:01  braam

	* presto/linux/dcache_func.h: Some versions of Linux are missing
	this file.  I have added it to the include directory -- let's hope
	we don't get into trouble about this.

1999-08-16 14:52  braam

	* presto/Configure: Added the Configure file which was erroneously
	forgotten.

1999-08-16 12:11  pschwan

	* lento/: ChangeLog, lento, Lento/Acceptor.pm, Lento/CML.pm,
	Lento/Cache.pm, Lento/ClientDB.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/Debuggable.pm, Lento/ReqDispatcher.pm,
	Lento/Server.pm, Lento/ServerSemantics.pm,
	Lento/InterMezzo/ReqHandler.pm, Lento/InterMezzo/UpcallHandler.pm: 
	A whole week of various changes; I think that, as of right now, my
	trees are in sync, so I can begin doing smaller, single-fix cvs
	commits.  With all of the debugging off (ie, $::global_debug == -5
	or so), things seem to go much much faster than they did before.  I
	might have missed something, so as always, testing is appreciated.
	
	ChangeLog entries follow:
	
1999-08-15  Phil Schwan <pschwan@inter-mezzo.org>	
	* Lento/Debuggable.pm (set_option): added function here to move all  
	  debug-related checks to Debuggable.pm so that future changes are
	easier	       
	
	* Lento/Debuggable.pm (LOG, DEBUG): the behaviour of these
 	functions are slightly different now: the line is printed if and
 	only if the sum of the class::level and $::global_debug variable
 	is > 0 instead of ($::global || class::level) &&
	(class::level != -1)
	
	* Lento/ClientDB.pm: had no "level" set
	
	1999-08-09  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Cache.pm (SendFile): merged the patch to use a
	Wheel for reading the file from disk
	
	* Lento/InterMezzo/ReqHandler (Reintegrate): fixed a small bug
 	that likely resulted in the incorrect {c,m}time on reintegrated
 	files; trying to reintegrate without a permit generates lots of
 	warnings now.

	* Lento/Connection.pm: wrote much of the new flow control
	code.
	
	1999-08-06  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Connection.pm: commented `die's out in favour of a debug
 	message and uneventful return. Take note: we no longer die if a
 	packet is trying to be sent on a dead connection, we just drop it
 	on the floor.
	
1999-08-05  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Volume.pm (new): initialize {callback} list 

	* Lento/Volume.pm (callback_when_done, reint_done): added two new
 	functions to 1. add sessions to a callback list, and 2.  call them
 	back when reintegration is complete
	
	* Lento/CML.pm (send_CML): uses the new callback mechanism
	in the volume instead of the old internal mechanism
		
	* Lento/InterMezzo/ReqHandler.pm (Permit): if the volume in
 	question is reintegrating, the Permit session is placed on the
 	callback list.  When reintegration is completed, the Permit is
 	finally issued.
	
	* Lento/InterMezzo/ReqHandler.pm (Permit): one piece of the code
 	that we've never actually called (invalid volume name) used the
 	old sendpacket mechanism.  fixed.  

	* Lento/Cache.pm (SendFile): it's possible to be Fedexed a
 	got_error and then go on to try to do bad things involving state
 	that's now gone.  Added a state on the heap to avoid this.
	
1999-08-04  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Server.pm (get): in the iterate, we weren't passing the
 	session to connection_obj->get, so it was incorrectly setting up
 	ACT tables for the default session.  

	* Lento/Volume.pm (new):
 	Volume objects now have a `sync' field that notes whether Lento
 	believes the client cache of that volume to be in sync or not.
	
  	* Lento/Bootstrap.pm (args): added a "--fork" option; Red Hat RC
 	scripts like it much better when programs can fork and exit.  

	* incontrol: incontrol now takes an --exec="command arg0 arg1..."
  	argument and exits after attempting
	
1999-08-03  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Cache.pm (SendFile): moved from
	Lento/InterMezzo/ReqHandler
	
	* Lento/InterMezzo/ReqHandler (SendFile): replaced with a stub to
 	call Lento/Cache.pm (SendFile)
	
	* Lento/Journal.pm: moved all of the process_* functions to
	CML.pm
	
	* Lento/CML.pm: moved the process_* functions here, made them a
 	bit more efficient; it makes more sense to have these functions
 	and the corresponding hash tables here
	
	* Lento/Journal.pm (process): got much more simple now that we
 	don't care about the process_* function's return value
	
	* Lento/CML.pm (process_RENAME): fixed the XXX about removing
 	files further down in the tree from the "closed" hash table

1999-08-06 22:09  braam

	* presto/: Makefile, cmls.c, dir.c, intermezzo.c, linux/presto.h:
	This code unlocks inodes before allowing permits to make upcalls.
	
	Reintegration should not deadlock now.

1999-08-06  Phil Schwan <pschwan@inter-mezzo.org>

	* Lento/Connection.pm: commented `die's out in favour of a debug
	message and uneventful return.  Take note: we no longer die if a
	packet is trying to be sent on a dead connection, we just drop it on
	the floor.
	
1999-08-06 01:28  pschwan

	* lento/: ChangeLog, incontrol, Lento/Bootstrap.pm, Lento/CML.pm,
	Lento/Cache.pm, Lento/Connection.pm, Lento/Connector.pm,
	Lento/Debuggable.pm, Lento/Journal.pm, Lento/Psdev.pm,
	Lento/Server.pm, Lento/Version.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/InterMezzo/ReqHandler.pm: 

	I think these ChangeLog entries reflect all of the changes.  I've
	tested it a bit locally and it seems to act fine.  Of course I will
	immediately fix it if I find something; I think using the ChangeLog
	will help us avoid mysterious new bugs.
	
1999-08-06  Phil Schwan <pschwan@inter-mezzo.org>	

	* Lento/Debuggable.pm (POE_CONFESS): dies, spewing information
 	about the session that called this one.  Unfortunately, it's
 	highly nontrivial to do a real traceback of POE events.

	* Lento/Connection.pm: changed all of the ``sending packet but no
 	wheel!!'' messages to use POE_CONFESS * Lento/Connection.pm:
 	subsequently commented them out in favour of a debug message and
 	uneventful return.  Take note: we no longer die if a packet is
 	trying to be sent on a dead connection, we just drop it on the
 	floor.

	* Lento/Cache.pm (SendFile): it's possible to be Fedexed a
 	got_error and then go on to try to do bad things involving state
 	that's now gone. Added a state on the heap to avoid this.
	
1999-08-05  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Volume.pm (new): initialize {callback} list
	
	* Lento/Volume.pm (callback_when_done, reint_done): added two new
 	functions to 1. add sessions to a callback list, and 2.  call them
 	back when reintegration is complete 

	* Lento/CML.pm (send_CML):
 	uses the new callback mechanism in the volume instead of the old
 	internal mechanism 

	* Lento/InterMezzo/ReqHandler.pm (Permit): if the volume in
 	question is reintegrating, the Permit session is placed on the
 	callback list. When reintegration is completed, the Permit is
 	finally issued.

	* Lento/InterMezzo/ReqHandler.pm
 	(Permit): one piece of the code that we've never actually called
 	(invalid volume name) used the old sendpacket mechanism.  fixed.
	
1999-08-04  Phil Schwan <pschwan@inter-mezzo.org>
	
	* Lento/Server.pm (get): in the iterate, we weren't passing the
 	session to connection_obj->get, so it was incorrectly setting up
 	ACT tables for the default session.
		
	* Lento/Volume.pm (new): Volume objects now have a `sync' field
 	that notes whether Lento believes the client cache of that volume
 	to be in sync or not.  Note that nothing uses it quite yet.  

	* Lento/Bootstrap.pm (args): added a "--fork" option; Red Hat RC
 	scripts like it much better when programs can fork and exit.

	* incontrol: incontrol now takes an --exec="command arg0 arg1..."
  	argument and exits after attempting
	
1999-08-03  Phil Schwan <pschwan@inter-mezzo.org>

	* Lento/Cache.pm (SendFile): moved from Lento/InterMezzo/ReqHandler
	* Lento/InterMezzo/ReqHandler (SendFile): replaced with a stub to call
	Lento/Cache.pm (SendFile)
	* Lento/Journal.pm: moved all of the process_* functions to CML.pm
	* Lento/CML.pm: moved the process_* functions here, made them a bit
	more efficient; it makes more sense to have these functions and the
	corresponding hash tables here
	* Lento/Journal.pm (process): got much more simple now that we don't
	care about the process_* function's return value
	* Lento/CML.pm (process_RENAME): fixed the XXX about removing files
	further down in the tree from the "closed" hash table


1999-08-06 01:20  pschwan

	* POE/POE/Kernel.pm: 
	Reverted my alias_set_for_session changes, since we no longer use
	them.

1999-08-05 23:15  pschwan

	* tests/: doprep, check_scripts/test2.pl, check_scripts/test3.pl,
	prep_scripts/test3.pl, test_scripts/test3.pl: 
	Added a test for create/close reintegration.

1999-08-05 13:16  pschwan

	* tests/: ChangeLog, Makefile, docheck, doprep, dotests,
	check_scripts/template.pl, check_scripts/test1.pl,
	check_scripts/test2.pl, prep_scripts/template.pl,
	prep_scripts/test1.pl, prep_scripts/test2.pl,
	test_scripts/template.pl, test_scripts/test1.pl,
	test_scripts/test2.pl: 
	the testing code.  only two tests are there, but it's a start. 
	I'll add a README soon, but I think the code is pretty
	understandable.  You need a ``test'' volume with its own fshl; just
	copy the template and look at the examples if you want to add new
	tests

1999-08-01 12:53  braam

	* lento/: incontrol, Lento/ACT.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/InControl.pm: dodgy changes to keep
	incontrol working.

1999-08-01 12:41  braam

	* POE/POE/Kernel.pm: This allows a maximum of 16 outstanding events
	before selects are enabled.  This should stop event explosion in
	lento.
	
	- Peter -

1999-07-29  Phil Schwan <pschwan@inter-mezzo.org>

	* Lento/Vldb.pm (new): failing to open the voldb is now a fatal error

1999-07-28  Phil Schwan <pschwan@inter-mezzo.org>

	* Lento/Cache.pm (pack_dir): now stores an array for each file, which
	contains a link name if it's a symlink and the normal stat object
	* Lento/Cache.pm (fill_dir): handles the new style; calls
	install_symlink when appropriate
	* Lento/Cache.pm (install_symlink): added new function, self
	explanitory
	* Lento/Cache.pm: added some S_ISLNK code, cleaned up some debugging
	statements

1999-07-28 22:12  pschwan

	* lento/: BUGS, ChangeLog, Changes, MANIFEST, Lento/CML.pm,
	Lento/Cache.pm, Lento/Client.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/Debuggable.pm, Lento/EventSupport.pm,
	Lento/Journal.pm, Lento/Volume.pm, Lento/Filter/Upcall.pm,
	Lento/InterMezzo/ReqHandler.pm: 
	New files for known bugs and a change log.  ChangeLog entries
	follow:
	
	1999-07-28  Phil Schwan <pschwan@stelias.com>
	
		* Lento/Cache.pm (pack_dir): now stores an array for each
	file, which
		contains a link name if it's a symlink and the normal stat
	object
		* Lento/Cache.pm (fill_dir): handles the new style; calls
		install_symlink when appropriate
		* Lento/Cache.pm (install_symlink): added new function,
	self
		explanitory
		* Lento/Cache.pm: added some S_ISLNK code, cleaned up some
	debugging
		statements
	
	1999-07-26  Phil Schwan <pschwan@stelias.com>
	
		* Lento/Journal.pm (process_RENAME, process_UNLINK): fixed
	two
		identical delayed close Perl bugs (as opposed to logic
	bugs) that were
		really screwing up Reintegration and sometimes crashing
	Lento
		* Lento/CML.pm (send_CML): some better error handling to
	prevent
		massive dispatch loops when disconnected; better record
	sending code
		* Lento/Client.pm (printme): added useful printme
		* Lento/Volume.pm (printme): updated printme to show
	replicators
		* logmangle: added file; converts Lento debugging output
	into a nicely
		colour-coded printout
		* Lento/Connection.pm: small debugging output change for
	consistency

1999-07-27 11:53  braam

	* Configure, Makefile, config.in, config.mk, POE/POE/Kernel.pm,
	presto/config.in: Moved old config stuff to new config stuff.

1999-07-26  Phil Schwan <pschwan@inter-mezzo.org>

	* Lento/Journal.pm (process_RENAME, process_UNLINK): fixed two
	identical delayed close Perl bugs (as opposed to logic bugs) that were
	really screwing up Reintegration and sometimes crashing Lento
	* Lento/CML.pm (send_CML): some better error handling to prevent
	massive dispatch loops when disconnected; better record sending code
	* Lento/Client.pm (printme): added useful printme
	* Lento/Volume.pm (printme): updated printme to show replicators
	* logmangle: added file; converts Lento debugging output into a nicely
	colour-coded printout
	* Lento/Connection.pm: small debugging output change for consistency
	
1999-07-26 17:10  braam

	* presto/: Makefile, dir.c, inode.c, intermezzo.c, journal.c,
	psdev.c, super.c, sysctl.c, upcall.c, linux/presto.h,
	linux/presto_psdev.h, linux/presto_upcall.h: Added support for:  -
	switching of journalling (the beginning of recovery tools, external
	   rsyncing and multicast updating etc.)  - multiple minors on
	/dev/presto (for testing, load balancing and private	name space
	support).
	
	   - Peter -

1999-07-26 17:10  braam

	* lento/Lento/: Bootstrap.pm, Psdev.pm: change to add prestodev as
	a startup flag, for multiple lento support.

1999-07-19 12:11  pschwan

	* .cvsignore, INSTALL, lento/Changes, lento/MANIFEST,
	lento/Lento/Bootstrap.pm, lento/Lento/Cache.pm,
	lento/Lento/Vldb.pm: Updates for 0.002.  nopresto is gone,
	--noclient now implies --nopresto.  --device is gone, --root is
	gone, we never used them.  INSTALL and Changes updated, MANIFEST
	updated, ready to push 0.002

1999-07-19 10:29  pschwan

	* POE/POE/Session.pm, lento/lento, lento/Lento/CML.pm,
	lento/Lento/Client.pm, lento/Lento/Server.pm,
	lento/Lento/InterMezzo/ReqHandler.pm,
	lento/Lento/InterMezzo/UpcallHandler.pm: Just about ready to tag
	0.02; connected an disconnected update forwarding and reintegration
	works much better now.	There are still some unresolved issues
	surrounding permits and certain event ordering, but we think
	they're not so hard to fix at the end of the day.

1999-07-18 20:38  braam@cs.cmu.edu
	release 0.002

	- mounting is now done by hand and not by lento
	- disconnected operation should work
	- restarting Lento can be done without remounting; you may lose some
	stuff
	- CML optimisations
	- better connection management
	- mount points visible in /proc/fs/intermezzo
	- many minor changes

	

	
1999-07-18 20:38  pschwan

	* lento/Lento/: Journal.pm, Reintegrate.pm: Small rename fix

1999-07-18 20:37  braam

	* lento/: act-tester.pl, incontrol, lento, Lento/ACT.pm,
	Lento/Bootstrap.pm, Lento/CML.pm, Lento/Client.pm,
	Lento/Connection.pm, Lento/Connector.pm, Lento/EventSupport.pm,
	Lento/List.pm, Lento/Psdev.pm, Lento/ReqDispatcher.pm,
	Lento/Server.pm, Lento/Serverdb.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/InterMezzo/ReqHandler.pm, Lento/InterMezzo/UpcallHandler.pm:
	Hacking after church today:
	
	 - disconnected operation works again
	 - totally redone the ACT scheme - now per connection
	 - many cleanups throughout.

1999-07-18 11:21  pschwan

	* lento/Lento/Journal.pm: Fixes to my earlier Journal changes.

1999-07-16 22:35  braam

	* lento/Lento/: CML.pm, ClientDB.pm, Connection.pm, Connector.pm,
	Server.pm, Filter/Packet.pm, InterMezzo/UpcallHandler.pm: Things
	work again more or less.
	
	Phil: check on the following:  - when disconnecting the server
	manager sessions     doesn't seem to get the message	  -
	consequently disconnected operation is not kicking	   in
	correctly at the moment 	- we might leak sessions which are
	clients of the server manager.		the rule is that they
	should become clients of the connection 	     once we are
	reintegrated.

1999-07-16 22:29  braam

	* POE/POE/: Kernel.pm, Session.pm: Fixed a bug in fedex.

1999-07-16 17:24  pschwan

	* lento/Lento/: Cache.pm, Journal.pm, Reintegrate.pm,
	InterMezzo/ReqHandler.pm: 
	This commit contains much of the server-side Reintegration fixes:
	
	* server-side delayed closes * multiple closes with no intermediate
	rename()s or unlink()s are ignored * close()s are ignored if the
	file hasn't changed since the open()
	
	I haven't tested it yet, since I'm just now finishing up what I
	wanted to do, and you want things checked in 20 minutes ago.  I'll
	hack some more if the Connections get stable tonight.

1999-07-15 07:13  braam

	* lento/Lento/: CML.pm, Connection.pm, Connector.pm,
	ReqDispatcher.pm, Server.pm: Connector changes in mid flight.

1999-07-14 12:52  pschwan

	* lento/Lento/: Connection.pm, Connector.pm,
	InterMezzo/ReqHandler.pm, InterMezzo/UpcallHandler.pm: 
	approaching 0.002

1999-07-14 11:25  braam

	* presto/: dir.c, inode.c, super.c, sysctl.c, linux/presto.h: Added
	/proc support to remember mount information.
	
	Temporary un/locking code added in mkdir.

1999-07-13 21:52  pschwan

	* lento/: lento, voldb, Lento/ACT.pm, Lento/CML.pm, Lento/Cache.pm,
	Lento/Client.pm, Lento/ClientDB.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/Downcall.pm, Lento/EventSupport.pm,
	Lento/Psdev.pm, Lento/ReqDispatcher.pm, Lento/Server.pm,
	Lento/Vldb.pm, Lento/Volume.pm, Lento/InterMezzo/ReqHandler.pm,
	Lento/InterMezzo/UpcallHandler.pm: 
	Several days of changes.  What I can remember:
	
	* more cleanup of the unified OpenFile/GetFile * fix of a subtle
	$connector->{clients} vs. $connection->{users} race condition.	* a
	good start towards real update log forwarding * many steps closer
	to good disconnected operation	 * CMLs are now correctly shipped
	upon reconnection * a Connection monitor/timeout fix; last_recv
	wasn't being set for new connections.  * many SysId fixes      *
	SysId now does the right thing and reintegrates any pending  
	client Reintegrations or replicator logs * BreakPermit works in
	(most) cases now.  should work in all cases for which no
	reintegration is pending

1999-07-12 18:46  braam

	* presto/inode.c: Fix leak of refcount.

1999-07-12 18:45  pschwan

	* lento/Lento/: ACT.pm, CML.pm, Cache.pm, Connection.pm,
	Connector.pm, ReqDispatcher.pm, Volume.pm, Filter/Upcall.pm,
	InterMezzo/ReqHandler.pm, InterMezzo/UpcallHandler.pm: 
	Unified the GetFile session, undid my patch that broke the
	Connection, fixed the directories-not-being-closed bug

1999-07-11 12:09  braam

	* lento/Lento/: Acceptor.pm, ClientDB.pm, Connection.pm,
	Connector.pm, EventSupport.pm, InterMezzo/ReqHandler.pm: Added some
	event support to deal with _stop, _signal and _child in a generic
	way (possibly useless, but it rids us of the messages).
	
	Fixed a bug in client addition upon accept.
	
	Added support for removing hanging "get_connection" events. They
	are now cleaned up after 5 or 10 seconds.

1999-07-11 01:12  pschwan

	* lento/Lento/: ACT.pm, Bootstrap.pm, Connection.pm, Journal.pm,
	Volume.pm, InterMezzo/UpcallHandler.pm: 
	Fixed token bugs in OpenDir, SysID.  Added a defensive test to ACT.
	 Fixed some --noserver issues.	Make Journal die if it gets a
	record and can't find the volume with which it's associated.

1999-07-09 23:26  braam

	* lento/Lento/: Client.pm, ClientDB.pm: These new classes are
	needed now.

1999-07-09 23:26  braam

	* INSTALL, Makefile, config.mk, POE/POE/Kernel.pm,
	POE/POE/Wheel/SocketFactory.pm, lento/voldb,
	lento/Lento/Bootstrap.pm, lento/Lento/Connection.pm,
	lento/Lento/Serverdb.pm, lento/Lento/Vldb.pm,
	lento/Lento/Volume.pm, lento/Lento/InterMezzo/ReqHandler.pm:
	Inconsequential changes to POE -- for binding to an address
	
	Better INSTALL file
	
	Lento now has a system of registering client id's when they
	connect, a client database which holds a list of volumes replicated
	by a particular client.
	
	Configuration file changes mean that the INSTALL file is again out
	of date:   - put voldb in /etc/intermezzo/   - put a file sysid in
	/etc/intermezzo/ with a short form of the hostname     in it, the 
	same name listed as a replicator or server in voldb.

1999-07-09 12:52  braam

	* lento/: voldb, Lento/Bootstrap.pm, Lento/Connection.pm,
	Lento/Vldb.pm, Lento/Volume.pm, Lento/Filter/Upcall.pm,
	Lento/InterMezzo/UpcallHandler.pm: Changes to accomodate mount.
	
	Changes to allow the kernel to plough on when opendir fails.  Note
	the differnt handling of connection and ctoken in opedir: is this
	better?
	
	added shutdown to the socket close in Connection.

1999-07-09 12:52  braam

	* presto/: dcache.c, psdev.c, super.c: Some more small fixes to the
	kernel code.  Why do we get oopses?

1999-07-08 23:19  pschwan

	* lento/: incontrol, Lento/ACT.pm, Lento/Bootstrap.pm,
	Lento/CML.pm, Lento/Cache.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/List.pm, Lento/Server.pm,
	Lento/Filter/Packet.pm, Lento/InterMezzo/ReqHandler.pm: 
	completed the ACT/Connection hacking that i mentioned--ACT::new now
	requires that you pass along the Connection as arg1; since we write
	such nice code, ACT::new is only called in three places, so this
	was easy.  this took care of some sessions not disappearing when
	interrupted by errors.
	
	I'm still seeing some very troubling error behaviour; Connectors
	not quite doing the right thing on disconnect (or sometimes on
	restart), and things of that nature. I'm going to attack it when I
	wake up tomorrow, and I'll give you a call if I haven't made any
	progress by the time it's a reasonable time of day in Calgary.

1999-07-08 22:51  braam

	* presto/: dcache.c, dir.c, super.c, linux/presto.h: Some
	subtleties with iso9660 methods give problems there.  I have added
	debugging code, and fixed dentry operation replacement.
	
	Things seem to work for ext2.

1999-07-08 17:23  braam

	* presto/: dir.c, inode.c, super.c, upcall.c, linux/presto.h,
	linux/presto_upcall.h: New kernel code (quite a bit of it) to
	support multiple InterMezzo mount points, wrapping around different
	bottom file systems and having different volumes sitting on them.
	
	The new mount command to issue is:
	
	 mount -t InterMezzo -o
	volume=your_vol_onmtpt,bottom=your_local_fstype dev
	 dir
	
	For example I have now:
	
	/dev/loop0 on /izo type InterMezzo (rw,volume=myvol,bottom=ext2)
	/dev/hdc on /mnt/cdrom type InterMezzo
	(ro,bottom=iso9660,volume=cd)
	
	User level code for this is not ready - so just hang on a moment
	before using this new kernel code.
	
	Peter

1999-07-08 14:16  pschwan

	* lento/: incontrol, Lento/ACT.pm, Lento/Acceptor.pm, Lento/CML.pm,
	Lento/Cache.pm, Lento/Connection.pm, Lento/Connector.pm,
	Lento/InControl.pm, Lento/ReqDispatcher.pm: 
	spent all day hacking on InControl--it's now properly POEfied and
	easy to extend and understand.	fixed a lot of the server-side
	InControl stuff as well (will probably move it to the InterMezzo
	subdirectory, since it's now
	Lento::InterMezzo::ReqHandler::InControl); fixed some small bugs
	elsewhere in the code; I think I am seeing some problems with the
	Pinger and the Connector, I'm looking into them...

1999-07-08 00:45  braam

	* INSTALL: Heavily modified INSTALL file:
	
	 - lento flags:
	   --root where InterMezzo will first be mounted (/izo)
	   --device: the device holding the ext2 cache for InterMezzo
	(/dev/loop0)
	   --nopresto: don't open /dev/presto, i.e. run a pure server
	     note: only one lento can open /dev/presto
	   --noserver: don't install a callback table.
	   --d debugging is on (sorry always on right now).
	
	 - sanitized the setup and install further (on our way to a first
	   InterMezzo rpm).

1999-07-08 00:45  braam

	* lento/Lento/: Bootstrap.pm, InterMezzo/ReqHandler.pm: - added
	unuse's for connections to generic 'finish' and '_start' events -
	fixed up Bootstrap to accompany the better installation
	instructions.

1999-07-07 13:55  braam

	* lento/: Changes, MANIFEST, Makefile.PL, intercon, lento,
	Lento/ACT.pm, Lento/Acceptor.pm, Lento/Bootstrap.pm, Lento/CML.pm,
	Lento/Cache.pm, Lento/Callback.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/Debuggable.pm, Lento/Downcall.pm,
	Lento/InControl.pm, Lento/Journal.pm, Lento/List.pm,
	Lento/Psdev.pm, Lento/Reintegrate.pm, Lento/ReqDispatcher.pm,
	Lento/Server.pm, Lento/ServerSemantics.pm, Lento/Serverdb.pm,
	Lento/Vldb.pm, Lento/Volume.pm, Lento/Filter/Packet.pm,
	Lento/Filter/Upcall.pm, Lento/InterMezzo/ReqHandler.pm,
	Lento/InterMezzo/UpcallHandler.pm: Peter's hacks from the
	weekend...    - new networking code    - numerous small bug fixes  
	 - Perl makefile environment.

1999-07-02 23:00  braam

	* doc/semantics.txt: This document describes the sharing semantics
	- well at least the beginning of it.

1999-07-02 23:00  braam

	* lento/Lento/: InterMezzo.pm, ReqDispatcher.pm,
	ServerSemantics.pm, Filter/Packet.pm, Filter/Upcall.pm,
	InterMezzo/ReqHandler.pm, InterMezzo/UpcallHandler.pm: 
	Permit requests now work.   I split the InterMezzo file into two -
	InterMezzo/ReqHandler and InterMezzo/UpcallHandler.
	
	Next is BreakRequest & multihoming to test it out.

1999-07-01 16:16  braam

	* INSTALL, lento/voldb: Added two files to aid people playing.

1999-06-29 12:44  pschwan

	* lento/Lento/Fsdb.pm, lento/Lento/Fso.pm, lento/Lento/IRPC.pm,
	lento/Lento/Intermezzo.pm, POE/POE/Kernel.pm: Removed old files,
	POE alias hack

1999-06-29 12:31  pschwan

	* lento/: lento, Lento/ACT.pm, Lento/CML.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/Debuggable.pm, Lento/Fso.pm,
	Lento/InterMezzo.pm, Lento/Psdev.pm, Lento/Reintegrate.pm,
	Lento/Filter/Upcall.pm: many many fixes to prevent leaking ACTs,
	sessions, objects, etc.
	
	you must update your POE from CVS in order to use this code.

1999-06-28 14:03  pschwan

	* config.mk, lento/lento, lento/Lento/ACT.pm, lento/Lento/CML.pm,
	lento/Lento/Cache.pm, lento/Lento/Connection.pm,
	lento/Lento/Connector.pm, lento/Lento/InterMezzo.pm,
	lento/Lento/Journal.pm, lento/Lento/List.pm, lento/Lento/Psdev.pm,
	lento/Lento/Reintegrate.pm, lento/Lento/ReqDispatcher.pm,
	lento/Lento/Server.pm, lento/Lento/Vldb.pm, lento/Lento/Volume.pm,
	lento/Lento/Filter/Packet.pm, lento/Lento/Filter/Upcall.pm,
	presto/Makefile, presto/dir.c, presto/intermezzo.c,
	presto/journal.c, presto/super.c, presto/upcall.c,
	presto/linux/presto.h, presto/linux/presto_upcall.h: A whole week
	of hacking

1999-06-25 15:03  pschwan

	* presto/: dir.c, intermezzo.c, journal.c, super.c, upcall.c,
	linux/presto.h, linux/presto_upcall.h: 
	Fixed a journal bug, added pathnames to non-Journal upcalls.

1999-06-25 15:03  pschwan

	* lento/: lento, Lento/Cache.pm, Lento/Connector.pm,
	Lento/InterMezzo.pm, Lento/ReqDispatcher.pm, Lento/Server.pm,
	Lento/Serverdb.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/Filter/Upcall.pm: 
	Lots of Volume/Vldb/Server hacking, Upcall hacking.  At the moment,
	OpenDir works with the new system; I hope OpenFile will follow
	soon, and then back to working on Reintegration...

1999-06-24 22:53  pschwan

	* presto/: dir.c, inode.c, journal.c: Fixed the symlink bug.

1999-06-24 15:12  braam

	* POE/: Changes, MANIFEST, Makefile.PL, POE-TODO.pod, POE.pm,
	POE.pod, README, POE/Driver.pm, POE/Filter.pm, POE/Kernel.pm,
	POE/Session.pm, POE/Wheel.pm, POE/Driver/SysRW.pm,
	POE/Filter/HTTPD.pm, POE/Filter/Line.pm, POE/Filter/Reference.pm,
	POE/Filter/Stream.pm, POE/Wheel/FollowTail.pm,
	POE/Wheel/ListenAccept.pm, POE/Wheel/ReadWrite.pm,
	POE/Wheel/SocketFactory.pm, t/test.t, tests/create.perl,
	tests/fakelogin.perl, tests/followtail.perl, tests/forkbomb.perl,
	tests/httpd.perl, tests/names.perl, tests/objsessions.perl,
	tests/packagesessions.perl, tests/preforkedserver.perl,
	tests/proxy.perl, tests/refsender.perl, tests/refserver.perl,
	tests/selects.perl, tests/sessions.perl, tests/signals.perl,
	tests/socketfactory.perl, tests/thrash.perl,
	tests/tutorial-chat.perl, tests/wheels.perl: Added a POE which has
	some of our hacks. Corresponds to version 0.06_07

1999-06-24 09:43  pschwan

	* presto/: dcache.c, dir.c, inode.c, intermezzo.c, journal.c,
	super.c, sysctl.c, linux/presto.h: Oops, I forgot to check this in.
	 All of the new presto code from this week.  CMU's connections to
	the outside world are totally hosed, and it's going to take 24
	hours to process my new ISP account, so I probably won't be reading
	email today.  Just so you're aware.

1999-06-23 23:45  pschwan

	* lento/: journal-tester.pl, volume-tester.pl:
	journal-tester/volume-tester

1999-06-23 23:45  pschwan

	* lento/Lento/: InterMezzo.pm, Journal.pm, ReqDispatcher.pm,
	Server.pm, Vldb.pm, Volume.pm, Filter/Upcall.pm: Todays changes.

1999-06-23 23:34  pschwan

	* lento/: lento, Lento/ACT.pm, Lento/Acceptor.pm, Lento/CML.pm,
	Lento/Cache.pm, Lento/Callback.pm, Lento/Connection.pm,
	Lento/Connector.pm, Lento/Downcall.pm, Lento/Fsdb.pm, Lento/Fso.pm,
	Lento/IRPC.pm, Lento/InterMezzo.pm, Lento/Intermezzo.pm,
	Lento/Journal.pm, Lento/Psdev.pm, Lento/Reintegrate.pm,
	Lento/ReqDispatcher.pm, Lento/Filter/Packet.pm,
	Lento/Filter/Upcall.pm: The last several days of hacking, not
	including todays changes.

1999-06-14 16:21  braam

	* lento/Lento/: Connector.pm, Fso.pm, InterMezzo.pm: The beginnings
	of FetchFile/SendFile are in too now.

1999-06-14 06:41  braam

	* lento/lento, lento/Lento/Cache.pm, lento/Lento/Connection.pm,
	lento/Lento/Connector.pm, lento/Lento/Fso.pm,
	lento/Lento/InterMezzo.pm, lento/Lento/ReqDispatcher.pm,
	lento/Lento/Volume.pm, lento/Lento/Filter/Packet.pm,
	lento/Lento/Filter/Upcall.pm, presto/dir.c: Lots of changes.  The
	listing of directories is now satisfactory and I believe the code
	is decent.  On to the next task.

1999-06-07 12:59  braam

	* config.mk, lento/lento, lento/Lento/Fso.pm,
	lento/Lento/InterMezzo.pm, lento/Lento/ReqDispatcher.pm,
	lento/Lento/Server.pm, lento/Lento/Filter/Upcall.pm, presto/dir.c,
	presto/linux/presto.h: Quite a few changes towards a working
	version again.
	
	I have identified two or three new functions we need in POE:  -
	Kernel::Session  to return the session this is running in  -
	Kernel::Heap	 to return a ref to the heap for this session These
	will eliminate a lot of parameter passing.

1999-05-17 12:02  braam

	* lento/: incontrol, Lento/Connection.pm, Lento/Connector.pm,
	Lento/Filter/Packet.pm: minor fixes to the incontrol session.  More
	are needed...

1999-05-13 14:42  braam

	* lento/: incontrol, Lento/Connection.pm, Lento/Connector.pm,
	Lento/InterMezzo.pm, Lento/List.pm: Documentation added to
	Connector.pm and List.pm
	
	Various improvements to the code, nothing spectacular yet.

1999-05-11 07:52  braam

	* lento/: incontrol, lento, Lento/ACT.pm, Lento/Cache.pm,
	Lento/Connection.pm, Lento/Connector.pm, Lento/InterMezzo.pm,
	Lento/ReqDispatcher.pm, Lento/Filter/Packet.pm: Echo now works from
	incontrol to lento and back.  Two lessons:  - don't pass raw
	session references as tokens - they get stringified  - the put
	method on a wheel MUST be invoked by the owner of the wheel,   
	i.e. the session calling new Wheel.  This is so because new Wheel
	installs    event handlers in the owner and put invokes these for
	i/o.
	
	   Writing is really asynchronous in POE.

1999-05-09 16:41  braam

	* config.mk, lento/incontrol, lento/Lento/Connection.pm,
	lento/Lento/Connector.pm, lento/Lento/InterMezzo.pm,
	lento/Lento/Psdev.pm, lento/Lento/ReqDispatcher.pm,
	lento/Lento/Filter/Packet.pm, presto/dir.c,
	presto/linux/presto_psdev.h, presto/linux/presto_upcall.h: -
	Adapted the kernel code (at least partly) to 2.2.7.
	
	- En flight cleanups:  - with Phil: fixed up packet unpacking  -
	then changes to Connector.pm and friends.
	
	We should almost be ready to re-activate the fetching and
	reintegration sessions using POE.
	
	- Peter -

1999-05-06 10:20  braam

	* lento/Lento/: InterMezzo.pm, ReqDispatcher.pm, Filter/Packet.pm,
	Filter/Upcall.pm: More POE stuff:
	
	  - I changed some names: InterMezzo:UpcallHandler sets up
	    sessions for upcalls and InterMezzo:ReqHandler for RPC's
	  - in each case Upcall and Packet objects are responsible for
	    invoking the correct setup routine.

1999-05-04 20:12  braam

	* lento/: coding-hints.pod, lento, Lento/Acceptor.pm,
	Lento/Cache.pm, Lento/Connection.pm, Lento/Connector.pm,
	Lento/Fso.pm, Lento/InterMezzo.pm, Lento/Intermezzo.pm,
	Lento/Psdev.pm, Lento/Reactor.pm, Lento/ReqDispatcher.pm,
	Lento/Server.pm, Lento/Serverdb.pm, Lento/Volume.pm, Lento/echo.pl,
	Lento/testclient.pl, Lento/testserv.pl, Lento/Filter/Packet.pm,
	Lento/Filter/Upcall.pm, Lento/Service/Acceptor.pm,
	Lento/Service/Connection.pm, Lento/Service/Timer.pm,
	Lento/Service/Upcall.pm, Lento/Service/TCP/FileServer.pm: The first
	POE version of InterMezzo

1999-04-23 16:07  braam

	* lento/Lento/Downcall.pm, lento/Lento/Service/Upcall.pm,
	presto/dcache.c, presto/dir.c, presto/inode.c, presto/intermezzo.c,
	presto/super.c, presto/upcall.c, presto/linux/presto.h,
	presto/linux/presto_upcall.h: This fixes the following:  - / is
	looked up when InterMezzo mounts   - the bottom operations are
	organized in a struct now,	soon we will be able to support
	ISO9660 and other	  types of volumes.	    - a bug in
	trapping lookups has been fixed.  It should be possible 	now
	to do: mount /intermezzo ; more /intermezzo/1/2/3/4/5/file	   
	   without problems.
	
			  There is some cruft in super.c that I commented
	out, and
			  will finish off
			     over the next few days.
	
				- Peter -
				[braam@mo

1999-04-22 23:41  pschwan

	* lento/: lento, Lento/CML.pm, Lento/Cache.pm, Lento/Debuggable.pm,
	Lento/Fso.pm, Lento/IRPC.pm, Lento/Journal.pm, Lento/Reactor.pm,
	Lento/Reintegrate.pm, Lento/Service/Upcall.pm,
	Lento/Service/TCP/FileServer.pm: 
	Fixed another half dozen bugs.	More stable, fixed setattr, stopped
	leaking ACTs in a lot of places, fixed the write/write deadlocking
	bug, changed IRPC semantics a bit (packet headers are now passed to
	every completion function, not just requests), fixed a FileServer
	false ENOENT bug, added a small Debuggable change (if the debug
	level for a given module is -1, no logging data is displayed,
	regardless of global_debug; I was tired of Cache.pm spam), fixed a
	directory creation bug (wasn't setting mode), probably fixed a
	couple other bugs.
	
	I managed to successfully copy the whole kernel tree into the
	mounted directory; while it finished reasonably quickly,
	reintegration took a long time (it finished copying at the end of
	the 2nd intermission, and it was halfway through the 3rd period
	before it finished backfetching), but it nonetheless worked. 
	Compiling gets further--I can now reliably ``make [menu]config'',
	and I suspect that untarring a tree will consistently work. A
	``make zImage'' makes Lento crash because of the mysterious rename
	bug; not to worry, I think a lot of progress was made.
	
	Pretty soon I am going to have to start optimising the CMLs before
	they're dispatched.  I am starting to waste a _lot_ of time waiting
	for unnecessary reintegration entries to be processed.	Any
	suggestions that you have other than those raised at dinner earlier
	in the week are welcome.

1999-04-22 23:33  pschwan

	* presto/: inode.c, journal.c, linux/presto.h: 
	another bug, in setattr.  I'm running into a couple other bugs:
	
	* an occasional rename bug; I think I can track this down shortly *
	when I abort some userspace operations (like breaking a ``make''),
	Lento is unable to write to Presto, and so it dies.  is there an
	explanation for this? * the problem I described in the email, where
	upcalls aren't being generated for parent directories for which the
	kernel has no data.  I can probably track this down as well, when I
	feel the desire

1999-04-22 18:54  pschwan

	* presto/journal.c: 
	Jesus!	No wonder the demo failed--I was using the old kernel code.
	 Somehow, for whatever reason, my big fix got lost.

1999-04-21 14:58  pschwan

	* presto/: journal.c, linux/presto.h: 
	Small fix of my previous idiocy.

1999-04-21 14:58  pschwan

	* lento/: incontrol, lento, Lento/Cache.pm, Lento/Fsdb.pm,
	Lento/Fso.pm, Lento/IRPC.pm, Lento/InControl.pm,
	Lento/Intermezzo.pm, Lento/Journal.pm, Lento/Reintegrate.pm,
	Lento/Service/Connection.pm, Lento/Service/Upcall.pm,
	Lento/Service/TCP/FileServer.pm: 
	Backfetching, numerous reintegration fixes, some stability hacks. 
	In general things are much more stable and, on occasion, actually
	usable.

1999-04-17 20:05  braam

	* presto/: dir.c, inode.c, journal.c, psdev.c, super.c, upcall.c,
	linux/presto.h, linux/presto_psdev.h, linux/presto_upcall.h: minor
	changes for chmod and asynchronous opendir to be used with mount.
	
	Removed /dev/presto opening for secondary users like incontrol.
	
	Changed file system type to InterMezzo.

1999-04-17 19:52  pschwan

	* lento/Lento/Journal.pm: 
	I should not commit fixes that aren't finished.  Bad.

1999-04-17 19:46  pschwan

	* lento/Lento/: Fso.pm, Journal.pm, Reintegrate.pm: 
	Assorted fixes

1999-04-17 19:46  pschwan

	* lento/Lento/Journal.pm: 
	mkdir journal fix

1999-04-17 18:37  pschwan

	* lento/Lento/Service/Connection.pm: 
	Small SO_LOWAT fix.

1999-04-17 18:30  pschwan

	* presto/: dir.c, inode.c, journal.c, linux/presto.h: 
	A few changes, mostly to journal_setattr, journal_create

1999-04-17 01:07  pschwan

	* lento/: incontrol, lento, Lento/CML.pm, Lento/Cache.pm,
	Lento/Downcall.pm, Lento/Fsdb.pm, Lento/Fso.pm, Lento/IRPC.pm,
	Lento/InControl.pm, Lento/Intermezzo.pm, Lento/Journal.pm,
	Lento/Reintegrate.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/Service/TCP/FileServer.pm: 
	A whole pile of changes and fixes:
	
	Reintegration works (except for setattr, which I want to talk to
	you about).  Some things won't work properly without my kernel
	fixes and changes; I'm waiting for approval before checking them in
	(but they do work!).  It just occured to me that the server doesn't
	update its Fsdb, I'll take care of that tomorrow.  Journal.pm got a
	lot bigger as I started rigorously checking for problems and doing
	things properly (like updating the Fsdb).
	
	InControl no longer talks to Presto (so the appropriate code can be
	removed from Presto).  It connects to Lento and asks it to do
	things.  The practical upshot of this is that InControl doesn't
	block the removal/insert of Presto nor the startup of the client,
	and InControl can be run from a system other than the one that
	Lento is running on.  InControl now supports a --port option. 
	InControl supports the ``release'' command, which asks Lento to ask
	Presto to send journal pages now rather than later.
	
	Lento, if not running as a server (ie, not listening on port 2222),
	listens on port 3333.  Thus, you can point InControl at either the
	server or the client, even if they're on the same machine. 
	Helpful.
	
	Added some more Fso methods to grab data from Fsos in a more sane
	object-oriented fashion.  Worship me.  Added Fsdb->RenameFso and
	Fso->rename which do as you might expect.
	
	I changed the way that IRPC->handlerequest and IRPC->handlereply
	operate to be something more closely approaching sanity.  No more
	shifting a reference off of the argument stack and then popping
	arguments off of the dereferenced reference.  Arguments are now
	passed directly to the completion routine, just pop/shift them off
	as normal.
	
	When new files/directories are installed on the client, the parent
	directory's mtime is noted and restored, so that the directory
	doesn't lose the correct mtime.
	
	CML, most notably CML::Shipping, was fleshed out and now does the
	Right Thing(tm).  It properly handles failed reintegration,
	requests to reintegrate while already reintegrating, and requests
	to append while reintegrating.
	
	Fixed some Volume/mountpoint issues, and startup issues relating to
	them.  Mountpoints weren't been properly stored, and there was a
	typo in the retrieval function.
	
	Next on the to-do list: a brief rendezvous with Reintegrate.pm to
	make it update the Fsdb, and then backfetching.

1999-04-14 08:32  pschwan

	* lento/Lento/: Cache.pm, Fsdb.pm: 
	Made the Fsdb only do what's appropriate on startup for different
	values of $::runserver.  Fixed a few mtime/atime bugs in Cache.pm,
	fixed the problem of directory times changing when their contents
	are changed.

1999-04-12 20:38  braam

	* lento/Lento/CML.pm, lento/Lento/Fsdb.pm, lento/Lento/Fso.pm,
	lento/Lento/Intermezzo.pm, lento/Lento/Journal.pm,
	lento/Lento/Reintegrate.pm, lento/Lento/Service/Connection.pm,
	lento/Lento/Service/Upcall.pm, presto/dir.c, presto/super.c: Fixes
	to get things going.

1999-04-12 15:29  pschwan

	* lento/: incontrol, lento, Lento/CML.pm, Lento/Cache.pm,
	Lento/Downcall.pm, Lento/Fsdb.pm, Lento/Fso.pm, Lento/InControl.pm,
	Lento/Intermezzo.pm, Lento/Reintegrate.pm, Lento/Volume.pm,
	Lento/Service/Connection.pm, Lento/Service/TCP/FileServer.pm: 
	Much hacking

1999-04-09 15:17  braam

	* lento/: incontrol, Lento/Debuggable.pm, Lento/Downcall.pm:
	Downcalls now work.  You can try it with incontrol which allows you
	to flush attributes and data bits from the status.  It can also
	revoke permits.  What is still missing is recursive revocation for
	volume subtrees.

1999-04-08 16:16  braam

	* lento/incontrol, lento/lento, lento/Lento/Debuggable.pm,
	lento/Lento/Downcall.pm, lento/Lento/Psdev.pm, presto/intermezzo.c,
	presto/psdev.c, presto/linux/presto.h,
	presto/linux/presto_upcall.h: Added a downcall mechanism and fixed
	up LOG.

1999-04-07 19:16  braam

	* lento/: intercon, lento, Lento/Debuggable.pm, Lento/Downcall.pm,
	Lento/Fsdb.pm, Lento/Intermezzo.pm, Lento/Reactor.pm,
	Lento/Service/Upcall.pm: little issues.

1999-04-07 17:25  pschwan

	* lento/: incontrol, Lento/Service/Connection.pm: incontrol is
	fixed

1999-04-07 16:47  braam

	* lento/Lento/InControl.pm: addedd InControl

1999-04-07 16:43  braam

	* lento/: incontrol, intercon, lento, Lento/Debuggable.pm,
	Lento/Fso.pm, Lento/IRPC.pm, Lento/Intermezzo.pm, Lento/Server.pm,
	Lento/Vldb.pm, Lento/Volume.pm, Lento/Service/Connection.pm,
	Lento/Service/Upcall.pm: varia...

1999-04-07 16:27  pschwan

	* lento/Lento/Service/Connection.pm: FD

1999-04-07 15:12  pschwan

	* lento/Lento/Reactor.pm: oops

1999-04-07 15:04  pschwan

	* lento/lento: f

1999-04-05 15:38  braam

	* presto/: dir.c, inode.c, intermezzo.c, psdev.c, upcall.c,
	linux/presto.h, linux/presto_upcall.h: This has been lingering in
	my sandbox for a while:
	
	 - volume root awareness for presto
	 - fix to notify_change (chmod and friends).
	 - permit upcalls are now made (and $self->complete(0) is my fake
	   reply until later this evening.

1999-03-30 11:10  pschwan

	* lento/: incontrol, lento, Lento/Cache.pm, Lento/Fso.pm,
	Lento/Intermezzo.pm, Lento/Journal.pm, Lento/Psdev.pm,
	Lento/Reactor.pm, Lento/Volume.pm, Lento/Service/Acceptor.pm,
	Lento/Service/Timer.pm, Lento/Service/Upcall.pm: 
	mostly timers, a small cache speedup in fill_dir.  added two test
	timers to lento.pl that run at 20 and 45 second intervals, but do
	nothing more than print a debug message.

1999-03-28 14:17  pschwan

	* lento/: incontrol, Lento/ACT.pm, Lento/CML.pm, Lento/Cache.pm,
	Lento/Fsdb.pm, Lento/IRPC.pm, Lento/Intermezzo.pm,
	Lento/Journal.pm, Lento/Psdev.pm, Lento/Reactor.pm,
	Lento/Reintegrate.pm, Lento/Server.pm, Lento/ServerSemantics.pm,
	Lento/Serverdb.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/Service/Acceptor.pm, Lento/Service/Connection.pm,
	Lento/Service/Upcall.pm, Lento/Service/TCP/FileServer.pm: 
	IRPC now replies properly when the remote end tries to execute a
	method that doesn't exist; with the exception of icontrol (which I
	modified), the other end doesn't yet check for this return value.
	
	I changed a lot of debug levels to 0--most debugging information is
	now only triggered if $::global_debug is true.
	
	Reintegration of mkdir and rmdir commands works, at least in the
	Potemkin case (RPCs not tested, but should need only minor
	debugging).  The rest will follow shortly, but I have some cleanup
	of the reintegration code path to do before I start the rest.
	
	Fixed a race condition that resulted in a deadlock in certain cases
	in the Upcall/Intermezzo code.

1999-03-26 11:53  pschwan

	* lento/Lento/Fso.pm: 
	Wow, I only changed _one_ file?  Boy, I guess I was right, that
	didn't take too much fixing.
	
	The RPC side of things is now working--I fetched files and
	directories from CMU while sitting in the Ottawa apartment, I'm
	happy.
	
	I haven't started to make the changes that you mentioned in your
	latest email, but I do agree with you for the most part.  Is it
	really necessary to have a Cache object per-FSO, or will some
	clearly-separated methods suffice?  I really start to worry about
	the overhead of essentially doubling the number of objects within
	our system.
	
	Anyways, I'll make a few of those changes, and then I'll probably
	attack reintegration; once the pages are fetched,
	mkdir/rmdir/create come along more or less free, and then close... 
	Am I correct in thinking that you're doing Versioning, and that
	most of the Callback/Permit code is written already?

1999-03-26 07:49  braam

	* lento/incontrol: Farewell syncrep.

1999-03-26 00:30  pschwan

	* lento/: lento, Lento/Cache.pm, Lento/Fso.pm, Lento/IRPC.pm,
	Lento/Intermezzo.pm, Lento/Reactor.pm, Lento/Volume.pm,
	Lento/testclient.pl, Lento/testserv.pl,
	Lento/Service/Connection.pm, Lento/Service/Upcall.pm,
	Lento/Service/TCP/FileServer.pm: 
	Quite a lot of stuff, really.
	
	Reading directories and files appears to work using Potemkin.  I
	haven't tried anything remotely complicated, so I wouldn't be
	surprised if it breaks, but it appears to work for the most part. 
	I haven't tested the RPC-using functions yet, but they should work
	with a half hour of testing a debugging or so.
	
	This checkin brings a lot of change to the code flow of Intermezzo,
	especially in Potemkin.  With Potemkin, most of the work is now
	done in Intermezzo.pm, with some small calls into the Cache and FSO
	layer.
	
	In the RPC-using code, Upcall calls Intermezzo which calls
	getfile/dir on the FSO object on the client; that FSO object sends
	a request to the server to execute a method in FileServer (which is
	suddenly a -very- small file).	FileServer then finds and calls the
	appropriate FSO on the server side, which takes care of the sending
	of the file.  Similarly, the FSO on the client is responsible for
	handling the incoming data and writing to the file.  So, in
	essence, once the transaction is setup, it is an FSO-to-FSO
	transfer.
	
	This differs greatly from the previous model of ``only Cache.pm can
	touch the filesystem''.  While I _really_ loved that idea, it
	doesn't seem totally feasible while still doing things in an
	intelligent fashion.  In order to do what we were doing before, we
	had to read the entire file into memory and then call
	Cache::fill_file.  This, for obvious reasons that we've already
	agreed upon, is a Bad Idea.  So, for the moment, all I use within
	Cache is Cache::install_dir and Cache::install_file when processing
	an OpenDir request.
	
	Comments requested, at least on the Potemkin code.  Fso.pm is
	commented a bit, and I've kept the code flow logical.  I should be
	able to test the RPC bits very soon.

1999-03-25 15:40  braam

	* lento/: incontrol, Lento/IRPC.pm, Lento/testserv.pl,
	Lento/Service/Connection.pm: Finally I got to hack for an hour or
	so:   - added a handler for InControl to the testserver .. and ..  
	 - began incontrol with an impressive echo function    - testserver
	can now serve simultaneous incontrols and fetches!    - added a
	SYNC state to the connection and wrote an appropriate	  
	acceptreq function.  Getsync rep uses this to retain control	 
	over the connection.
	
	- Peter -

1999-03-17 17:14  pschwan

	* lento/Lento/: IRPC.pm, testclient.pl, testserv.pl,
	Service/Connection.pm: 
	You can now pass an optional length to sendbuf (as well as to
	senddata) to limit the sending to a certain amount of a buffer.  At
	some point I'm going to make sendbuf() stop retrying until it sends
	an entire buffer, instead returning the amount it was able to send
	and leaving it up to the calling function to retry (otherwise, it
	blocks in that function, of course).
	
	The test server and client now support both file and directory
	fetching with one limitation--if a directory contains a symlink
	that points to a nonexistant (or unreadable) file/directory, it is
	not printed in the directory listing.  I am not concerned about
	this limitation, I will deal with it when I write the real
	fileserver.

1999-03-15 08:36  pschwan

	* lento/Lento/: IRPC.pm, Intermezzo.pm, testclient.pl, testserv.pl,
	Service/Connection.pm: 
	testserv starts a server that is currently capable of sending
	files.
	
	testclient --file <foo> --servername <bar> fetches remote file foo
	from server bar and dumps it to the screen.
	
	added endoffdata stuff to Connection, fixed what was in IRPC. 
	Removed 'use IntermezzoSrv' from Intermezzo.pm

1999-03-14 22:06  braam

	* lento/: intercon, Lento/IRPC.pm, Lento/Version.pm,
	Lento/echo.idl, Lento/sggen.pl, Lento/sggen.pm, Lento/sglib.pm,
	Lento/testclient.pl, Lento/testserver.pl,
	Lento/Service/RPCClient.pm, Lento/Service/intermezzosrv.idl:
	cleanup.

1999-03-14 22:00  braam

	* lento/Lento/: ACT.pm, echo.pl, Service/Connection.pm,
	Service/RPCClient.pm: Back to Storable::nfreeze

1999-03-14 19:12  pschwan

	* lento/: lento, Lento/Cache.pm, Lento/Fsdb.pm, Lento/Fso.pm,
	Lento/Intermezzo.pm, Lento/Reactor.pm, Lento/Reintegrate.pm,
	Lento/Server.pm, Lento/Serverdb.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/sggen.pl, Lento/Service/Acceptor.pm,
	Lento/Service/RPCClient.pm, Lento/Service/Upcall.pm,
	Lento/Service/TCP/FileServer.pm: much broken code

1999-03-14 16:25  braam

	* lento/Lento/: echo.idl, sggen.pl, sggen.pm, sglib.pm,
	testclient.pl, testserver.pl, Service/RPCClient.pm: a days hacking

1999-03-14 13:45  pschwan

	* lento/Lento/Service/intermezzosrv.idl: 
	early fileserver idl

1999-03-14 13:36  pschwan

	* lento/Lento/: ACT.pm, Service/Connection.pm: 
	Connection.pm uses tokens now, ACT supports token deletion

1999-03-14 13:36  pschwan

	* lento/Lento/: sggen.pl, sggen.pm: foo

1999-03-13 01:31  pschwan

	* lento/Lento/ClassWrapClnt.pm: 
	yet another thing we don't need

1999-03-13 01:28  pschwan

	* lento/Lento/ServerSemantics.pm: 
	fixed a bug in add_volume; made 'strict' work

1999-03-13 01:14  pschwan

	* lento/Lento/Lento.pm: 
	I don't _think_ this is necessary anymore

1999-03-13 01:14  pschwan

	* lento/Lento/Service/ClassConnector.pm: 
	There's not much need for this yet...

1999-03-13 01:14  pschwan

	* lento/Lento/Service/RPCClient.pm: 
	made 'strict' work

1999-03-13 01:14  pschwan

	* lento/Lento/Psdev.pm: 
	fixed typo, made 'strict' work

1999-03-12 19:27  pschwan

	* lento/Lento/: ACT.pm, Fsdb.pm, echo.pl, sggen.pl, sggen.pm,
	Service/Connection.pm: 
	More code, but a few loose ends... ACT.pm is responsible for
	mapping an object to an integer completion token and resolving it
	in the other direction.  It doesn't currently provide any mechanism
	for destroying a token, but that's forthcoming and trivial.  The
	stub code generates and uses the tokens, which is nice, though I've
	not tried resolving and using them just yet.  Next commit.  sendbuf
	takes an additional argument now, by the way, the token.  It's not
	clear whether sendbuf should put this in the hdr or if it should be
	put into the hdr beforehand.  Not sure... perhaps I will change it.

1999-03-12 16:06  braam

	* doc/message.sgml: beginning of the InterMezzo encyclopedia

1999-03-12 16:06  braam

	* lento/Lento/: echo.pl, sggen.pl, sggen.pm, Service/Connection.pm:
	clients and servers: ready to go?

1999-03-12 16:06  braam

	* lento/: incontrol, Lento/echo.idl: bleh

1999-03-09 13:18  braam

	* lento/Lento/Service/: Connection.pm, RPCClient.pm: fixes from
	last night.

1999-03-08 17:13  braam

	* lento/Lento/Service/: Acceptor.pm, Connection.pm, RPCClient.pm:
	Integration of my and Phil's RPC work.

1999-03-01 15:55  pschwan

	* lento/: lento, Lento/ClassWrapClnt.pm, Lento/Intermezzo.pm,
	Lento/PlComm.pm, Lento/Volume.pm, Lento/echo.pl, Lento/sggen.pm,
	Lento/Service/AsyncIO.pm, Lento/Service/ClassConnector.pm,
	Lento/Service/Connection.pm, Lento/Service/RPCClient.pm: 
	Lots of stuff--I sort of have an echo server/client working... sort
	of.  After the first packet is sent by the client, the server gets
	it and properly handles it, sends back the reply, all cool, the
	client does the Right Thing, and everyone is happy.  Afterwards,
	however, the server gets a really strange packet header that the
	client _should not_ be sending.  I can't tell whether the client
	actually sent it or whether the server is hosed.
	
	As it turns out, I almost certainly won't have a pass to the
	conference, so I don't know whether I'll see you before lunch on
	thursday.  We're at the Crown Plaza hotel, room 715 (ironic, eh?),
	but we're often dialed up on it.  If that's the case, leave a
	message at the desk or email us.  Perhaps you can see where I'm
	going wrong with the server/client.  I'll take another look as time
	permits.
	
	I made quite a few changes to sggen.pm, which is what I presume is
	going to become Service/RPCServer.pm.  It really should, anyways,
	as that seems to be its entire function.  let me know.	For now,
	it's set up to be an Echo server.  To play with echo.pl, just give
	it either --runserver or --servername <server>.  It knows what to
	do from there.	Give it some input, and watch it be magically
	echoed!

1999-02-25 16:18  braam

	* lento/Lento/: sggen.pl, sggen.pm, Service/Acceptor.pm,
	Service/Connection.pm, Service/RPCClient.pm: Phil:  do perl
	sggen.pl > out.pm and study out to see what you get (start at the
	bottom).

1999-02-24 19:09  braam

	* lento/Lento/: sggen.pl, sggen.pm, Service/Acceptor.pm,
	Service/Connection.pm: Added stub generator and further work on the
	Connections.

1999-02-23 16:57  braam

	* lento/Lento/Service/: Acceptor.pm, ClassConnector.pm,
	Connection.pm: added the connection stuff, etc

1999-02-13 01:37  pschwan

	* lento/: lento, Lento/CML.pm, Lento/Cache.pm,
	Lento/ClassWrapClnt.pm, Lento/Debuggable.pm, Lento/Fsdb.pm,
	Lento/Fso.pm, Lento/Intermezzo.pm, Lento/Journal.pm,
	Lento/Lento.pm, Lento/PlComm.pm, Lento/Psdev.pm, Lento/Reactor.pm,
	Lento/Reintegrate.pm, Lento/Vldb.pm, Lento/Volume.pm,
	Lento/Service/Acceptor.pm, Lento/Service/AsyncIO.pm,
	Lento/Service/ClassConnector.pm, Lento/Service/Upcall.pm,
	Lento/Service/TCP/FileServer.pm: 
	Phew.  Much hacking.  Everything except close() works now, and it
	is far cleaner.  You'll note that there's some AsyncIO stuff here,
	but kindly ignore it--I've already decided that there's a simpler
	way to do things, and the one method that I started implementing
	asynchronously will be split out--don't waste your time fixing it.
	
	I had to make a fake server/vol/vldb entry for Potemkin.  It's done
	in lento.pl and shouldn't cause a problem.
	
	There were a couple of nasties with the connect-on-demand.  It's
	been fixed, the client now properly connects after the first
	request.
	
	Journal.pm now processes kernel journal logs and, based on the
	path, puts the records in the appropriate CML.	For now, the CMLs
	are dispatched to the appropriate server as soon as the kernel
	journal log is finished being paged.  This will obviously change
	when the aging goo is done.  As noted in comments, it can be
	cleaned up a bit and integrated more tightly into the unpack method
	if desired, reducing memory usage.
	
	I fixed n inconsistencies in the use of print, printme, printdb,
	DEBUG, etc.  Our code is prettier.  Fixed a very bad bug in the
	Journal unpacking that was making file creation explode, and any
	subsequent unpackings, leading to a crash shortly thereafter.
	
	I probably did a bunch of other stuff too (it's a 1097 line
	patch/commit), but I forget.  Oh well.	I think it works.

1999-02-11 15:09  braam

	* lento/: lento, Lento/ClassWrapClnt.pm, Lento/Journal.pm,
	Lento/Reactor.pm, Lento/Service/Upcall.pm: turn off all debugging
	messages and fix one bug.

1999-02-11 12:10  braam

	* config.mk, lento/lento, lento/Lento/ClassWrapClnt.pm,
	lento/Lento/Fsdb.pm, lento/Lento/Fso.pm, lento/Lento/Psdev.pm,
	lento/Lento/Reactor.pm, lento/Lento/Server.pm,
	lento/Lento/Serverdb.pm, lento/Lento/Service/Acceptor.pm,
	lento/Lento/Service/Upcall.pm: more patches

1999-02-10 20:53  braam

	* presto/: dir.c, inode.c, intermezzo.c, journal.c, super.c,
	linux/presto.h: changes for permits, notify_change, rename, link
	and a bug fix.

1999-02-10 20:53  braam

	* lento/: lento, Lento/CML.pm, Lento/Cache.pm, Lento/Callback.pm,
	Lento/Debuggable.pm, Lento/Fsdb.pm, Lento/Fso.pm,
	Lento/Intermezzo.pm, Lento/Journal.pm, Lento/Reactor.pm,
	Lento/Server.pm, Lento/ServerSemantics.pm, Lento/Serverdb.pm,
	Lento/Vldb.pm, Lento/Volume.pm, Lento/Service/Acceptor.pm,
	Lento/Service/Upcall.pm, Lento/Service/TCP/FileServer.pm: The
	beginning of the rest.

1999-02-02 09:13  pschwan

	* lento/: lento, Lento/Acceptor.pm, Lento/ClassWrapClnt.pm,
	Lento/ClassWrapSrv.pm, Lento/Fsdb.pm, Lento/Intermezzo.pm,
	Lento/Journal.pm, Lento/Maestro.pm, Lento/MaestroSrv.pm,
	Lento/PlComm.pm, Lento/Psdev.pm, Lento/Reactor.pm,
	Lento/Reintegrate.pm, Lento/Upcall.pm, Lento/maestro_client.pl,
	Lento/maestro_srv.pl, Lento/Service/Acceptor.pm,
	Lento/Service/ClassConnector.pm, Lento/Service/Upcall.pm,
	Lento/Service/TCP/FileServer.pm: 
	A large rename and restructuring operation, which completes most of
	what we talked about on Sunday.  When you get back, I'll explain
	why I didn't change the Reactor model the way we had planned, at
	least not just yet.
	
	I added some stubs for reintegrating create and unlink, but they're
	not working yet.

1999-01-31 16:15  braam

	* lento/: lento, Lento/Debuggable.pm, Lento/Maestro.pm,
	Lento/Reactor.pm: Minor cleanups regarding debugging and naming.

1999-01-30 23:40  pschwan

	* lento/: lento, Lento/Fsdb.pm, Lento/Intermezzo.pm,
	Lento/Journal.pm, Lento/Maestro.pm, Lento/PlComm.pm,
	Lento/Reactor.pm, Lento/Upcall.pm, Lento/maestro_client.pl: 
	The journal page reintegration now works for rmdir and mkdir, the
	rest should follow fairly soon.  I'm implementing a pile of quick
	hacks to make this work, but once we have something that operates
	properly, I will set about the task of cleaning it up and
	implementing proper states.  I'm going to see about getting a white
	board tomorrow, as it's starting to get painfully complex, and one
	would really help.

1999-01-29 19:22  pschwan

	* lento/: lento, Lento/Acceptor.pm, Lento/ClassWrapClnt.pm,
	Lento/ClassWrapSrv.pm, Lento/PlComm.pm, Lento/Reactor.pm,
	Lento/maestro_client.pl: 
	Oh my goodness!  It works(ish)!  It is time for me to sit down with
	a piece of paper and redesign the mechanism, then go see a good
	movie.	When I return, I will implement my awesome vision and bring
	my dream to life.

1999-01-29 16:08  pschwan

	* lento/Lento/Debuggable.pm: 
	oops, we do need this, I misread :)

1999-01-29 13:13  braam

	* Configure, config.mk: Fix for Phil.

1999-01-29 13:00  pschwan

	* lento/Lento/Debuggable.pm: 
	gone.

1999-01-29 13:00  pschwan

	* lento/: lento, Lento/Acceptor.pm, Lento/Cache.pm,
	Lento/ClassWrapClnt.pm, Lento/ClassWrapSrv.pm, Lento/Fsdb.pm,
	Lento/Intermezzo.pm, Lento/Journal.pm, Lento/Maestro.pm,
	Lento/MaestroSrv.pm, Lento/PlComm.pm, Lento/Psdev.pm,
	Lento/Reactor.pm, Lento/Upcall.pm, Lento/maestro_client.pl: 
	The first wave of changes: The communications between server and
	client is coming along but requires another diligent hacking
	session.  Perhaps I'll have something rudimentary by the end of the
	weekend.

1999-01-29 12:59  braam

	* presto/: cache.c, dir.c, intermezzo.c, journal.c, psdev.c,
	super.c, upcall.c, linux/presto.h, linux/presto_upcall.h: add
	i_version and i_dev to upcall for identification of files.

1999-01-29 09:59  pschwan

	* lento/lento: 
	I just removed a blank line to make sure that commits work and that
	the commit messages are sent to us.

1999-01-01 11:35  braam

	* config.mk, lento/lento, lento/Lento/Fsdb.pm,
	lento/Lento/Journal.pm, lento/Lento/Maestro.pm,
	lento/Lento/Upcall.pm, lento/Lento/maestro_srv.pl, presto/dir.c,
	presto/file.c, presto/inode.c, presto/intermezzo.c,
	presto/journal.c, presto/psdev.c, presto/redo, presto/super.c,
	presto/upcall.c, presto/linux/preso_psdev.h, presto/linux/presto.h:
	first version with journalling coming to lento

1998-12-14 13:06  braam

	* COPYING, Configure, Makefile, config.in, config.mk,
	lento/Lento/Cache.pm, lento/Lento/Debuggable.pm, lento/lento,
	lento/Lento/Fsdb.pm, lento/Lento/Fso.pm, lento/Lento/Intermezzo.pm,
	lento/Lento/Journal.pm, lento/Lento/Lento.pm,
	lento/Lento/Maestro.pm, lento/Lento/Upcall.pm,
	lento/Lento/maestro_srv.pl, presto/Makefile, presto/cache.c,
	presto/dcache.c, presto/dir.c, presto/file.c, presto/inode.c,
	presto/intermezzo.c, presto/journal.c, presto/psdev.c,
	presto/super.c, presto/sysctl.c, presto/upcall.c,
	presto/linux/preso_psdev.h, presto/linux/presto.h,
	presto/linux/presto_psdev.h, presto/linux/presto_upcall.h: first
	checkin of InterMezzo

