From Skyrope:
The Skyrope work attempted to improve on the end user experience of using
OpenAFS in the following ways:
* Obtain tokens using renewable Kerberos 5 tickets in order to
reduce the need for end users to renew expired tokens
* Monitor the list of IP Addresses in order to detect changes
in the network configuration which might affect the reachability
of cells or the state of the AFS Client Service. When cells
are newly reachable, obtain tokens for the cells. If the AFS
Client Service is not running, start it. If tokens are expiring
attempt to renew them.
* Use KDC probes to detect the accessibility of realms/cells. If
the KDC is not reachable, do not prompt the end user for a
username and password. (fs probe is not implemented on windows)
* Automatically obtain tokens using the Windows Logon Session
Kerberos credentials (if available)
* Allow tokens for multiple cells to be obtained by using the
same Kerberos 5 tickets. (no UI yet implemented)
* Perform drive mapping persistance by tracking it within the
afsdsbmt.ini file instead of relying on the Windows Shell
to persist the state.
* Add new afscreds.exe command line options and change the
default set used when creating the "AFS Credentials" shortcut
in the Start Menu->Programs->Startup folder.
From MIT:
* Auto-detection of loopback adapters. Use "AFS" as the netbios
name when a loopback adapter is installed.
* Support for responding to power management events. Used to
flush the cache when the machine is about to suspend, hibernate,
or shutdown
* Documentation of Registry entries
* Support for Extended SMB Requests
* Beginning of support for true Event Log reporting from a
message database
* Hidden Dot File support (configured via the HideDotFiles
registry option)
* Configurable Max number of Multiplexed Sessions (MaxMpxRequests
registry option)
* Configurable Max MTU size (RxMaxMTU registry option)
* Configurable Jumbogram support (RxNoJumbo registry option)
* Configurable Max number of Virtual Connections per Server
(MaxVCPerServer registry option)
* Win32 DNS API support
* Addition of SMB_ATTR_xxxx defines for use instead of hex numbers
* A variety of heap access and resource deallocation errors corrected
in the SMB code
* Support for recursive directory creation
* Modifications to the en_US version of the client configuration
dialog (need to port to other languages)
Notes on the current check-in:
* The KfW code will always be used when installed on the machine.
This code only supports Krb5 and will not work with Krb4 only
realms. A registry flag indicating whether or not KfW should be
used if found needs to be added.
* afscreds.exe needs to have a registry entry created to control
the parameter list it should be started with. There should be
a dialog to control this in the installer and within afscreds.exe
* The MIT method of auto-assigning the mount-root and the netbios
name is in conflict with the morgan stanley submissions in some
parts of the code. If you are using the loopback adapter with
this code both the "NetbiosName" = "AFS" and "Mountroot" = "/afs"
registry options must be specified. This will be fixed in coming
days.
In discussions with Andrei Keis at Morgan Stanley it has become clear
that the NBT registry parameter which disables the use of port 445
should only be used on Windows 2000.
(despite just committing a leak fix) we can no longer find a kernel where this is needed so we'll leave it in the cvs history but revoke it. it may have been a "special" kernel
required by linux-sysname-list-sys-links-resolve-dentry-20031109
eithout this, if you're in a directory that the second or later entry in a
sysname list resolved to, pwd returns ESTALE. force the true path to have its
dentry cached.
* cm_conn.c: assume that if all of the servers for a cell are DOWN
that there is NOSUCHVOLUME. We can't return TIMEDOUT because
this assumes there is a server which is up and the windows shell
will in turn continue to try to reach it for several minutes on
each refresh. Of course, each refresh occurs more frequently
than the timeouts.
We can't return ALLOFFLINE because that in turn results in
an attempt to cm_ForceUpdateVolume() will a NULL (cm_fid_t *).
That in turn causes a null reference and a crash.
* cm_volume.c: place a check in cm_ForceUpdateVolume() to return
without performing its job if there is no (cm_fid_t *) value.
Unfortunately, this in a ALLOFFLINE situation places the
service into an infinite loop.
Question: why is cm_ForceUpdateVolume() ever being called with
a NULL parameter for the (cm_fid_t *)?
* cm_smb.c: change the NTStatus for CM_ERROR_NOIPC to Remote
Resources instead of Access Denied.
* cm_buf.c: add a debugging statement
From Rob Murawski: This is a diff with the changes we talked about for
making a separate section for the SDK files. It is not installed by
default, unless the SDK files already exist. (To keep them consistent
on the machine)
Also, a fix to the ShouldClientInstall function to properly handle
downgrades.
To do list:
* remove /wizard from afssvrcfg.exe shortcuts
* add a "runonce" for afssvrcfg.exe /wizard when the Server is
installed
* enforce a restriction of no Freelance mode when the Server
is installed
* enforce a requirement of the Client install when the Server
is installed
* add a control panel shortcut to afssvrcfg.exe
* remove "recommended" tag from the AFS Server option
>>>>>>>>>>>>>>>>>>>>>
This is everything we talked about, plus:
1) Fixes the installer so re-installation behaves as expected.
All existing settings are preserved. (With the exception of what
is modifiable during install. The cell name is prepopulated, but
the user CAN change it)
2) Likewise, an upgrade will retain previous settings. (There
might be a point from which you cannot upgrade, i.e., from IBM
3.4 or something)
3) Variables named consistently, more code left out if NSIS 2.0b4.
-Rob
Murawski's daily patch for NSIS:
* user selectable registry settings
* generated files placed in $(OUT) tree
* installer produced in $(DEST) tree
* auto-detection of previous installation
* better naming to distinguish build date and Release vs Debug
tal_string defines three types: String, Ansi, Unicode
and provides functions to convert between them. The
initial problem with this module was a lack of consistent
memory allocation. The secondary problem was incorrect
conversion of between string types.
Remove extraneous reference to APPSVER variable. This might have
been an attempt at turning on debug info for the .NET compiler
for non-debug builds. The debug builds already have debug info
turned on.