2009-08-26 22:32:31 +01:00
|
|
|
|
Since 1.5.61
|
|
|
|
|
* IMPORTANT: New support for DCE RPC Services: SRVSVC and WKSSVC.
|
|
|
|
|
No longer will browsing \\AFS produce truncated share names.
|
|
|
|
|
|
|
|
|
|
* Registry specified server preferences did not result in
|
|
|
|
|
the CM_SERVERFLAG_PREF_SET flag being applied to the
|
|
|
|
|
cm_server_t object.
|
|
|
|
|
|
|
|
|
|
* Avoid unnecessary DNS lookups of share names as cells
|
|
|
|
|
when it is known that the name cannot be a cell name.
|
|
|
|
|
Any name that does not contain a dot is skipped.
|
|
|
|
|
|
|
|
|
|
* When processing Dfs Referral requests, do not return an
|
|
|
|
|
error if the server is down or busy; if the volume is
|
|
|
|
|
offline; the cell vldb cannot be reached; etc.
|
|
|
|
|
These paths are still \\AFS paths and so the client
|
|
|
|
|
should not be sent to search elsewhere for resolution.
|
|
|
|
|
|
|
|
|
|
* CRITICAL: Prevent the cm_Daemon thread from terminating when
|
|
|
|
|
the machine enters the suspend state. IF the cm_Daemon thread
|
|
|
|
|
dies, there is nothing to execute down server checks.
|
|
|
|
|
|
|
|
|
|
* Prevent use of smb_StartedLock before initialization which
|
|
|
|
|
can result in a panic in the lock package.
|
|
|
|
|
|
|
|
|
|
* Improve error checking in afslogon.dll in order to prevent
|
|
|
|
|
NULL pointer dereferences within GetLogonDomainOptions()
|
|
|
|
|
if the Lsa operations fail.
|
|
|
|
|
|
|
|
|
|
* Add support to the build system to automatically update
|
|
|
|
|
a Microsoft Symbol Store.
|
|
|
|
|
|
|
|
|
|
* Do not access the cm_conn_t after executing the cm_Analyze
|
|
|
|
|
loops. Doing so can result in an access to memory that has
|
|
|
|
|
been freed.
|
|
|
|
|
|
|
|
|
|
* CRITICAL: If a StoreData request offset is not aligned on the
|
|
|
|
|
buffer module blockSize, (offset % blockSize) bytes of dirty
|
|
|
|
|
data will not be written to the file server.
|
|
|
|
|
|
|
|
|
|
* CRITICAL: If a StoreData64 request is sent to a file server
|
|
|
|
|
that does not support large files (>2GB) and the client is
|
|
|
|
|
unaware that the server has no large file support, the first
|
|
|
|
|
chunksize worth of data will not be written to the file server.
|
|
|
|
|
This bug was introduced in 1.5.3. It affects all IBM AFS file
|
|
|
|
|
servers and all OpenAFS file servers older than 1.4.0.
|
|
|
|
|
|
2009-07-30 15:23:38 +01:00
|
|
|
|
Since 1.5.60
|
|
|
|
|
* If a file server becomes inaccessible while the cache manager has
|
|
|
|
|
dirty buffers to write, the afsd_service buf_IncrSync thread can
|
|
|
|
|
attempt to use 100% of the cpu.
|
|
|
|
|
|
|
|
|
|
* Fix the locking that protects the cm_cell_t lists
|
|
|
|
|
(all, name, id, free).
|
|
|
|
|
|
|
|
|
|
* Remove cm_cell_t objects from the name and id hash tables before
|
|
|
|
|
placing them on the free list.
|
|
|
|
|
|
|
|
|
|
* Fix "fs newcell" which was broken in 1.5.60.
|
|
|
|
|
|
|
|
|
|
* Do not attempt to synchronize dirty buffers if the associated
|
|
|
|
|
volume is known to be unavailable.
|
|
|
|
|
|
|
|
|
|
* Log to the Windows Event Log dirty buffers that cannot be written
|
|
|
|
|
during the shutdown process.
|
|
|
|
|
|
|
|
|
|
* Modify behavior of a Freelance mountpoint target that does not
|
|
|
|
|
specify a cell. Instead of assuming the target volume is in the
|
|
|
|
|
Freelance.Local cell, use the workstation "Cell" specified in the
|
|
|
|
|
registry. A mountpoint target of "#root.cell." will now mean the
|
|
|
|
|
root.cell volume in the workstation cell for the current session.
|
|
|
|
|
If the workstation cell changes from "athena.mit.edu" to
|
|
|
|
|
"andrew.cmu.edu", the referenced volume will also change without
|
|
|
|
|
requiring that the mount point targets be altered.
|
|
|
|
|
|
|
|
|
|
* Avoid false infinite loop errors when validating the cm_cell_t
|
|
|
|
|
free list during startup.
|
|
|
|
|
|
|
|
|
|
* Fix two more locations where xdr_free() should be used instead of
|
|
|
|
|
free() to permit a checked built of afsd_service.exe to work with
|
|
|
|
|
release builds of afsrpc.dll.
|
|
|
|
|
|
|
|
|
|
* Add cm_FindServerByUuid(). Re-implement RXAFS_InitCallBackState3()
|
|
|
|
|
to permit the server Uuid to be used to lookup the server object
|
|
|
|
|
and from that determine the cell. This permits callbacks that are
|
|
|
|
|
received from alternate addresses to be processed with a known server
|
|
|
|
|
object. Previously a request from an unknown server would clear all
|
|
|
|
|
callbacks from all cells.
|
|
|
|
|
|
|
|
|
|
* Fix a bug that prevented optimal performance when using a non-zero
|
|
|
|
|
value for 'daemonCheckVolCBInterval'. As a reminder, when
|
|
|
|
|
"daemonCheckVolCBInterval" is set to a non-zero value, all .readonly
|
|
|
|
|
volume callbacks are automatically renewed 90 minutes before their
|
|
|
|
|
expiration.
|
|
|
|
|
|
|
|
|
|
* Fix automatic ranking of vldb servers whose values are obtained from
|
|
|
|
|
the CellServDB file.
|
|
|
|
|
|
|
|
|
|
* Add logging for RX CALL DEAD errors which are generated if the remote
|
|
|
|
|
host is unreachable.
|
|
|
|
|
|
|
|
|
|
* Add failover for RX CALL TIMEOUT errors when the volume is readonly
|
|
|
|
|
or the call is to a vldb server.
|
|
|
|
|
|
|
|
|
|
* Add registry based cell search functionality to NetIdMgr,
|
|
|
|
|
afs_config.exe, and klog.exe.
|
|
|
|
|
|
|
|
|
|
* afsconf_GetCellInfo() has been modified to perform gethostbyname()
|
|
|
|
|
lookups on the host names in the CellServDB instead of using the
|
|
|
|
|
specified IP addresses. This provides aklog, pts, vos, etc. the same
|
|
|
|
|
CellServDB behavior that the Windows Cache Manager uses.
|
|
|
|
|
|
|
|
|
|
* Completely a behind the scenes change. The snprintf() routines have
|
|
|
|
|
been completely rewritten.
|
|
|
|
|
|
|
|
|
|
* When updating the stat cache entry callback of a .readonly object
|
|
|
|
|
from the volume group object, update the file server reference to
|
|
|
|
|
ensure it matches the most update to date callback.
|
|
|
|
|
|
|
|
|
|
* Add proper support for processing callbacks from multi-homed file
|
|
|
|
|
servers. Instead of comparing servers by cm_server_t pointer,
|
|
|
|
|
compare them by UUID when the UUID is known.
|
|
|
|
|
|
|
|
|
|
* During a shutdown short circuit the offline volume check daemon
|
|
|
|
|
functionality.
|
|
|
|
|
|
|
|
|
|
* Properly track link counts during cm_Link and cm_Unlink operations.
|
|
|
|
|
|
|
|
|
|
* Return the error code of RXAFS_FetchData / RXAFS_StoreData in
|
|
|
|
|
preference to an error code reported by rx_EndCall.
|
|
|
|
|
|
|
|
|
|
* Add "PerFileAccessCheck" registry value to permit testing against
|
|
|
|
|
experimental file servers that include per-file acl support. This
|
|
|
|
|
value is intentionally undocumented. It is not to be used by
|
|
|
|
|
production environment deployments.
|
|
|
|
|
|
|
|
|
|
* Log a warning to trace log if a volume group is marked as a DFS
|
|
|
|
|
File Set. The Windows OpenAFS client does not include DFS support.
|
|
|
|
|
|
|
|
|
|
* Fix a bug introduced in 1.5.60 that prevents the afs netidmgr
|
|
|
|
|
provider from obtaining tokens when referrals are in play.
|
|
|
|
|
|
|
|
|
|
* Add "fs chown" and "fs chgrp" commands to permit the owner and
|
|
|
|
|
group of objects stored in AFS to be set from Windows.
|
|
|
|
|
|
|
|
|
|
* Avoid performing background daemon operations when the machine is
|
|
|
|
|
going into suspend mode.
|
|
|
|
|
|
|
|
|
|
* Perform offline volume checks in most recently used order.
|
|
|
|
|
|
|
|
|
|
* Prevent crash when a data version for a cache object goes backwards.
|
|
|
|
|
|
|
|
|
|
* fs setquota, fs setcachesize, vos setfields, and vos create now
|
|
|
|
|
accept human readable orders of magnitude. (K, M, G)
|
|
|
|
|
|
|
|
|
|
* fs listquota fixed to permit large quota sizes to be displayed.
|
|
|
|
|
|
|
|
|
|
* rx packet resend and data packets sent counts were incorrect.
|
|
|
|
|
|
|
|
|
|
* Multi-thread safe library versions are now being generated and used.
|
|
|
|
|
mtafsubik.lib, mtafsutil.lib, mtafsvldb.lib, mtafsvol.lib.
|
|
|
|
|
|
|
|
|
|
* Microsoft SMB Redirector (mrxsmb.sys) support for ExtendedSessTimeout
|
|
|
|
|
values are now available on XP through Windows 7. Add functionality
|
|
|
|
|
to autodetect if such support is present on the machine. If so,
|
|
|
|
|
configure it if necessary and dynamically adjust the AFS Rx timeout
|
|
|
|
|
values accordingly.
|
|
|
|
|
|
|
|
|
|
* Correct another race condition in the Rx library that could result
|
|
|
|
|
in an unexpected panic while freeing the Rx call iovq.
|
|
|
|
|
|
2009-06-08 04:34:28 +01:00
|
|
|
|
Since 1.5.59
|
|
|
|
|
* A fix to the pioctl library to support drive substitution
|
|
|
|
|
to UNC paths.<2E> (SUBST <d:> <\\afs\cell\path>).
|
|
|
|
|
|
|
|
|
|
* On April 9th Microsoft released a Hot Fix for Windows Server 2003 SP2
|
|
|
|
|
that corrects a deadlock in the smb redirector and also adds new
|
|
|
|
|
functionality that permits the AFS SMB server to be given a longer
|
|
|
|
|
timeout than is normally the case. New functionality has been added
|
|
|
|
|
to configure these additional LanmanWorkstation\Parameter values.
|
|
|
|
|
(This functionality has been backported to XP SP3 and is scheduled
|
|
|
|
|
to be released on June 5th.)
|
|
|
|
|
|
|
|
|
|
* The BackConnectionHostNames registry value configuration was broken
|
|
|
|
|
when dynamic re-establishment of Netbios Name registrations was added.
|
|
|
|
|
Restore it.
|
|
|
|
|
|
|
|
|
|
* Hidden vos commands are revealed.
|
|
|
|
|
|
|
|
|
|
* If the "DisableLoopbackCheck" registry value is set, do not unset
|
|
|
|
|
it during the same service session.
|
|
|
|
|
|
|
|
|
|
* Reorganize code that prevents multiple Store operations to the same
|
|
|
|
|
File.
|
|
|
|
|
|
|
|
|
|
* Modify IsPathInAfs test in Explorer Shell Extension and fs.exe to
|
|
|
|
|
permit broken symlinks to be treated as being in AFS.
|
|
|
|
|
|
|
|
|
|
* Fix vos commands that output 64-bit integer values.
|
|
|
|
|
|
|
|
|
|
* Cygwin Import Libraries are provided in the SDK for all OpenAFS DLLs.
|
|
|
|
|
Permits building cygwin applications against OpenAFS libraries.
|
|
|
|
|
|
|
|
|
|
* OpenAFS Release Notes, Administrator Guide and User Guide now installed
|
|
|
|
|
as Windows HTML Help (.CHM) files.
|
|
|
|
|
|
|
|
|
|
* NSIS installer does a much better job of cleaning up files left
|
|
|
|
|
over from previous installs.
|
|
|
|
|
|
|
|
|
|
* Fix RT#124787, a race condition between "fs flush <dir>", "fs flushvolume",
|
|
|
|
|
or "fs flushall" and on-going directory operations that can result in
|
|
|
|
|
afsd_service.exe crashing.
|
|
|
|
|
|
|
|
|
|
* Add support for DNS SRV records in place of AFSDB records.<2E>
|
|
|
|
|
_afs3-vlserver._udp.<cellname>. Priority field is used.<2E>
|
|
|
|
|
Weight is currently ignored.
|
|
|
|
|
|
|
|
|
|
* Add a method of specifying Client CellServDB information within the
|
|
|
|
|
registry that can be used to either override the CellServDB file or
|
|
|
|
|
force the use of DNS lookups for a given cell.
|
|
|
|
|
|
|
|
|
|
The registry schema is as follows:
|
|
|
|
|
|
|
|
|
|
HKLM\SOFTWARE\OpenAFS\{Client,Server}\CellServDB\[cellname]\
|
|
|
|
|
"LinkedCell" REG_SZ "[cellname]"
|
|
|
|
|
"Description" REG_SZ "[comment]"
|
|
|
|
|
"ForceDNS" DWORD {0,1}
|
|
|
|
|
|
|
|
|
|
HKLM\SOFTWARE\OpenAFS\{Client,Server}\CellServDB\[cellname]\[servername]\
|
|
|
|
|
"HostName" REG_SZ "[hostname]" Default: [servername]
|
|
|
|
|
"IPv4Address" REG_SZ "[address]" Used only if gethostbyname() fails.
|
|
|
|
|
"IPv6Address" REG_SZ "[address]" <future>
|
|
|
|
|
"Comment" REG_SZ "[comment]"
|
|
|
|
|
"Rank" DWORD "0..65535" Default: 0
|
|
|
|
|
"Clone" DWORD "{0,1}" <future: server only>
|
|
|
|
|
"vlserver" DWORD "7003" <future>
|
|
|
|
|
"ptserver" DWORD ... <future>
|
|
|
|
|
|
|
|
|
|
ForceDNS is implied non-zero if there are no [servername]
|
|
|
|
|
keys under the [cellname] key. Otherwise, ForceDNS is zero.
|
|
|
|
|
If [servername] keys are specified and none of them evaluate
|
|
|
|
|
to a valid server configuration, the return code is success.
|
|
|
|
|
This prevents failover to the CellServDB file or DNS.
|
|
|
|
|
|
|
|
|
|
Only one of "HostName" or "IPv4Address" is required. "HostName"
|
|
|
|
|
is optional if [servername] is the host name.
|
|
|
|
|
|
|
|
|
|
* Extend registry based CellServDB functionality to
|
|
|
|
|
afsconf_GetCellInfo() interface used by aklog and many
|
|
|
|
|
other command line utilities.
|
|
|
|
|
|
|
|
|
|
* libafsconf.dll moved from OpenAFS\Client\Program to OpenAFS\Common
|
|
|
|
|
as it is now used by both client and server components.
|
|
|
|
|
|
|
|
|
|
Since 1.5.58
|
|
|
|
|
* PriorityClass of afsd_service.exe process raised to
|
|
|
|
|
"High" to match the priority of the system services
|
|
|
|
|
that are waiting for afsd_service.exe to respond.
|
|
|
|
|
Configurable using [TransarcAFSDaemon\Parameters]
|
|
|
|
|
DWORD "PriorityClass" value. (use values from Win32
|
|
|
|
|
API)
|
|
|
|
|
|
|
|
|
|
* Change error reporting of CM_ERROR_BADSHARENAME to
|
|
|
|
|
use the correct error (NTSTATUS_BAD_NETWORK_PATH).
|
|
|
|
|
The error we were sending would cause the smb
|
|
|
|
|
redirector to drop the connection.
|
|
|
|
|
|
|
|
|
|
* Change the error reporting of CM_ERROR_ALLOFFLINE
|
|
|
|
|
and CM_ERROR_ALLDOWN to return NTSTATUS_PATH_NOT_FOUND.
|
|
|
|
|
Previous we would return Bad Network Path which
|
|
|
|
|
would cause the smb redirector to cancel all file
|
|
|
|
|
handles on the same "share".
|
|
|
|
|
|
|
|
|
|
* A debug version of afsd_service.exe can now be used
|
|
|
|
|
with a release version of afsrpc.dll (or vice versa).
|
|
|
|
|
afsrpc.dll now implements and exports xdr_free().
|
|
|
|
|
|
|
|
|
|
* Removed all unprotected OutputDebugString() calls as
|
|
|
|
|
those calls can block for up to 10 seconds if there
|
|
|
|
|
is contention for the globally shared memory or if
|
|
|
|
|
the debugger fails to read data in a timely manner.
|
|
|
|
|
|
|
|
|
|
* Visual Studio 2008, WDK 6.1 and DDK 6.1 are now
|
|
|
|
|
supported for builds. The production releases still
|
|
|
|
|
use VS 2005.
|
|
|
|
|
|
|
|
|
|
Since 1.5.57
|
|
|
|
|
* Discovered that XP/2003 supports a variant on recvmsg
|
|
|
|
|
called WSARecvMsg. The input parameters are mostly
|
|
|
|
|
compatible with the Posix recvmsg. This will save
|
|
|
|
|
multiple memcpy() calls per received packet.
|
|
|
|
|
|
|
|
|
|
* Discovered that Vista/2008 supports a variant on
|
|
|
|
|
sendmsg called WSASendMsg. The input parameters
|
|
|
|
|
are mostly compatible with the Posix sendmsg. This
|
|
|
|
|
will save multiple memcpy() calls per sent packet.
|
|
|
|
|
|
|
|
|
|
* Exporting rx_ReadProc32, rx_WriteProc32 from afsrpc.dll
|
|
|
|
|
and utilizing rx_ReadProc32 from within the cache manager
|
|
|
|
|
as part of the FetchData operations. rx_ReadProc32 and
|
|
|
|
|
rx_WriteProc32 are optimized versions of rx_ReadProc and
|
|
|
|
|
rx_WriteProc for use when reading 32-bit integer values.
|
|
|
|
|
|
|
|
|
|
* The Network Identity Manager AFS provider now reports
|
|
|
|
|
progress events. These provide a better user experience
|
|
|
|
|
with Network Identity Manager 2.0.
|
|
|
|
|
|
|
|
|
|
* [RT 124293] A race condition exists which permits the
|
|
|
|
|
scp field of the an smb_fid_t object to become invalid
|
|
|
|
|
after a request on the smb_fid_t has begun. Remove the
|
|
|
|
|
race by protecting all access to the scp field with the
|
|
|
|
|
smb_fid_t mx mutex and obtaining a local reference on
|
|
|
|
|
the cm_scache_t object for the length of the request.
|
|
|
|
|
|
|
|
|
|
* [RT 124276] If the vldb is out of sync with the contents
|
|
|
|
|
of the file servers, afsd_service will retry too many
|
|
|
|
|
times when a file server reports a volume as not being
|
|
|
|
|
present. Now if the list reported by the vldb is the
|
|
|
|
|
same as the previously seen list, then the retry is
|
|
|
|
|
aborted.
|
|
|
|
|
|
|
|
|
|
* [RT 124276] Read-only volume failover was broken in
|
|
|
|
|
1.5.53 whenever accessing a volume results in VNOVOL or
|
|
|
|
|
VMOVED.
|
|
|
|
|
|
|
|
|
|
* [RT 124276] Prior to 1.3.70 the volume server reference
|
|
|
|
|
list was not reference counted and would be prematurely
|
|
|
|
|
freed while in use. When reference counting was added
|
|
|
|
|
in 1.3.70 a bug was introduced that could result in
|
|
|
|
|
service reference list corruption.
|
|
|
|
|
|
|
|
|
|
* Add Windows Application Event Log warning messages for
|
|
|
|
|
"Client SMB MPX value too large" and
|
|
|
|
|
"Client SMB Buffer Size too small".
|
|
|
|
|
|
|
|
|
|
* Renaming of files across directory boundaries would result
|
|
|
|
|
in an invalid handle error when attempting to access the
|
|
|
|
|
files after the move.
|
|
|
|
|
|
|
|
|
|
* Fix the handling of Tran2 Set Path Info RPCs. Do not fail
|
|
|
|
|
when a smb file descriptor cannot be found. The whole point
|
|
|
|
|
of using a Path Info function is because an smb file
|
|
|
|
|
descriptor wasn't allocated.
|
|
|
|
|
|
|
|
|
|
* More edge cases in which dynamic addition of Freelance
|
|
|
|
|
root.afs entries would get the wrong FID or where the
|
|
|
|
|
root.afs directory would not be refreshed.
|
|
|
|
|
|
|
|
|
|
* Buffer overflow could occur if the workstation cell name was
|
|
|
|
|
longer than 64 characters. Crashes could occur in
|
|
|
|
|
afscreds.exe, afslogon.dll, and afsd_service.exe.
|
|
|
|
|
|
|
|
|
|
* VNOSERVICE and VOFFLINE errors were leaking and were exposed
|
|
|
|
|
to the smb client.
|
|
|
|
|
|
|
|
|
|
* Improve consistency of the bad data version value used for
|
|
|
|
|
cm_scache fields.
|
|
|
|
|
|
|
|
|
|
* Log file server uuid values as part of the cm_server object
|
|
|
|
|
when available. Dump the cm_server object list in response
|
|
|
|
|
to "fs memdump".
|
|
|
|
|
|
|
|
|
|
* Optimize the performance of resetting access control lists
|
|
|
|
|
when tokens are set or removed.
|
|
|
|
|
|
|
|
|
|
* Fix vos.exe so that it can work with very large volume
|
|
|
|
|
identifiers
|
|
|
|
|
|
|
|
|
|
* Remove symlink recursion tests and increase max symlink count
|
|
|
|
|
to 64 from 16.
|
|
|
|
|
|
|
|
|
|
Since 1.5.56
|
|
|
|
|
* Undo the "UAC manifest fix" applied to afs_config.exe.
|
|
|
|
|
|
|
|
|
|
* Fixed some additional race conditions in the Rx library
|
|
|
|
|
|
|
|
|
|
* Ensure that Freelance allocation of vnodes follow
|
|
|
|
|
the AFS convention of odd vnodes are directories
|
|
|
|
|
and everything else is an even vnode.
|
|
|
|
|
|
|
|
|
|
* Add Freelance logic to mount point and symlink
|
|
|
|
|
evaluation functions.
|
|
|
|
|
|
|
|
|
|
* Enhance smb_ParseASCIIBlock() so that it can handle
|
|
|
|
|
all of the STRING formats defined by the CIFS Technical
|
|
|
|
|
Report 1.0.
|
|
|
|
|
|
|
|
|
|
* Validate the output of smb_ParseASCIIBlock() in all
|
|
|
|
|
callers. Return CM_ERROR_BADSMB if the STRING field
|
|
|
|
|
cannot be parsed. CM_ERROR_BADSMB will cause the
|
|
|
|
|
contents of the packet to be logged.
|
|
|
|
|
|
|
|
|
|
* If multiple SMB Raw Write operations were taking
|
|
|
|
|
place at the same time, there could be data corruption
|
|
|
|
|
because unique event objects were not generated for
|
|
|
|
|
each Netbios receive operation.
|
|
|
|
|
|
|
|
|
|
Since 1.5.55
|
|
|
|
|
|
|
|
|
|
* Fix a race in rxi_WriteProc which could result
|
|
|
|
|
in a freed or in use packet being passed to
|
|
|
|
|
rxi_PrepareSendPacket if the call is currently
|
|
|
|
|
in a transmit wait state. Passing a freed packet
|
|
|
|
|
will result in a panic. Passing an in use packet
|
|
|
|
|
might result in a call failure or perhaps data
|
|
|
|
|
corruption.
|
|
|
|
|
|
|
|
|
|
* Kerberos referrals broke the NIM AFS provider
|
|
|
|
|
logic for automated configuration of the workstation
|
|
|
|
|
cell with a new identity. Now if a referrals
|
|
|
|
|
response is returned, assume the cell belongs to the
|
|
|
|
|
new identify.
|
|
|
|
|
|
|
|
|
|
* The interface to buf_CleanAsync() and
|
|
|
|
|
buf_CleanAsyncLocked() has been changed to permit
|
|
|
|
|
errors to be propagated to the caller.
|
|
|
|
|
|
|
|
|
|
* During an enumeration of a directory, if the btree
|
|
|
|
|
has not yet been generated, return an error.
|
|
|
|
|
|
|
|
|
|
* When mapping CM_ERROR values to NTSTATUS values
|
|
|
|
|
do not treat 0 as an error.
|
|
|
|
|
|
|
|
|
|
* Avoid a cm_scache_t object reference count underflow
|
|
|
|
|
when renaming via the SMB interface.
|
|
|
|
|
|
|
|
|
|
* smb_IsMask() can be called with a non-8.3 input buffer.
|
|
|
|
|
Separate smb_IsMask() into smb_Is8Dot3Mask() for 8.3
|
|
|
|
|
input buffers and smb_IsMask() for non-8.3 input buffers.
|
|
|
|
|
|
|
|
|
|
* Add cm_buf_t error state to the "fs memdump" output.
|
|
|
|
|
|
|
|
|
|
* pioctl drive mapping checks need to take into account
|
|
|
|
|
Global Drive Mappings and SUBST assignments.
|
|
|
|
|
|
|
|
|
|
* Rename operations should not be permitted if the
|
|
|
|
|
destination name collides with an existing name that
|
|
|
|
|
differs only by case UNLESS the collision is the object
|
|
|
|
|
that is being renamed.
|
|
|
|
|
|
|
|
|
|
* Increase the maximum number of background daemon threads
|
|
|
|
|
to 64. Leave the default at 4.
|
|
|
|
|
|
|
|
|
|
* Set the FILE_UNICODE_ON_DISK flag when reporting the
|
|
|
|
|
file system characteristics.
|
|
|
|
|
|
|
|
|
|
* Report the maximum component name length as 255 even
|
|
|
|
|
for Unicode as part of the file system characteristics.
|
|
|
|
|
|
|
|
|
|
* Add RX debugging information to "fs memdump" output
|
|
|
|
|
in checked builds.
|
|
|
|
|
|
|
|
|
|
* Refcount the cm_server_t objects returned by
|
|
|
|
|
cm_FindServerByIP()
|
|
|
|
|
|
|
|
|
|
* Fix the UAC manifest applied to afs_config.exe
|
|
|
|
|
|
|
|
|
|
* rxdebug now indicates if any RX_CONN flag is set
|
|
|
|
|
not just some of them
|
|
|
|
|
|
|
|
|
|
* Change the mapping of CM_ERROR_WOULDBLOCK from
|
|
|
|
|
NTSTATUS_LOCK_NOT_GRANTED to NTSTATUS_CANT_WAIT
|
|
|
|
|
|
|
|
|
|
Since 1.5.54
|
|
|
|
|
|
|
|
|
|
* Includes #GCO Public CellServDB 07 Nov 2008
|
|
|
|
|
|
|
|
|
|
* Prevent separate cell entries from being created for
|
|
|
|
|
"foobar.org" and "foobar.org." which can happen if
|
|
|
|
|
an AFSDB record is found instead of a CellServDB
|
|
|
|
|
record.
|
|
|
|
|
|
|
|
|
|
* Fix a panic when checking the SMB virtual circuit list.
|
|
|
|
|
If a VC is destroyed while the list is being checked
|
|
|
|
|
it is possible for the next object to become invalid.
|
|
|
|
|
|
|
|
|
|
* Increased logging to afsd_init.log of netbios name
|
|
|
|
|
related errors.
|
|
|
|
|
|
|
|
|
|
* Fix a DNLC panic when a UTF-16 string that cannot be
|
|
|
|
|
converted to a utf-8 string is provided as a filename.
|
|
|
|
|
|
|
|
|
|
* In the NSIS installer, delete old afslogon.dll/afscpcc.exe
|
|
|
|
|
from %windir%\system32 and fix the WinLogon\Notify\AfsLogon
|
|
|
|
|
location to refer directly to the new location in
|
|
|
|
|
%programfiles%\openafs\client\program
|
|
|
|
|
|
|
|
|
|
* Be more aggressive about responding to Netbios
|
|
|
|
|
NRC_BRIDGE/NRC_NOWILD errors. Rebind the Netbios name to
|
|
|
|
|
the LANA within the listener thread without performing a
|
|
|
|
|
delete and reset.
|
|
|
|
|
|
|
|
|
|
* Use the WNet Enumeration of all connected drives as a filter
|
|
|
|
|
in the pioctl GetIoctlHandle operation. This should remove
|
|
|
|
|
the last situations in which there was a delay when opening
|
|
|
|
|
an Explorer Shell properties menu with the AFS Shell
|
|
|
|
|
Extension.
|
|
|
|
|
|
|
|
|
|
* Fix the parsing of CellServDB in Windows to handle linked
|
|
|
|
|
cells as is done on Unix.
|
|
|
|
|
|
|
|
|
|
* Add support for linked cells to the cache manager,
|
|
|
|
|
netidmgr afs provider, and aklog. When two cells are
|
|
|
|
|
linked, a volume lookup that fails in one cell is looked
|
|
|
|
|
up in the other. This can be used for construction of
|
|
|
|
|
test cells that override specific volumes; cell renaming;
|
|
|
|
|
and cell splitting.
|
|
|
|
|
|
|
|
|
|
* Increase the length of cell and realm names that can
|
|
|
|
|
be entered in the NIM AFS provider.
|
|
|
|
|
|
|
|
|
|
* Actively prevent a 32-bit afsd_service.exe from
|
|
|
|
|
executing in the WOW64 environment.
|
|
|
|
|
|
|
|
|
|
* Protect against invalid IP address values in CellServDB
|
|
|
|
|
parsing.
|
|
|
|
|
|
|
|
|
|
Since 1.5.53
|
|
|
|
|
|
|
|
|
|
* Fix an Rx panic caused by an attempt to double free
|
|
|
|
|
an rx_packet when an error occurs while writing the
|
|
|
|
|
packet.
|
|
|
|
|
|
|
|
|
|
* Fix an exception cause by a race condition when
|
|
|
|
|
processing multiple file change notifications registered
|
|
|
|
|
by the Explorer Shell or other applications.
|
|
|
|
|
|
|
|
|
|
* Modify the Rx debug interface to use var_args and
|
|
|
|
|
permit Rx debugging to be used on 64-bit Windows
|
|
|
|
|
which previously had it disabled.
|
|
|
|
|
|
|
|
|
|
Since 1.5.52
|
|
|
|
|
|
|
|
|
|
* Automated lock hierarchy enforcement added to the
|
|
|
|
|
osi base lock package. This permits detection of lock
|
|
|
|
|
violations that might but often does not result in
|
|
|
|
|
deadlocks. Enabled by default in the checked builds.
|
|
|
|
|
May be activated in release builds via the registry
|
|
|
|
|
value "LockOrderValidation" in the TransarcAFSDaemon
|
|
|
|
|
Parameters key.
|
|
|
|
|
|
|
|
|
|
When a violation is detection an assertion is thrown
|
|
|
|
|
generating a dump file and a message indicating which
|
|
|
|
|
locks were obtained out of order is logged to the
|
|
|
|
|
Windows Application Event Log.
|
|
|
|
|
|
|
|
|
|
* Attempt to ensure that a dump file will be generated
|
|
|
|
|
whenever the service panics.
|
|
|
|
|
|
|
|
|
|
* Removed unused lock cm_bufGetMutex
|
|
|
|
|
|
|
|
|
|
* Many out of order lock acquisitions were detected
|
|
|
|
|
using the lock order verifier and were corrected.
|
|
|
|
|
|
|
|
|
|
* A race condition within the function path cm_GetSCache() ->
|
|
|
|
|
cm_GetNewSCache() -> cm_RecycleSCache() permitted a
|
|
|
|
|
cm_scache_t object to be issued simultaneously to two
|
|
|
|
|
threads. This would eventually result in a panic due
|
|
|
|
|
to the resulting undercount.
|
|
|
|
|
|
|
|
|
|
* Fix interpretation of the empty string as the ioctl path
|
|
|
|
|
to mean the current directory. "fs lsm", "symlink list",
|
|
|
|
|
etc. now return a "not a ..." error instead of "does not
|
|
|
|
|
exist".
|
|
|
|
|
|
|
|
|
|
* Add SMB_STRF_SRCNULTERM flag to smb_ParseStringXXX functions.
|
|
|
|
|
to indicate that the input string is a nul terminated string.
|
|
|
|
|
Assign ti when input strings are nul terminated instead of
|
|
|
|
|
length counted. (from 1.5.50)
|
|
|
|
|
|
|
|
|
|
* The CIFS protocol specification for handling NT_TRANSACT_CREATE
|
|
|
|
|
does not match the observed behavor. The 'nameLength' is specified
|
|
|
|
|
in bytes, not in characters. Fix the implementation to match
|
|
|
|
|
the observed behavior. (1.5.50)
|
|
|
|
|
|
|
|
|
|
* The cm_HaveAccessRights() attempt at deadlock avoidance by
|
|
|
|
|
calling lock_TryRead() on the parent directory cm_scache_t rw-lock
|
|
|
|
|
does not avoid the deadlock. Avoid the deadlock by enforcing the
|
|
|
|
|
lock order of the lowest vnode first. Then remove the infinite
|
|
|
|
|
loop avoidance in cm_SyncOp() that was returning an unwarranted
|
|
|
|
|
access denied error.
|
|
|
|
|
|
|
|
|
|
* File Server lock synchronization was not propertly enforced in
|
|
|
|
|
smb_ReceiveNTCreateX() and smb_ReceiveNTTranCreate().
|
|
|
|
|
|
|
|
|
|
* Another change to the short name generator. Plus and equal are
|
|
|
|
|
not valid characters in a short name according to the
|
|
|
|
|
RtlIsNameLegalDOS8Dot3() in kernel mode. They have been replaced
|
|
|
|
|
with left and right brace in order to minimize the impact.
|
|
|
|
|
|
|
|
|
|
* Fix a race condition that can result in a heap overwrite error if
|
|
|
|
|
the number of known file servers or vldb servers increases during
|
|
|
|
|
the preparation phase of a cm_CheckServers() operation.
|
|
|
|
|
|
|
|
|
|
* If the SMB Authentication would fail, a LSA allocated memory
|
|
|
|
|
buffer would be leaked.
|
|
|
|
|
|
|
|
|
|
* Rewrite the cm_cell_t allocation code to permit cell vldb server
|
|
|
|
|
lookups to fail without leaking cm_cell_t objects.
|
|
|
|
|
|
|
|
|
|
* Add "fs setcrypt auth" to permit the use of rxkad authentication
|
|
|
|
|
only mode. Not documented.
|
|
|
|
|
|
|
|
|
|
* Initialize Rx mutex and lock objects once and only once as part of
|
|
|
|
|
the DLL load process.
|
|
|
|
|
|
|
|
|
|
* When reporting the Volume Name "AFS" do not include the terminating
|
|
|
|
|
NUL in the reported length.
|
|
|
|
|
|
|
|
|
|
* Refresh Volume Location information upon receipt of a VNOVOL error
|
|
|
|
|
from the file server and avoid a race condition that prevented the
|
|
|
|
|
updated volume location information from being destroyed immediately
|
|
|
|
|
after it was acquired.
|
|
|
|
|
|
|
|
|
|
* In response to VNOVOL and VMOVED, remove the volume id from the server's
|
|
|
|
|
volume list so that the volume's up and down status is not affected
|
|
|
|
|
when the machine is shutdown.
|
|
|
|
|
|
|
|
|
|
* Many fixes to the Rx stack related to packet allocation and deallocation;
|
|
|
|
|
Rx debugging; Rx packet tracking across queues; and Rx packet loss caused
|
|
|
|
|
by overwriting the rx_call currentPacket pointer when it was already
|
|
|
|
|
referring to a packet.
|
|
|
|
|
|
|
|
|
|
* Rx Jumbograms are now off by default. To re-enable, add "RxJumbo" = "1"
|
|
|
|
|
in the TransarcAFSDeamon/Parameters key.
|
|
|
|
|
|
|
|
|
|
* "fs flush", "fs flushvolume", and "fs flushall" now destroy locally
|
|
|
|
|
constructed directory B+ trees for flushed directory objects.
|
|
|
|
|
|
|
|
|
|
* When cached pages for directory objects have been locally modified, do
|
|
|
|
|
not permit the locally modified pages to be mixed with pages subsequently
|
|
|
|
|
obtained from the file server. Doing so can result in directory
|
|
|
|
|
corruption.
|
|
|
|
|
|
|
|
|
|
* If Ubix errors are received in response to VL_xxx operations record
|
|
|
|
|
the error on the server instance and permit the operation request to
|
|
|
|
|
be retried in case another server is able to answer the query. We have
|
|
|
|
|
seen at least one instance of a cell in which a VL server returned
|
|
|
|
|
UNOQUORUM (possible database truncation) when the other servers were
|
|
|
|
|
responding successfully.
|
|
|
|
|
|
|
|
|
|
Since 1.5.51
|
|
|
|
|
* Optimize the assignment of write errors to dirty
|
|
|
|
|
buffers by applying the first error to all buffers
|
|
|
|
|
belonging to the same object instead of trying each
|
|
|
|
|
buffer in turn.
|
|
|
|
|
|
|
|
|
|
* Add resource version info to xstat_fs_test and xstat_cm_test
|
|
|
|
|
|
|
|
|
|
* Fix a delete vs delete[] usage problem in the WiX custom
|
|
|
|
|
handler dll
|
|
|
|
|
|
|
|
|
|
* When creating a mount point, validate the volume name to
|
|
|
|
|
make sure it exists.
|
|
|
|
|
|
|
|
|
|
* When processing a mount point, pay attention to VL_BADNAME
|
|
|
|
|
errors.
|
|
|
|
|
|
|
|
|
|
* Remove a race condition from cm_volume_t recycling that could
|
|
|
|
|
have resulted in two threads making use of the same object at
|
|
|
|
|
the same time.
|
|
|
|
|
|
|
|
|
|
* Fix a reference count leak on smb_vc_t objects introduced in
|
|
|
|
|
1.5.50. Permit the objects to be freed once again.
|
|
|
|
|
|
|
|
|
|
* Fix the output of "fs memdump" for smb_vc_t objects that was
|
|
|
|
|
broken in 1.5.50.
|
|
|
|
|
|
|
|
|
|
* Add routines for debugging smb refcount errors.
|
|
|
|
|
|
|
|
|
|
* When shutting down the cache manager, do not permit AFS
|
|
|
|
|
callback requests to be processed. Doing so can result in
|
|
|
|
|
invalid memory accesses.
|
|
|
|
|
|
|
|
|
|
* Do not recycle a deleted cm_scache_t object unless the
|
|
|
|
|
refCount is 0. Doing so can result in a deadlock and
|
|
|
|
|
invalid memory access.
|
|
|
|
|
|
|
|
|
|
* Minimize the number of RPCs sent to the file server for
|
|
|
|
|
directory bulk status requests. Only request status for
|
|
|
|
|
objects that we are actually reporting on and only if we
|
|
|
|
|
do not already have status for the object and then make
|
|
|
|
|
sure that we return as much as we can at once via the SMB
|
|
|
|
|
interface but not so much that it exceeds the RDR timeout
|
|
|
|
|
|
|
|
|
|
* Enable bos restricted operations
|
|
|
|
|
|
|
|
|
|
* Fix the creation of submounts used by the afscreds and afs_config
|
|
|
|
|
drive mapping tabs.
|
|
|
|
|
|
|
|
|
|
* Avoid repeated retries when attempting to obtain access rights.
|
|
|
|
|
If the access rights were obtained successfully but do not
|
|
|
|
|
satisfy the request, fail the request.
|
|
|
|
|
|
|
|
|
|
* Fix error code reported when attempting delete a file on a
|
|
|
|
|
readonly volume or one that is marked with the readonly DOS
|
|
|
|
|
attribute.
|
|
|
|
|
|
|
|
|
|
* Fix a short name truncation bug.
|
|
|
|
|
|
|
|
|
|
* Fix a heap corruption error when reading the CellServDB file
|
|
|
|
|
location.
|
|
|
|
|
|
|
|
|
|
* Fix directory listings when the directory has "lookup" permission
|
|
|
|
|
only and the directory has never been previously accessed.
|
|
|
|
|
|
|
|
|
|
* Fix several tracking issues for cm_scache_t rw locks.
|
|
|
|
|
|
|
|
|
|
* Ensure that all buffers used to store cell names are the
|
|
|
|
|
correct length.
|
|
|
|
|
|
|
|
|
|
* Restore Windows 2000 support (broken in 1.5.50).
|
|
|
|
|
LOCALE_INVARIANT was introduced in XP.
|
|
|
|
|
|
|
|
|
|
* Add RxUdpBufSize registry value. Default is 256K.
|
|
|
|
|
|
|
|
|
|
* Avoid multiple deadlocks between cm_freelanceLock and cm_scacheLock
|
|
|
|
|
|
|
|
|
|
* Do not include trailing NULs when returning file names in
|
|
|
|
|
a directory search response.
|
|
|
|
|
|
|
|
|
|
* Prevent RX from crashing the afsd_service by attempting
|
|
|
|
|
to allocate to many buffers at once when memory is fragmented.
|
|
|
|
|
|
|
|
|
|
* Avoid a deadlock when freeing cm_server_t objects
|
|
|
|
|
|
|
|
|
|
* Optimize search cell file. Do not search to end of file
|
|
|
|
|
if the cell has already been found.
|
|
|
|
|
|
|
|
|
|
* Remove explorer shell extension delay on local disks.
|
|
|
|
|
|
|
|
|
|
* Automatically pre-allocate 64 Rx packets per thread
|
|
|
|
|
|
|
|
|
|
* Add smb lock requests and stat cache lock allocations to
|
|
|
|
|
the output from fs memdump.
|
|
|
|
|
|
|
|
|
|
Since 1.5.50
|
|
|
|
|
* Fix Large File Support (broken in 1.5.50)
|
|
|
|
|
|
|
|
|
|
* Fix "fs setacl" (broken in 1.5.50)
|
|
|
|
|
|
|
|
|
|
* Fix pioctl path evaluation of drive letter
|
|
|
|
|
mapped paths. (broken in 1.5.50)
|
|
|
|
|
|
|
|
|
|
* Fix installation of VC8 Runtime library in the EXE
|
|
|
|
|
Retail installer. (broken in 1.5.50)
|
|
|
|
|
|
|
|
|
|
* Avoid a potential deadlock during Volume Location
|
|
|
|
|
updates if all the file servers are unreachable at
|
|
|
|
|
the time the VL update succeeds.
|
|
|
|
|
|
|
|
|
|
* Ensure that rx connection object is references
|
|
|
|
|
during VL RPCs.
|
|
|
|
|
|
|
|
|
|
* Fix propagation of over quota errors during cm_FSync()
|
|
|
|
|
calls.
|
|
|
|
|
|
|
|
|
|
Since 1.5.39 [1.5.50 released 16 July 2008]
|
|
|
|
|
* There were no releases between 1.5.39 and 1.5.50.
|
|
|
|
|
|
|
|
|
|
* FIRST RELEASE WITH UNICODE SUPPORT
|
|
|
|
|
|
|
|
|
|
* Pioctl interfaces to the cache manager refactored
|
|
|
|
|
to provide layering between the SMB specific code
|
|
|
|
|
and the general purpose ioctl operation.
|
|
|
|
|
|
|
|
|
|
* Garbage collect dead SMB virtual circuits as soon
|
|
|
|
|
as they are no longer being referenced. This avoids
|
|
|
|
|
problems with outstanding locks not being dropped
|
|
|
|
|
when the virtual circuit becomes invalid.
|
|
|
|
|
|
|
|
|
|
* Remove the IBM Administration Reference documentation
|
|
|
|
|
and replace it with the OpenAFS Command Reference
|
|
|
|
|
Manual.
|
|
|
|
|
|
|
|
|
|
* Avoid calling rx_SetDeadTime and rx_SetHardDeadTime
|
|
|
|
|
functions each time a connection is about to be used.
|
|
|
|
|
Do not hold a lock on the rx connection object while
|
|
|
|
|
it is being selected. This avoids a race between
|
|
|
|
|
threads attempting to set the timeout values and
|
|
|
|
|
removes a bottleneck that was hampering performance.
|
|
|
|
|
|
|
|
|
|
* Ensure that the smb directory attribute is set
|
|
|
|
|
for all directory objects.
|
|
|
|
|
|
|
|
|
|
* Add vs2008 support to the NSIS installer scripts
|
|
|
|
|
|
|
|
|
|
* Replace the VC Runtime EXE installer with the MSI
|
|
|
|
|
installer in the NSIS installer scripts
|
|
|
|
|
|
|
|
|
|
* Properly delete the VC7.1 C Runtime libraries.
|
|
|
|
|
|
|
|
|
|
Since 1.5.36 [1.5.39 released 23 June 2008]
|
|
|
|
|
* There were no 1.5.37 or 1.5.38 releases for Windows
|
|
|
|
|
|
|
|
|
|
* Use Visual Studio version of vsprintf() instead of
|
|
|
|
|
home grown version that resulted in linking conflicts
|
|
|
|
|
|
|
|
|
|
* Prevent buserver, ptserver and fileserver from crashing
|
|
|
|
|
due to non-portable strftime() format strings.
|
|
|
|
|
|
|
|
|
|
* Prevent server crashes caused by rx_InitMorePackets()
|
|
|
|
|
being called prior to allocation of all of the required
|
|
|
|
|
synchronization objects.
|
|
|
|
|
|
|
|
|
|
* Fixed a memory leak in the internal B+ tree directory.
|
|
|
|
|
For objects with non-8.3 names, the 'longname' memory
|
|
|
|
|
allocation would be leaked during object deletion or
|
|
|
|
|
tree destruction.
|
|
|
|
|
|
|
|
|
|
* Fixed a memory leak in the background daemon cm_CheckServer()
|
|
|
|
|
routine. The memory allocated to store the server list
|
|
|
|
|
was not freed.
|
|
|
|
|
|
|
|
|
|
* Obtain a missing lock around a call to cm_RemoveSCacheFromHashTable().
|
|
|
|
|
|
|
|
|
|
* Correct an abstraction layer violation. cm_scache_t objects
|
|
|
|
|
should be marked deleted in cm_Unlink() and cm_RemoveDir() and not
|
|
|
|
|
in smb_CloseFID(). Cleanup of deleted cm_scache_t objects should be
|
|
|
|
|
performed in cm_ReleaseSCache() when the reference count hits zero.
|
|
|
|
|
|
|
|
|
|
* Prototype cm_AdjustScacheLRU() and re-implement it using osi_QAddH().
|
|
|
|
|
|
|
|
|
|
* Do not reference 'smb_logp' in cm_vnodeops.c. Use 'afsd_logp'
|
|
|
|
|
instead.
|
|
|
|
|
|
|
|
|
|
* Ensure that scache object 'nextp' pointers are set to NULL
|
|
|
|
|
when the objects are removed from the hash table linked list.
|
|
|
|
|
|
|
|
|
|
* If a dirty buffer cannot be written to the file server because
|
|
|
|
|
of an access denied error, mark the error in the cm_buf_t
|
|
|
|
|
structure so that it can be dealt with instead of retrying
|
|
|
|
|
forever.
|
|
|
|
|
|
|
|
|
|
Since 1.5.35
|
|
|
|
|
* Update CellServDB file to GCO Public 23 Apr 2008
|
|
|
|
|
|
|
|
|
|
* Fix a cm_buf_t reference count leak when attempts to write
|
|
|
|
|
dirty buffers to the file server from within cm_IncrSyncer()
|
|
|
|
|
fail.
|
|
|
|
|
|
|
|
|
|
* Prevent udebug from crashing.
|
|
|
|
|
|
|
|
|
|
* Activate RX Idle Timeouts. If the file server is busy for more
|
|
|
|
|
then 30 seconds, attempt to failover to another server without
|
|
|
|
|
marking the busy server down.
|
|
|
|
|
|
|
|
|
|
* Another VNOVNODE issue fixed. When writing a dirty buffer
|
|
|
|
|
to the file server, if VNOVNODE is received, mark all buffers
|
|
|
|
|
as invalid without further attempts to contact the file server.
|
|
|
|
|
|
|
|
|
|
* Improved performance on high latency links.
|
|
|
|
|
|
|
|
|
|
Since 1.5.34
|
|
|
|
|
* Fix a bug preventing the re-initialization of the Freelance
|
|
|
|
|
root.cell contents when a change is made.
|
|
|
|
|
|
|
|
|
|
* Properly return CM_ERROR_NOSUCHFILE when removing a symlink
|
|
|
|
|
or mountpoint that does not exist.
|
|
|
|
|
|
|
|
|
|
* aklog, afscreds, integrated logon, and the NIM AFS credential
|
|
|
|
|
provider will all attempt to first acquire an afs service ticket
|
|
|
|
|
using the service principal: afs/<cell>@<CLIENT_REALM>. This
|
|
|
|
|
permits the proper detection of the cell realm when multiple
|
|
|
|
|
realms are local realms for the cell.
|
|
|
|
|
|
|
|
|
|
* Fix fs commands that re-use file identifiers instead of forcing
|
|
|
|
|
a path evaluation each time. This was broken in 1.5.33 when
|
|
|
|
|
hashes were added to the cm_fid_t structure.
|
|
|
|
|
|
|
|
|
|
* Fix symlink and mountpoint removal and then recreation when
|
|
|
|
|
applied to the fake Freelance root.afs volume.
|
|
|
|
|
|
|
|
|
|
* Fix SMB change notifications for the Freelance root.afs volume
|
|
|
|
|
when creating or removing symlinks and mount points.
|
|
|
|
|
|
|
|
|
|
* Force DNS AFSDB cell name lookups to lower case if the DNS
|
|
|
|
|
response is not all lower case.
|
|
|
|
|
|
|
|
|
|
* 32-bit installers are now built with Visual Studio 2005
|
|
|
|
|
|
|
|
|
|
* All vos.exe commands now support the "-noresolve" option which
|
|
|
|
|
forces the display of IP addresses instead of DNS hostnames.
|
|
|
|
|
|
|
|
|
|
* No longer hold the cm_volume_t mutex across VL_xxx RPCs. This
|
|
|
|
|
permits operations that do not require up to date volume
|
|
|
|
|
location data to continue while waiting for the RPC to complete.
|
|
|
|
|
Multiple threads waiting for a volume location update on the
|
|
|
|
|
same volume set no longer trigger multiple calls VL_xxx RPCs.
|
|
|
|
|
|
|
|
|
|
* Volume server references could be marked offline and never
|
|
|
|
|
reset to the not_busy state.
|
|
|
|
|
|
|
|
|
|
* Further optimizations to cm_Analyze() retry logic for
|
|
|
|
|
CM_ERROR_OFFLINE and CM_ERROR_ALLBUSY error handling.
|
|
|
|
|
|
|
|
|
|
Since 1.5.33
|
|
|
|
|
* Optimize the DNLC by applying Interlocked incrementing for
|
|
|
|
|
statistics gathering and enabling greater use of read
|
|
|
|
|
locks instead of write locks
|
|
|
|
|
|
|
|
|
|
* Further optimize osi_Log operations when logging is disabled
|
|
|
|
|
by removing the need for the function call overhead.
|
|
|
|
|
|
|
|
|
|
* Add a new lock operation, Convert Read to Write, and apply
|
|
|
|
|
it throughout the cache manager. This function provides a
|
|
|
|
|
fast transition from a read lock to a write lock when the
|
|
|
|
|
caller is the only reader.
|
|
|
|
|
|
|
|
|
|
* Fix a timeout problem when opening files or request locks
|
|
|
|
|
when the file in question is already write-locked by another
|
|
|
|
|
machine.
|
|
|
|
|
|
|
|
|
|
* Fix a deadlock that can occur if "fs flushall" is executed
|
|
|
|
|
while applications are writing to AFS.
|
|
|
|
|
|
|
|
|
|
* The cache manager would re-read data from the file server
|
|
|
|
|
after file truncation when obtaining buffers to write to the
|
|
|
|
|
same file until the first StoreData RPC completes.
|
|
|
|
|
|
|
|
|
|
* Fixes error handling in cm_NTCheckDelete()
|
|
|
|
|
|
|
|
|
|
* Replaces cm_scache_t mutex with a read-write lock permitting
|
|
|
|
|
additional parallel access.
|
|
|
|
|
|
|
|
|
|
* Prevent an cm_scache_t reference undercount when evaluating
|
|
|
|
|
symlinks containing @sys when none of the active sysnames
|
|
|
|
|
match any of the available targets.
|
|
|
|
|
|
|
|
|
|
* Prevent the leak of a cm_scache_t rwlock if associated symlink
|
|
|
|
|
is too long.
|
|
|
|
|
|
|
|
|
|
* Set RxMaxMTU registry value to 0 which is the equivalent of
|
|
|
|
|
it not being set at all.
|
|
|
|
|
|
|
|
|
|
* Reduce contention between BkgDaemon threads
|
|
|
|
|
|
|
|
|
|
* Prevent CM_SCACHEFLAG_ASYNCSTORE from being reset on a write
|
|
|
|
|
failure
|
|
|
|
|
|
|
|
|
|
* Convert reference counts on cm_volume_t, cm_conn_t, cm_server_t
|
|
|
|
|
objects to use the faster Interlocked operations which avoid
|
|
|
|
|
the need to hold write locks.
|
|
|
|
|
|
|
|
|
|
* Permit rxkad errors other than RXKADEXPIRED to be treated as a
|
|
|
|
|
non-fatal error that forces a retry against another service
|
|
|
|
|
(if available.)
|
|
|
|
|
|
|
|
|
|
* Fix a crash in smb_WriteData that would occur if an application
|
|
|
|
|
opened the file as read-only and then sent a write request anyway.
|
|
|
|
|
(RT 88731)
|
|
|
|
|
|
|
|
|
|
* Respond to VL_NOENT errors by removing cm_volume_t object and
|
|
|
|
|
setting it to be the first object to be recycled. This is not
|
|
|
|
|
only a more efficient use of resources but it also prevents
|
|
|
|
|
repeated attempts to query the VLDB server for the volume from
|
|
|
|
|
the CheckOfflineVolumes routine.
|
|
|
|
|
|
|
|
|
|
* Change the defaults for RxEnablePeerStats and RxEnableProcessStats
|
|
|
|
|
back to "on".
|
|
|
|
|
|
|
|
|
|
* A first cut at a cache manager statistics monitor that can be used
|
|
|
|
|
to determine the necessary cache parameters to support the
|
|
|
|
|
application working set.
|
|
|
|
|
|
|
|
|
|
Off by default, the performance package can be activated by setting
|
|
|
|
|
"daemonPerformanceTuningInterval" in the service Parameters key.
|
|
|
|
|
As with the other daemon interval values the unit is in seconds.
|
|
|
|
|
|
|
|
|
|
At service start and each succeeding interval the cache manager
|
|
|
|
|
will write statistics to %TEMP%\afsd_performance.txt showing the
|
|
|
|
|
relative usage of cm_scache_t, cm_volume_t and cm_buf_t objects.
|
|
|
|
|
The FID statistics keep track of all FIDs seen by the cache manager
|
|
|
|
|
during the service session whether or not they are backed by any
|
|
|
|
|
live object in the cache.
|
|
|
|
|
|
|
|
|
|
These statistics are not stored in the cache file.
|
|
|
|
|
|
|
|
|
|
* Fix windows event logging broken in 1.5.33.
|
|
|
|
|
|
|
|
|
|
* Eliminate multiple calls to syscfg_GetIFInfo() which is used to
|
|
|
|
|
populate the IP address list for WhoAreYou/TellMeAboutYourself RPCs
|
|
|
|
|
as well as when computing the server preference list.
|
|
|
|
|
|
|
|
|
|
* When merging status after a StoreData operation prevent data
|
|
|
|
|
buffers from being discarded that we would prefer to keep.
|
|
|
|
|
(Bug introduced in 1.5.33.)
|
|
|
|
|
|
|
|
|
|
* Modify installers the set RxMaxMTU to 0.
|
|
|
|
|
|
|
|
|
|
* In the AFS Configuration Panel on the Advanced->Miscellaneous
|
|
|
|
|
dialog, the Background Daemons and Service Threads fields were
|
|
|
|
|
swapped.
|
|
|
|
|
|
|
|
|
|
* Increase default number of Background Daemons to 4.
|
|
|
|
|
|
|
|
|
|
* Remove cm_volume_t reference from the cm_scache_t object. Permit
|
|
|
|
|
cm_volume_t objects to be recycled.
|
|
|
|
|
|
|
|
|
|
* Windows Error Reporting has shown a number of previously unseen
|
|
|
|
|
stack corruption errors in the Explorer Shell extension. The
|
|
|
|
|
minidump appeared to indicate the problem was in ParseAcl().
|
|
|
|
|
Reviewing the function it appears that numerous things could go
|
|
|
|
|
wrong if invalid input was provided. Added error checking and
|
|
|
|
|
data validation. Hopefully this will address the problem.
|
|
|
|
|
|
|
|
|
|
* Windows Error Reporting has shown crashes in aklog as a result
|
|
|
|
|
of krb5_cc_get_default() failures not being handled. They are
|
|
|
|
|
now handled.
|
|
|
|
|
|
|
|
|
|
Since 1.5.32
|
|
|
|
|
* The Rx library used a 32-bit type for sockets which was
|
|
|
|
|
truncating the socket value on 64-bit Windows. This
|
|
|
|
|
was not an issue in general but became an issue when
|
|
|
|
|
Rx "hot thread" support was enabled.
|
|
|
|
|
|
|
|
|
|
* Enable "Rx hot thread" support which ensures that while
|
|
|
|
|
a received message is being processed that a new thread
|
|
|
|
|
is allocated to receive the next message to arrive.
|
|
|
|
|
|
|
|
|
|
* Increased parallel access to smb_rctLock protected
|
|
|
|
|
resources. Reduce the number of times that the
|
|
|
|
|
lock is dropped and re-obtained.
|
|
|
|
|
|
|
|
|
|
* Increased parallel access to cm_scache_t and cm_buf_t
|
|
|
|
|
resources by replacing the previous global write lock
|
|
|
|
|
protected reference counting mechanism with one built
|
|
|
|
|
upon the use of InterlockedIncrement and InterlockedDecrement.
|
|
|
|
|
|
|
|
|
|
* Implement a hash for cm_fid_t to reduce comparison costs
|
|
|
|
|
and inline the cm_FidCmp() function.
|
|
|
|
|
|
|
|
|
|
* Redefine the BUF_HASH and BUF_FILEHASH in terms of the cm_fid_t
|
|
|
|
|
hash which has a better distribution
|
|
|
|
|
|
|
|
|
|
* Modify cm_ConsiderPrefetch to evaluate the amount of data in
|
|
|
|
|
the most recent read request instead of the next chunkSize.
|
|
|
|
|
cm_chunkSize can be dozens or hundreds of buffers. As a result
|
|
|
|
|
too much time is spent performing the evaluation.
|
|
|
|
|
|
|
|
|
|
* Fix the usage of cm_scache_t bufCreateLock. The purpose of this
|
|
|
|
|
lock is to prevent the creation of new buffers while a truncation
|
|
|
|
|
is being performed. All references to bufCreateLock have been
|
|
|
|
|
removed except in two places:
|
|
|
|
|
i. a write-lock surrounding the function that calls buf_Truncate()
|
|
|
|
|
ii. a read-lock within buf_GetNewLocked() that actually allocates
|
|
|
|
|
new buffers
|
|
|
|
|
|
|
|
|
|
* Modify the CM_CONFIG_DATA_MAGIC value to include a
|
|
|
|
|
CM_CONFIG_DATA_VERSION number which value be used to force the
|
|
|
|
|
replacement of the cache file contents when incompatible changes
|
|
|
|
|
are made between releases.
|
|
|
|
|
|
|
|
|
|
* CM_SCACHESYNC_ASYNCSTORE should not be ordered by
|
|
|
|
|
cm_SyncOpCheckContinue
|
|
|
|
|
|
|
|
|
|
* Avoid calls to multi_Rx if nconns == 0
|
|
|
|
|
|
|
|
|
|
* Modify smb_WriteData to perform background writes based upon the
|
|
|
|
|
crossing of 'smb_AsyncStoreSize' boundaries instead of cm_chunkSize
|
|
|
|
|
boundaries. This will slow down writes from the SMB interface but
|
|
|
|
|
will avoid the risk of the CIFS client disconnecting from the AFS
|
|
|
|
|
client SMB server. The default value for 'smb_AsyncStoreSize'
|
|
|
|
|
is 128K.
|
|
|
|
|
|
|
|
|
|
* SMB AsyncStore functionality is on by default but can be
|
|
|
|
|
disabled using the registry value:
|
|
|
|
|
|
|
|
|
|
HKLM\SOFTWARE\OpenAFS\Client DWORD "EnableSMBAsyncStore"
|
|
|
|
|
|
|
|
|
|
smb_AsyncStoreSize can be adjusted with
|
|
|
|
|
|
|
|
|
|
HKLM\SOFTWARE\OpenAFS\Client DWORD "SMBAsyncStoreSize"
|
|
|
|
|
|
|
|
|
|
The value must be a multiple of the buffer block size
|
|
|
|
|
and cannot be larger than the chunk size.
|
|
|
|
|
|
|
|
|
|
* Do not leak a read lock on the bufCreateLock
|
|
|
|
|
|
|
|
|
|
* Do not forget to call cm_SyncOpDone if cm_SyncOp succeeded
|
|
|
|
|
in cm_CheckNTOpen()
|
|
|
|
|
|
|
|
|
|
* In MergeStatus, only remove clean buffers from the hash table.
|
|
|
|
|
|
|
|
|
|
* Avoid the need to update the data version number on each buffer
|
|
|
|
|
associated with a scache when MergeStatus is called after a
|
|
|
|
|
StoreData by maintaining a range of valid data versions as part
|
|
|
|
|
of the cm_scache_t object.
|
|
|
|
|
|
|
|
|
|
* Profiling shows large numbers of blocked calls in cm_HoldSCache
|
|
|
|
|
from cm_HaveAccess... We can safely avoid the call so do so.
|
|
|
|
|
|
|
|
|
|
* Add "ForceAnonVLDB" service parameters registry value. Default
|
|
|
|
|
is 0. Set to 1 to force the use of anonymous connections to
|
|
|
|
|
the VLDB servers. This is useful when using krb5 tokens and the
|
|
|
|
|
VLDB servers have not been updated.
|
|
|
|
|
|
|
|
|
|
Since 1.5.31
|
|
|
|
|
* Do not attempt to search for a cell name that matches one
|
|
|
|
|
of the special share names "svrsvc", "wkssvc", "ipc$"
|
|
|
|
|
|
|
|
|
|
* Issue permission denied warnings from afscreds if attempts
|
|
|
|
|
to modify the startup shortcut or registry values fail.
|
|
|
|
|
This happens under Vista UAC.
|
|
|
|
|
|
|
|
|
|
* Do not return BAD_NETWORK_ERROR in response to attempts
|
|
|
|
|
to create directories or files in the Freelance root.afs
|
|
|
|
|
volume. Instead return ACCESS_DENIED.
|
|
|
|
|
|
|
|
|
|
BAD_NETWORK_ERROR was being sent because the Freelance cell
|
|
|
|
|
has no vldb servers. Short circuit the error by testing for
|
|
|
|
|
freelance in CreateFile and MakeDir
|
|
|
|
|
|
|
|
|
|
* Treat srvsvc, wkssvc and ipc$ as pseudo files. Permit them
|
|
|
|
|
to be opened and closed without actually existing. For now
|
|
|
|
|
we treat them as equivalent to ioctls but this should
|
|
|
|
|
eventually change.
|
|
|
|
|
|
|
|
|
|
* Fix RAP processing to not reject names that exist in the
|
|
|
|
|
root.afs volume for GetInfo queries.
|
|
|
|
|
|
|
|
|
|
* In afscreds, use GetUserNameEx to obtain the username instead
|
|
|
|
|
of searching the registry. Try UserPrincipalName first and
|
|
|
|
|
fallback to SamCompatible.
|
|
|
|
|
|
|
|
|
|
* Stop linking to rpcns4.dll which is no longer supported on
|
|
|
|
|
Vista and 2008. TaAfsAdmSvr is going to have to be
|
|
|
|
|
redesigned.
|
|
|
|
|
|
|
|
|
|
* When processing dfs referral requests, if the sharename is
|
|
|
|
|
a partial match and therefore will not be added automatically
|
|
|
|
|
to the share list, make sure that we return an error.
|
|
|
|
|
|
|
|
|
|
* Avoid a crash when logging VNOVOL errors returned from
|
|
|
|
|
cm_CheckOfflineVolume.
|
|
|
|
|
|
|
|
|
|
* When trace logging is disabled, do not permit osi_LogSaveString
|
|
|
|
|
to perform the string copying. By disabling the string
|
|
|
|
|
copies, throughput of the service more than doubles.
|
|
|
|
|
|
|
|
|
|
* when checking offline volumes, update the cell vlserver info
|
|
|
|
|
if required and don't perform a check if there are no servers
|
|
|
|
|
in the list.
|
|
|
|
|
|
|
|
|
|
* Add volumes in the vl_unknown state to the list of objects to be
|
|
|
|
|
checked as offline or retried when an allbusy error is received
|
|
|
|
|
in cm_Analyze.
|
|
|
|
|
|
|
|
|
|
* Add support for configuring rx_ExtraPackets
|
|
|
|
|
|
|
|
|
|
* All calls to buf_Get() must be protected by a read lock on the
|
|
|
|
|
cm_scache_t bufCreateLock
|
|
|
|
|
|
|
|
|
|
* When a MergeStatus results in the invalidation of buffers, do
|
|
|
|
|
not remove buffers from the hash tables that have active references.
|
|
|
|
|
|
|
|
|
|
* Upon receiving a VNOVNODE error from a file server, be sure to
|
|
|
|
|
invalidate any file locks. This prevents on-going attempts to
|
|
|
|
|
extend the locks and will cause subsequent attempts to access
|
|
|
|
|
the file to receive a invalid handle error.
|
|
|
|
|
|
|
|
|
|
* Prevent smb_ReceiveTran2SearchDir from adding terminating NULs
|
|
|
|
|
to directory entry names.
|
|
|
|
|
|
|
|
|
|
* No longer discard tokens when RXKADBADTICKET error is received.
|
|
|
|
|
Instead return STATUS_NO_KERB_KEY error.
|
|
|
|
|
|
|
|
|
|
Since 1.5.30
|
|
|
|
|
* Add "cmdebug <host> -cellservdb" option and client service
|
|
|
|
|
implementation permits querying the vldb server for each
|
|
|
|
|
cell known to the cache manager. The output is in a form
|
|
|
|
|
that permits it to be used as a CellServDB file.
|
|
|
|
|
|
|
|
|
|
* Add Symlinks->Show option to the AFS Explorer Shell Context
|
|
|
|
|
Menu
|
|
|
|
|
|
|
|
|
|
* Prevent buffer overrun in the cmd parser used by command
|
|
|
|
|
line tools such as fs, vos, pts, etc.
|
|
|
|
|
|
|
|
|
|
* The path ioctl operations have several issues:
|
|
|
|
|
|
|
|
|
|
(1) the specified path for "fs examine, whereis, whichcell,
|
|
|
|
|
flush" and so always has the follow symlinks and mount
|
|
|
|
|
points semantics. This makes it impossible to determine
|
|
|
|
|
what the FID of a symlink or mount point is.
|
|
|
|
|
|
|
|
|
|
(2) "fs examine" out is not the result of a single pioctl
|
|
|
|
|
operation but is actually the combined output of half
|
|
|
|
|
a dozen operations. Path evaluation is an expensive
|
|
|
|
|
operation. It would be faster if the caller could
|
|
|
|
|
evaluate the FID first and then perform all of the
|
|
|
|
|
rest of the operations by specifying the FID instead
|
|
|
|
|
of the path.
|
|
|
|
|
|
|
|
|
|
(3) fs output reports all objects as files. By adding a
|
|
|
|
|
GetFileType pioctl more informative output can be provided
|
|
|
|
|
that indicates what type of object the path evaluates to.
|
|
|
|
|
|
|
|
|
|
(4) the Windows fs command includes a number of commands that
|
|
|
|
|
do nothing but exist only because the Unix cache manager
|
|
|
|
|
supports them.
|
|
|
|
|
|
|
|
|
|
A new extendible data structure cm_ioctl_query_opts_t has been
|
|
|
|
|
added which can be optionally specified with pioctls that do not
|
|
|
|
|
already require input data. The first two fields of this structure
|
|
|
|
|
are 'literal' and 'fid'. The literal field is used to indicate
|
|
|
|
|
whether the last component of the path should be evaluated following
|
|
|
|
|
symlinks and mount points.
|
|
|
|
|
|
|
|
|
|
The fid field permits a fid to be specified.
|
|
|
|
|
|
|
|
|
|
* A new GetFileType pioctl has been added. The type of objects are
|
|
|
|
|
now output.
|
|
|
|
|
|
|
|
|
|
* A new "-literal" option is available for "fs examine, flush, whereis,
|
|
|
|
|
and whichcell.
|
|
|
|
|
|
|
|
|
|
* Unimplemented fs commands have been removed.
|
|
|
|
|
|
|
|
|
|
* There are circumstances where a volume object is being accessed and
|
|
|
|
|
the volume is marked indicating that the volume location information
|
|
|
|
|
is out of date but where it is also pointless and perhaps dangerous
|
|
|
|
|
to block waiting for the rpc to complete. One example is when
|
|
|
|
|
processing the cmdebug requests. If we know that we are not going
|
|
|
|
|
to use the volume object to contact a server, then we can now set
|
|
|
|
|
the CM_GETVOL_FLAG_NO_RESET flag.
|
|
|
|
|
|
|
|
|
|
* when moving up in the directory tree we search the recorded fid list
|
|
|
|
|
to find a matching fid that we have already crossed. we must also
|
|
|
|
|
reset the fid count based upon what we discover.
|
|
|
|
|
|
|
|
|
|
* Cell names are published as share names. As a result they are searched
|
|
|
|
|
for as part of the Dfs Referral evaluation. If share "foo" can not be
|
|
|
|
|
reached, the CIFS client will fallback to searching for "fo" as well.
|
|
|
|
|
|
|
|
|
|
Since the freelance client automatically adds a symlink for prefixes
|
|
|
|
|
of the cell name, this results in both "foo" and "fo" being added to
|
|
|
|
|
the freelance root.afs volume. This patch prevents that negative side
|
|
|
|
|
effect.
|
|
|
|
|
|
|
|
|
|
* when tracking Kerberos credential cache names be sure to include
|
|
|
|
|
the cache type prefix.
|
|
|
|
|
|
|
|
|
|
* Microsoft has assigned OpenAFS a network type value
|
|
|
|
|
|
|
|
|
|
* The algorithms that were used to produce a Netbios name were broken.
|
|
|
|
|
The name that was produced when the hostname was too long was in fact
|
|
|
|
|
longer than the maximum permitted netbios name.
|
|
|
|
|
|
|
|
|
|
Also, the "NetbiosName" value was not used as a suffix when the loopback
|
|
|
|
|
adapter was not installed. The hardcoded string "AFS" was used instead.
|
|
|
|
|
|
|
|
|
|
* avoid another deadlock during server probes initiated by the ipaddr
|
|
|
|
|
change daemon thread.
|
|
|
|
|
|
|
|
|
|
* prevent the afs client service from crashing when fs newcell is
|
|
|
|
|
executed
|
|
|
|
|
|
|
|
|
|
* In the NSIS installer, move afslogon.dll, afscpcc.exe and afs_cpa.cpl
|
|
|
|
|
to \Program Files\OpenAFS\Client\Program in order to get them out
|
|
|
|
|
of the %windir% tree
|
|
|
|
|
|
|
|
|
|
* EDQUOT == WSAEDQUOT. Define it in the right places so that in the
|
|
|
|
|
end STATUS_OUT_OF_QUOTA can be returned to the application.
|
|
|
|
|
|
|
|
|
|
* Modify the search order for determining the location of CellServDB
|
|
|
|
|
and other client configuration files.
|
|
|
|
|
|
|
|
|
|
1. AFSCONF environment variable
|
|
|
|
|
2. registry setting
|
|
|
|
|
3. NEW - use All Users\AppData\OpenAFS\Client only if CellServDB exists
|
|
|
|
|
4. use Program Files\OpenAFS\Client
|
|
|
|
|
|
|
|
|
|
* More Vista Power Management tweaks
|
|
|
|
|
|
|
|
|
|
* Close a socket handle leak in the kauth routines
|
|
|
|
|
|
|
|
|
|
* Don't hold a cm_volume_t mutex across RPCs
|
|
|
|
|
|
|
|
|
|
* Convert downTimes to use clock time instead of relative times.
|
|
|
|
|
This permits correct comparisons with expiration times.
|
|
|
|
|
|
|
|
|
|
* Update the Wix installer to properly install the prerequisites
|
|
|
|
|
for translate_et.exe
|
|
|
|
|
|
|
|
|
|
* Do not translate pioctl paths as they are not converted by the
|
|
|
|
|
file system stack.
|
|
|
|
|
|
|
|
|
|
* Implement multi_rx probes for checking whether servers are up
|
|
|
|
|
or down. Turns probes into a constant time activity instead
|
|
|
|
|
of one dependent upon the number of known servers.
|
|
|
|
|
|
|
|
|
|
* Treat VNOVOL errors the same as VOFFLINE. Do not force an
|
|
|
|
|
update of the volume location data and retry. VNOVOL means
|
|
|
|
|
that the volume could not be attached. It doesn't mean that
|
|
|
|
|
the volume is not on this server.
|
|
|
|
|
|
|
|
|
|
* Modify the Explorer Shell AFS Context menu Symlink->Add to
|
|
|
|
|
not attempt to validate the target path. There is no reliable
|
|
|
|
|
method of doing so.
|
|
|
|
|
|
|
|
|
|
* Improve performance of \\afs\<cell><mount-type><volume>\
|
|
|
|
|
access by eliminating extraneous attempts to search the
|
|
|
|
|
CellServDB file and DNS AFSDB records. Share names
|
|
|
|
|
containing '%' or '#' are not valid cell names.
|
|
|
|
|
|
|
|
|
|
* Return STATUS_RANGE_NOT_LOCKED if the application attempts
|
|
|
|
|
to unlock a range that is not currently locked.
|
|
|
|
|
|
|
|
|
|
* Enable the 32-bit tools to read the 64-bit registry keys
|
|
|
|
|
when executing in the WOW64 environment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Since 1.5.29
|
|
|
|
|
* Fix buffer refcount leak introduced in 1.5.29
|
|
|
|
|
|
|
|
|
|
* Prevent the NIM AFS Provider from crashing when configured to use
|
|
|
|
|
Kerberos v4 for token acquisition in situations where no Kerberos v4
|
|
|
|
|
support is available. For example, 64-bit KFW or sites that delete
|
|
|
|
|
the Kerberos v4 DLL.
|
|
|
|
|
|
|
|
|
|
* In afsd_init.log, support logging cache sizes greater than 2GB.
|
|
|
|
|
|
|
|
|
|
* The volume status output of "fs examine" was being determined based
|
|
|
|
|
upon the wrong error value. Instead of using the pioctl() return
|
|
|
|
|
code, the errno value must be used.
|
|
|
|
|
|
|
|
|
|
* Prevent invalid pts auto-registration attempts by aklog and the
|
|
|
|
|
NIM afs provider when Kerberos referrals are in use. (krb5 1.6+)
|
|
|
|
|
|
|
|
|
|
* Add synchronization protection to all of the SMB Listener State
|
|
|
|
|
variables. This prevents race conditions when the addition or
|
|
|
|
|
loss of a network adapter takes place.
|
|
|
|
|
|
|
|
|
|
* On Vista, there is a race condition between the restart of the
|
|
|
|
|
afs client service and the network adapters. Ensure that the
|
|
|
|
|
afs client service can handle switching between loopback and
|
|
|
|
|
non-loopback modes of operation.
|
|
|
|
|
|
|
|
|
|
* Fix FollowBackupPath to work with mount points that are not
|
|
|
|
|
explicitly read/write.
|
|
|
|
|
|
|
|
|
|
* Fix a deadlock that has been observed on Vista while resuming
|
|
|
|
|
after at least four hours of sleep.
|
|
|
|
|
|
|
|
|
|
* Add new HKLM registry configuration options that can be used
|
|
|
|
|
to provide configuration hints to the NIM AFS Provider when
|
|
|
|
|
creating new identities. See release notes for details on
|
|
|
|
|
HKLM\SOFTWARE\OpenAFS\Client\Realms\.
|
|
|
|
|
|
|
|
|
|
Since 1.5.28
|
|
|
|
|
* Speed up write buffer operations by holding a global read-lock
|
|
|
|
|
instead of a write-lock when updating the buffer data version
|
|
|
|
|
number. The data version is protect by the associated stat
|
|
|
|
|
cache mutex.
|
|
|
|
|
|
|
|
|
|
* Speed up read buffer operations by removing out of date buffers
|
|
|
|
|
from the buffer hash tables.
|
|
|
|
|
|
|
|
|
|
* Protect against a null pointer dereference in afslogon.dll
|
|
|
|
|
if QueryAdHomePathFromSid() fails.
|
|
|
|
|
|
|
|
|
|
* Remove a race condition while accessing private freelance data
|
|
|
|
|
structures.
|
|
|
|
|
|
|
|
|
|
* Update the buffer data versions when Freelance directory data
|
|
|
|
|
changes.
|
|
|
|
|
|
|
|
|
|
* Complete the implementation of smb_ReceiveTran2GetDFSReferral().
|
|
|
|
|
Critical for Vista.
|
|
|
|
|
|
|
|
|
|
* Return EAS_NOT_SUPPORTED in response to EA read/store/query
|
|
|
|
|
instead of returning zero length.
|
|
|
|
|
|
|
|
|
|
* Return ERROR_RETRY when a server sends VBUSY.
|
|
|
|
|
|
|
|
|
|
* Return PATH_NOT_COVERED instead of BADSHARENAME for DfsLinks when
|
|
|
|
|
a volstat plug-in is in use.
|
|
|
|
|
|
|
|
|
|
* Enhance the volstat interface to support Dfs path mappings.
|
|
|
|
|
|
|
|
|
|
* Fix "symlink list" to do the right thing for Dfs links
|
|
|
|
|
|
|
|
|
|
* Fix callback expiration that was broken in 1.5.27.
|
|
|
|
|
|
|
|
|
|
* Fix a crash at shutdown caused by the lack of synchronization
|
|
|
|
|
within the daemon threads (cm_Daemon, cm_BkgDaemon, cm_IPAddrDaemon)
|
|
|
|
|
|
|
|
|
|
* Hold the cm_server_t mutex while walking or modifying the
|
|
|
|
|
cm_server_vols_t list in order to avoid a race condition.
|
|
|
|
|
|
|
|
|
|
* Ensure that the cm_server_t refCount is safely modified.
|
|
|
|
|
|
|
|
|
|
* The pthread library implementations of pthread_cond_wait
|
|
|
|
|
and pthread_cond_timedwait were failing to return with
|
|
|
|
|
the mutex held when error conditions occurred. This could
|
|
|
|
|
result in race conditions wherever they are used. One case
|
|
|
|
|
in which problems were seen was the Rx event_handler().
|
|
|
|
|
|
|
|
|
|
* Prevent cm_GetBuffer() from locking all buffers associated with
|
|
|
|
|
a stat cache object before deciding if the current buffer is up
|
|
|
|
|
to date.
|
|
|
|
|
|
|
|
|
|
* Fix cm_BkgPrefetch to actually ensure that there is a cm_buf_t
|
|
|
|
|
object for each offset that we will attempt to reserve.
|
|
|
|
|
|
|
|
|
|
* Reduce the default number of background daemon threads used to
|
|
|
|
|
prefetch or store to one in order to prevent two or more threads
|
|
|
|
|
from stepping on each other.
|
|
|
|
|
|
|
|
|
|
* Reduce the default chunk size to 256KB in order to prevent read
|
|
|
|
|
timeouts on low bandwidth connections.
|
|
|
|
|
|
|
|
|
|
* Fix a race condition that could result in threads becoming stranded
|
|
|
|
|
when synchronizing multiple requests on the same stat cache object.
|
|
|
|
|
|
|
|
|
|
Since 1.5.27
|
|
|
|
|
* The GiveUpAllCallBacks functionality that was added in 1.5.21
|
|
|
|
|
has been disabled. It has been disabled because it turns out
|
|
|
|
|
that the RPC is improperly implemented in all file servers
|
|
|
|
|
previous to 1.4.6. The RPC is executed without the proper
|
|
|
|
|
locks being held resulting in data corruption and eventual file
|
|
|
|
|
server failure. The functionality will be re-enabled in a
|
|
|
|
|
a few months.
|
|
|
|
|
|
|
|
|
|
* a couple of .readonly Volume Callback optimizations were
|
|
|
|
|
implemented:
|
|
|
|
|
- Apply most recent volume callback to all stat cache objects
|
|
|
|
|
in the volume. This avoids premature callback expirations
|
|
|
|
|
and unnecessary FetchStatus calls.
|
|
|
|
|
- Add option to permit attempts to renew .readonly Volume
|
|
|
|
|
Callbacks on a periodic basis to avoid invalidation of stat
|
|
|
|
|
cache data. [Requires daemonCheckVolCBInterval be set to
|
|
|
|
|
non-zero number of seconds. 1800 (30 minutes) is suggested.]
|
|
|
|
|
|
|
|
|
|
* Adds support for 64-bit data version values. Previous releases
|
|
|
|
|
only supported 32-bit values. Larger values sent by the file server
|
|
|
|
|
would result in rollover.
|
|
|
|
|
|
|
|
|
|
* aklog and asetkey no longer generate an exception if Kerberos for
|
|
|
|
|
Windows is not installed.
|
|
|
|
|
|
|
|
|
|
* If the LSA authentication functions report a temporary out of memory
|
|
|
|
|
condition, fail the current authentication and do not cause the AFS
|
|
|
|
|
client service to terminate unexpectedly.
|
|
|
|
|
|
|
|
|
|
* When the AFS client service is shutting down, prevent the daemon check
|
|
|
|
|
thread from executing additional checks which might attempt to access
|
|
|
|
|
discarded locks or unmapped memory.
|
|
|
|
|
|
|
|
|
|
* Correct a double free condition in the NIM AFS credentials provider.
|
|
|
|
|
|
|
|
|
|
* Add "FollowBackupPath" service parameter registry value.
|
|
|
|
|
This provides equivalent functionality to the UNIX afsd -backuptree
|
|
|
|
|
option. When set to a non-zero value, normal mount points originating
|
|
|
|
|
in a .backup volume will prefer a .backup volume.
|
|
|
|
|
|
|
|
|
|
Since 1.5.26
|
|
|
|
|
* Fix NSIS uninstall from the .MSI installer.
|
|
|
|
|
|
|
|
|
|
* Add Stack Frame logging for AMD64
|
|
|
|
|
|
|
|
|
|
* Add support for EWOULDBLOCK to cm_Analyze. If the file
|
|
|
|
|
server returns EWOULDBLOCK, retry the request every two
|
|
|
|
|
seconds for up to the RDRtimeout.
|
|
|
|
|
|
|
|
|
|
* Reorganize the order of the includes to ensure that EWOULDBLOCK
|
|
|
|
|
is not assigned the same value as EIO.
|
|
|
|
|
|
|
|
|
|
* Update CellServDB to GCO Public 25 Oct 2007
|
|
|
|
|
|
|
|
|
|
* Add additional validation and error handling code after
|
|
|
|
|
each call to getSlot(). If an invalid slot is returned,
|
|
|
|
|
return NONODE. If the invalid slot is returned when
|
|
|
|
|
extracting a data node, invalidate the tree.
|
|
|
|
|
|
|
|
|
|
* Modify compareKeys() to always perform a case-insensitive
|
|
|
|
|
comparison and only perform a case sensistive comparison
|
|
|
|
|
if the case-insensitive one matches. This ensures the
|
|
|
|
|
ordering is consistently reported.
|
|
|
|
|
|
|
|
|
|
* Add lock assertions to ensure that all calls are being
|
|
|
|
|
performed with the correct locks being held. There have been
|
|
|
|
|
some crash reports that provide stack data that does not appear
|
|
|
|
|
to be possible unless there is a race. However, there are no
|
|
|
|
|
obvious locations where the race is taking place and the test
|
|
|
|
|
suite indicates that all of the correct locks are being held.
|
|
|
|
|
We shall see what happens in the field.
|
|
|
|
|
|
|
|
|
|
* For consistency replace all calls to findKey in which the range i
|
|
|
|
|
s (1,numentries) with calls to getSlot().
|
|
|
|
|
|
|
|
|
|
* Optimize the depth search loop by testing the slot value in the
|
|
|
|
|
for statement instead of forcing the loop to be broken later.
|
|
|
|
|
|
|
|
|
|
* Reorganize the locking for cm_BeginDirOp and cm_EndDirOp.
|
|
|
|
|
There are a number of locations where locks are obtained, dropped,
|
|
|
|
|
and reobtained. This reorganization attempts to accomplish several
|
|
|
|
|
things:
|
|
|
|
|
|
|
|
|
|
(1) be optimistic for the most common case so it will be fast
|
|
|
|
|
|
|
|
|
|
(2) add consistency checks after each location where locks are
|
|
|
|
|
dropped and re-obtained. If we lose a race in cm_BeginDirOp
|
|
|
|
|
and the bplus tree is out of date, retry until we get to a
|
|
|
|
|
consistent state that we can use.
|
|
|
|
|
|
|
|
|
|
(3) Ensure that all operations take place with the correct locks.
|
|
|
|
|
|
|
|
|
|
* One of the issues that has become a serious problem since the
|
|
|
|
|
addition of the local directory updates is that although cm_SyncOp
|
|
|
|
|
synchronizes operations, it does not preserve the order of requests.
|
|
|
|
|
This has always been a problem in that it has been possible for a
|
|
|
|
|
request to fail to complete due to its worker thread's bad luck.
|
|
|
|
|
When a request takes longer than the Windows SMB Redirector's timeout,
|
|
|
|
|
the SMB Redirector tears down the SMB virtual circuit.
|
|
|
|
|
|
|
|
|
|
When using the local directory updates it is really important that
|
|
|
|
|
the directory update operations complete in the order that they were
|
|
|
|
|
sent to the file server. If they don't, then the local directory state
|
|
|
|
|
and the file server state will not match and the local directory state
|
|
|
|
|
must be discarded which in turn forces a new read of the entire
|
|
|
|
|
directory contents over the network.
|
|
|
|
|
|
|
|
|
|
This patch adds a new cm_scache_waiter_t object that is used to store
|
|
|
|
|
the current thread, buffer, and syncop flags within a waiters queue
|
|
|
|
|
on each cm_scache_t object. If a thread is forced to sleep in
|
|
|
|
|
cm_SyncOp, upon waking it will check to see if there are any other
|
|
|
|
|
threads waiting that are attempting to perform a similar task ahead
|
|
|
|
|
of it in the queue. If yes, the thread goes back to sleep. If not,
|
|
|
|
|
it goes ahead and enters the cm_SyncOp conflict resolution block.
|
|
|
|
|
|
|
|
|
|
This patch has the additional side effect of reducing the number of
|
|
|
|
|
competing threads that must obtain the cm_scache_t mutex and process
|
|
|
|
|
the cm_SyncOp conflict resolution block. As a result, the overall CPU
|
|
|
|
|
utilization of the service and the clock time associated with processing
|
|
|
|
|
requests will be reduced.
|
|
|
|
|
|
|
|
|
|
* assert that the cm_scache_t mutex is held when calling
|
|
|
|
|
buf_ForceDataVersion().
|
|
|
|
|
|
|
|
|
|
* rename findNode to leafNode in bplus_Lookup
|
|
|
|
|
|
|
|
|
|
* replace all OutputDebugString calls with osi_LogX calls
|
|
|
|
|
|
|
|
|
|
* modify bestMatch to special case the return values for leaf nodes.
|
|
|
|
|
If an entry is above or below the values available in the leaf node
|
|
|
|
|
return BTLOWER or BTUPPER instead of BTERROR.
|
|
|
|
|
|
|
|
|
|
* In insert and delete operations check for BTLOWER/BTUPPER and isleaf,
|
|
|
|
|
if true convert to either slot 0 or Max and perform the insertion.
|
|
|
|
|
This produces easier to read code when performing lookups.
|
|
|
|
|
|
|
|
|
|
* modify lock_AssertXXX macros to call osi_assertx() and provide a
|
|
|
|
|
descriptive message.
|
|
|
|
|
|
|
|
|
|
* the difference between osi_assert() and osi_assertx() is whether or not
|
|
|
|
|
a description is specified as part of the call. When no message is
|
|
|
|
|
specified afsd_notifier() is called with a NULL msgp parameter. This
|
|
|
|
|
results in a null pointer dereference during the EventLog() call.
|
|
|
|
|
|
|
|
|
|
As a result, none of the information describing the assertion is written
|
|
|
|
|
to the log file.
|
|
|
|
|
|
|
|
|
|
This commit sets a default message for use when no other message is
|
|
|
|
|
provided and it replaces all calls to osi_assert with osi_assertx and
|
|
|
|
|
adds descriptions.
|
|
|
|
|
|
|
|
|
|
* Migrate B+ tree search key into thread local storage
|
|
|
|
|
|
|
|
|
|
Since 1.5.25
|
|
|
|
|
* Fix an uninitialized variable in lana_IsLoopback() which
|
|
|
|
|
could result in a random determination that a loopback
|
|
|
|
|
adapter is not a loopback adapter. This would result in
|
|
|
|
|
a computed Netbios service name of %MACHINE%-AFS instead
|
|
|
|
|
of AFS. This is a serious problem if the value computed
|
|
|
|
|
by the AFS Client Service and the client process pioctl
|
|
|
|
|
calls produce different results as it will result in a
|
|
|
|
|
communication failure.
|
|
|
|
|
|
|
|
|
|
* Fix a crash in the B+ Tree code that results when a file
|
|
|
|
|
rename only results in a change of case.
|
|
|
|
|
|
|
|
|
|
* Fix the pioctl path parsing. The previous algorithm
|
|
|
|
|
broke the current directory of the client into two parts,
|
|
|
|
|
the TIDpath which represented the device root and the
|
|
|
|
|
relative path. The problem is that this is not sufficient
|
|
|
|
|
from proper processing of symlinks and mount points.
|
|
|
|
|
|
|
|
|
|
What is required is that the last component of the path
|
|
|
|
|
must not have the symlink or mount point be evaluated
|
|
|
|
|
whereas symlink and mount point evaluation must be performed
|
|
|
|
|
for the rest of the relative path. Therefore, the path is
|
|
|
|
|
now split into three parts: TIDpath, intermediate path,
|
|
|
|
|
and last component.
|
|
|
|
|
|
|
|
|
|
"fs examine" now reports the data of the symlink or mount
|
|
|
|
|
point object instead of the target and "symlink list" and
|
|
|
|
|
"symlink remove" now works. The "Explorer Shell Extension"
|
|
|
|
|
menu now is displayed for symlink objects.
|
|
|
|
|
|
|
|
|
|
* More informative symlink.exe error messages.
|
|
|
|
|
|
|
|
|
|
* When the cmd.exe "del" command is used to remove a symlink,
|
|
|
|
|
not only was the link object removed, but the stat cache
|
|
|
|
|
object for the target was marked deleted. This resulted
|
|
|
|
|
in cache corruption which would require the destruction
|
|
|
|
|
of the cache to correct.
|
|
|
|
|
|
|
|
|
|
* Add undocumented registry value, "OfflineReadOnlyIsValid"
|
|
|
|
|
which results in cached contents from read only volumes
|
|
|
|
|
to be treated as valid when there is no callback registered
|
|
|
|
|
and all servers are down or all instances are offline.
|
|
|
|
|
|
|
|
|
|
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
|
|
|
|
|
|
|
|
|
|
* Add documented registry value, "AcceptDottedPrincipalNames"
|
|
|
|
|
which is used to permit the acquisition of AFS tokens
|
|
|
|
|
using Kerberos v5 principal names which include a dot in
|
|
|
|
|
the first component.
|
|
|
|
|
|
|
|
|
|
{HKLM\HKCU}\Software\OpenAFS\Client
|
|
|
|
|
|
|
|
|
|
* "fs uuid" does not require "AFS Client Administrator" group
|
|
|
|
|
membership to display the current UUID value.
|
|
|
|
|
|
|
|
|
|
Since 1.5.24
|
|
|
|
|
* Update NSIS installer to version 2.30
|
|
|
|
|
|
|
|
|
|
* Update Wix installer to version 2.0.5325
|
|
|
|
|
|
|
|
|
|
* 64-bit KFW support:
|
|
|
|
|
- Network Identity Manager plug-in
|
|
|
|
|
- 64-bit aklog
|
|
|
|
|
- 64-bit krb5 enable afscreds.exe, afs server manager,
|
|
|
|
|
etc.
|
|
|
|
|
|
|
|
|
|
* Enable B+ tree Directory Search by default.
|
|
|
|
|
|
|
|
|
|
* NIM plug-in is now compatible with FILE: ccaches
|
|
|
|
|
|
|
|
|
|
* Install instloop.exe into Client/Programs/ even though
|
|
|
|
|
it isn't required. Permit it to be used by organizations
|
|
|
|
|
that clone Windows systems.
|
|
|
|
|
|
|
|
|
|
* On a suspend, only drop callbacks for servers that
|
|
|
|
|
are online. If the server is offline, maintain the callback
|
|
|
|
|
until the server is once again available.
|
|
|
|
|
|
|
|
|
|
* Prevent against acquisition of a directory write lock when
|
|
|
|
|
there are no updates to be performed. This was resulting
|
|
|
|
|
in a write-lock leak which later on would lead to a deadlock.
|
|
|
|
|
|
|
|
|
|
* Add configurable file pre-fetch mode. For files that match
|
|
|
|
|
the specified file extensions, pre-fetch the entire file into
|
|
|
|
|
the cache.
|
|
|
|
|
|
|
|
|
|
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAfsDaemon\Parameters
|
|
|
|
|
(MULTI_SZ) PrefetchExecutableExtensions
|
|
|
|
|
|
|
|
|
|
* Fix the client_osi large integer support so that return values
|
|
|
|
|
can be properly assigned to large integer variables.
|
|
|
|
|
|
|
|
|
|
* Do not hold cm_scache_t mutex across cm_GetCell() calls
|
|
|
|
|
since cm_GetCell() can block in a RPC.
|
|
|
|
|
|
|
|
|
|
* Add short file name support to B+ tree searches.
|
|
|
|
|
|
|
|
|
|
* Resolve a conflict between the desire to notify file servers
|
|
|
|
|
that the client workstation is suspending and the desire to
|
|
|
|
|
permit objects with valid callbacks when the client suspends
|
|
|
|
|
to continue to use those objects from the cache if the client
|
|
|
|
|
resumes without network connectivity.
|
|
|
|
|
|
|
|
|
|
* Fix stack variables to ensure that all buffers storing paths
|
|
|
|
|
can handle AFSPATHMAX (1024) characters. Paths of 256 characters
|
|
|
|
|
would cause a stack overflow condition.
|
|
|
|
|
|
|
|
|
|
* On Vista, force afs_config.exe to run with the highest privileges
|
|
|
|
|
available to the end user. For a user in the Administrators
|
|
|
|
|
group running under UAC, this will cause afs_config.exe to be
|
|
|
|
|
be run with full Administrators privileges after the user
|
|
|
|
|
approves the privilege escalation.
|
|
|
|
|
|
|
|
|
|
* More VNOVNODE handling issues. If a dirty buffer cannot be
|
|
|
|
|
written due to VNOVNODE, clear the buffer and ignore the error.
|
|
|
|
|
If a cm_scache_t object has been marked deleted due to a VNOVNODE
|
|
|
|
|
error, the next time the smb_fid_t object that references it is
|
|
|
|
|
used return either NOSUCHFILE or NOSUCHPATH and close the
|
|
|
|
|
smb_fid_t object. Subsequent attempts to use the smb_fid_t will
|
|
|
|
|
result in an invalid handle error.
|
|
|
|
|
|
|
|
|
|
* For Vista, set the RequestExecutionLevel of the NSIS installer
|
|
|
|
|
to "admin".
|
|
|
|
|
|
|
|
|
|
* For the build environment, support the generation of manifests
|
|
|
|
|
when using the CL1310 (VS .NET 2003) compiler/linker.
|
|
|
|
|
|
|
|
|
|
* There was a bug in OutputDebugHexString() which could overflow
|
|
|
|
|
a stack buffer resulting in unexpected process termination
|
|
|
|
|
of afsd_service.exe if the input Security Token contained
|
|
|
|
|
many bytes equivalent to the '%' char.
|
|
|
|
|
|
|
|
|
|
* Add directory lookup statistics to "fs memdump" output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Since 1.5.23
|
|
|
|
|
* Windows uses case-insensitive file name pattern matching
|
|
|
|
|
but AFS is a case sensitive file system. The AFS3 directory
|
|
|
|
|
format is block based, uses network byte order and
|
|
|
|
|
includes a hash table for fast case sensitive lookups.
|
|
|
|
|
This causes several problems for the Windows AFS client.
|
|
|
|
|
(1) Traversing the directory blocks is cpu expensive
|
|
|
|
|
(2) A hash table miss does not indicate that the desired
|
|
|
|
|
entry does not exist.
|
|
|
|
|
(3) Determining whether a non-ambiguous inexact match or
|
|
|
|
|
the entry does not exist requires a linear traversal
|
|
|
|
|
of the entire directory.
|
|
|
|
|
These issues often result in 100% CPU utilization.
|
|
|
|
|
|
|
|
|
|
These issues are addressed by building a modified B+ tree for
|
|
|
|
|
each directory and then using the B+ tree for searches.
|
|
|
|
|
|
|
|
|
|
This feature is disabled by default. To enable it set
|
|
|
|
|
the "BPlusTrees" registry value to 0x01 in the AFS Client
|
|
|
|
|
Service Parameters key.
|
|
|
|
|
|
|
|
|
|
* Correct a null pointer dereference in the symlink recursion
|
|
|
|
|
detection code. (Introduced in 1.5.22)
|
|
|
|
|
|
|
|
|
|
* Add the Network Identity Manager AFS Provider to AMD64
|
|
|
|
|
builds.
|
|
|
|
|
|
|
|
|
|
Since 1.5.22
|
|
|
|
|
|
|
|
|
|
* A new registry value, "BlockSize", can now be used to adjust
|
|
|
|
|
the size of the internal buffers used to store file data.
|
|
|
|
|
The default is 4KB. When set, the values 1..1024 specify
|
|
|
|
|
multiples of 4KB. Values > 1024 specify actual block sizes
|
|
|
|
|
and must be multiples of 4KB. The actual block size in KB
|
|
|
|
|
can not be larger than the chunk size which defaults to 1MB.
|
|
|
|
|
|
|
|
|
|
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAfsDaemon\Parameters
|
|
|
|
|
(DWORD) BlockSize
|
|
|
|
|
|
|
|
|
|
* pts.exe and ptserver.exe built with -DSUPERGROUPS
|
|
|
|
|
|
|
|
|
|
* Service Manager shutdown hints have been added. The hint
|
|
|
|
|
specifies that it may take the AFS client service up to two
|
|
|
|
|
minutes to shutdown.
|
|
|
|
|
|
|
|
|
|
* Fix the recursion detection feature introduced in 1.5.22.
|
|
|
|
|
The previous implementation broke the evaluation of paths
|
|
|
|
|
using ../path or ./path. It also broke the evaluation of
|
|
|
|
|
symlinks to absolute paths. For example, /afs/cell/path.
|
|
|
|
|
|
|
|
|
|
* Fix an uninitialized variable in cm_MakeDir that could result
|
|
|
|
|
in crash if the requested directory could not be created.
|
|
|
|
|
|
|
|
|
|
* Fix a the VolumeStatusNotification log messages to save
|
|
|
|
|
the input string in the circular log buffer so garbarge
|
|
|
|
|
won't be output to afsd.log when the log is dumped.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Increase the SMB Maximum Path length to 260 characters
|
|
|
|
|
from 256 as that is what CIFS supports.
|
|
|
|
|
|
|
|
|
|
* On 64-bit Windows, use a unique description string for
|
|
|
|
|
the 32-bit AFS Shell Extension.
|
|
|
|
|
|
|
|
|
|
Since 1.5.21
|
|
|
|
|
|
|
|
|
|
* In the AFS Admin Library, replaced all of the
|
|
|
|
|
Ubik_Call(XXX_RPC,...) calls with Ubik_XXX_RPC(...). This
|
|
|
|
|
allows parameter checking and proper type conversions to be
|
|
|
|
|
performed. This is crucial when passing parameters that are
|
|
|
|
|
64-bit wide on systems in which 'long' is a 32-bit value.
|
|
|
|
|
Otherwise, the parameter list on the stack is interpretted
|
|
|
|
|
incorrectly and the function not only doesn't succeed but it
|
|
|
|
|
might corrupt memory and if lucky crash the application.
|
|
|
|
|
|
|
|
|
|
The only program that we care about that uses this library
|
|
|
|
|
is the AFS Server Manager. Now it doesn't crash.
|
|
|
|
|
|
|
|
|
|
* Fixed smb directory searches for non-wildcard names. The
|
|
|
|
|
optimized function should not have set the bulk in progress
|
|
|
|
|
flag. This would adversely affect later directory searches
|
|
|
|
|
that required a bulk search.
|
|
|
|
|
|
|
|
|
|
* Detect infinite recursions (up to 512 stat cache objects
|
|
|
|
|
in a chain.) If an infinite recursion is detected, return
|
|
|
|
|
an error to stop the CIFS client from querying us forever.
|
|
|
|
|
|
|
|
|
|
* Executables executed out of AFS name space can have their
|
|
|
|
|
pages swapped out by Windows. Those pages will be reloaded
|
|
|
|
|
when they are required. However, if the cache manager no
|
|
|
|
|
longer has a callback and all of the file servers with
|
|
|
|
|
the volume data are down, then the application will crash
|
|
|
|
|
due to the inability to read the required page.
|
|
|
|
|
|
|
|
|
|
We now track the down time of each server. If the callback
|
|
|
|
|
expires after the server that issued it went down and all
|
|
|
|
|
servers are down, we delay the expiration to permit the data
|
|
|
|
|
in the cache to be continue to be used by Windows or an
|
|
|
|
|
application.
|
|
|
|
|
|
|
|
|
|
* The Windows AFS client has always had very poor performance
|
|
|
|
|
with regards to directory management. In the case of
|
|
|
|
|
directory updates caused by create, rename,and delete operations,
|
|
|
|
|
the AFS cache manager will now perform local directory updates
|
|
|
|
|
when possible in order to avoid re-reading the directory from
|
|
|
|
|
the file server. This will be done in whenever both of the
|
|
|
|
|
following conditions are true:
|
|
|
|
|
|
|
|
|
|
- the data version on the directory increased by one as a
|
|
|
|
|
result of the operation
|
|
|
|
|
|
|
|
|
|
- all of the directory buffers necessary to make the change
|
|
|
|
|
are present in the cache
|
|
|
|
|
|
|
|
|
|
* The error message in the AFS Control Panel describing the
|
|
|
|
|
need to be a Windows Administrator has been replaced with
|
|
|
|
|
a message describing the need to be in the AFS Admins Group.
|
|
|
|
|
|
|
|
|
|
* If the vldb server list is empty when attempting to evaluate
|
|
|
|
|
a cell mountpoint it was possible for a crash to occur. This
|
|
|
|
|
can only happen if there is an existing mount point and the
|
|
|
|
|
is a failure attempting to load the server list from the
|
|
|
|
|
CellServDB file or via AFSDB queries.
|
|
|
|
|
|
|
|
|
|
* dirty buffers only have their dirty bytes stored to the file
|
|
|
|
|
server instead of the entire chunksize
|
|
|
|
|
|
|
|
|
|
* the default chunksize has been increased from 128KB to 1MB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Since 1.5.20
|
|
|
|
|
|
|
|
|
|
* changed the enum values for cm_serverRef_t state info to use a
|
|
|
|
|
private name space to avoid collisions (srv_)
|
|
|
|
|
|
|
|
|
|
* added a srv_deleted state for cm_serverRef_t objects. This
|
|
|
|
|
state is set when cm_FreeServerList() is called with the
|
|
|
|
|
CM_FREESERVERLIST_DELETE flag set. cm_FreeServerList() may
|
|
|
|
|
not always delete the cm_serverRef_t from the list if it is
|
|
|
|
|
still in use by another thread. the srv_deleted state means
|
|
|
|
|
the object's contents are no longer valid and it must be
|
|
|
|
|
skipped. It will be deleted the next time the object is
|
|
|
|
|
freed and the refcount hits zero.
|
|
|
|
|
|
|
|
|
|
* the srv_deleted state is also used when a file server reports
|
|
|
|
|
either VNOVOL or VMOVED instead of marking the cm_serverRef_t
|
|
|
|
|
as offline. This is done to prevent additional usage of the
|
|
|
|
|
stale vldb data while waiting for the update volume request
|
|
|
|
|
to complete.
|
|
|
|
|
|
|
|
|
|
* added a state field to the cm_volume_t object (enum volstate
|
|
|
|
|
vl_ name space) that maintains the state of the volume based
|
|
|
|
|
upon the states of all of the cm_serverRef_t and cm_server_t
|
|
|
|
|
objects.
|
|
|
|
|
|
|
|
|
|
* modified cm_UpdateVolume() to set the state of the cm_volume_t
|
|
|
|
|
RW, RO, and BK to either vl_alldown or vl_online. There can't
|
|
|
|
|
be any other states because cm_UpdateVolume() destroys any
|
|
|
|
|
previous knowledge we might have had regarding busy or offline
|
|
|
|
|
volume status
|
|
|
|
|
|
|
|
|
|
* modified cm_UpdateVolume() to update the volume name in the
|
|
|
|
|
cm_volume_t to the volume base name if the previous value was
|
|
|
|
|
a volume ID.
|
|
|
|
|
|
|
|
|
|
* modified cm_FollowMountPoint() to check to see if the volume
|
|
|
|
|
name is a volume ID and if so call cm_GetVolumeByID instead
|
|
|
|
|
of cm_GetVolumeByName. This ensures that volume IDs are always
|
|
|
|
|
looked up as numeric values. There is no longer a need to
|
|
|
|
|
maintain a separate cm_volume_t containing the string representation
|
|
|
|
|
of the ID value.
|
|
|
|
|
|
|
|
|
|
* Added a flags parameter to cm_GetVolumeByName() and cm_GetVolumeByID().
|
|
|
|
|
The first flag is a "CREATE" flag which is set by all existing
|
|
|
|
|
calls. The flag is not set by calls to cm_GetVolumeByID() from
|
|
|
|
|
the server probe code when volume status is being updated. We
|
|
|
|
|
do not want the server probe operation to result in additional
|
|
|
|
|
turnover in the cached volume data. The second flag is NO_LRU_UPDATE
|
|
|
|
|
which is set when the server probe code updates the volume status.
|
|
|
|
|
This flag will be used to prevent the server probe operation from
|
|
|
|
|
changing the order of the least recently used queue.
|
|
|
|
|
|
|
|
|
|
* Modified cm_GetVolumeByName to ensure that only one cm_volume_t is
|
|
|
|
|
allocated for a given set of normal, readonly, and backup volumes
|
|
|
|
|
regardless of whether or not the volume is accessed via name or
|
|
|
|
|
ID number. The cm_volume_t namep field is always the base name
|
|
|
|
|
of the volume.
|
|
|
|
|
|
|
|
|
|
* Added a new volume state, vl_unknown. This state is used as
|
|
|
|
|
the initial state for all cm_volume_t when the cache manager starts,
|
|
|
|
|
for each cm_volume_t at creation, and for each cm_volume_t when
|
|
|
|
|
recycling. The cache manager does not know the state of all
|
|
|
|
|
volumes in the world, only those that are in the cache and for
|
|
|
|
|
which it has queried the VLDB and hosting file servers.
|
|
|
|
|
|
|
|
|
|
* modified cm_GetVolumeByName() to initialize the state of a
|
|
|
|
|
volume to vl_unknown. The actual state will be set when a
|
|
|
|
|
cm_VolumeUpdate() call completes successfully.
|
|
|
|
|
|
|
|
|
|
* changed name of scache hash table variables to avoid ambiguity
|
|
|
|
|
when adding hash tables for volumes
|
|
|
|
|
|
|
|
|
|
* fix a buffer overrun in sys\pioctl_nt.c pioctl().
|
|
|
|
|
|
|
|
|
|
* modified cm_UpdateVolume() to handle the case in which there is
|
|
|
|
|
no RW volume but there is are RO volumes for a given base name.
|
|
|
|
|
This is done by querying for the ".readonly" volume name if the
|
|
|
|
|
base name does not exist in the VLDB. We never query for the
|
|
|
|
|
.backup name because under the current usage model a .backup
|
|
|
|
|
volume may only exist on the server that the read-write volume
|
|
|
|
|
is located. If there is no RW volume, there can be no .backup.
|
|
|
|
|
|
|
|
|
|
* Added four hash tables for cm_volume_t objects to improve the
|
|
|
|
|
search time of cm_GetVolumeByID(), cm_GetVolumeByName() and
|
|
|
|
|
cm_ForceUpdateVolume(). One each for Name, RWID, ROID, and
|
|
|
|
|
BKID. Three ID hash tables are necessary as long as it is
|
|
|
|
|
desireable to maintain a single cm_volume_t containing all
|
|
|
|
|
of the related RW, RO, and BK volume data. Having the RW and
|
|
|
|
|
RO volume data in the same object is necessary for the
|
|
|
|
|
implementation of cm_GetROVolumeID() which returns either the
|
|
|
|
|
RO or RW ID depending upon the existence of RO volume instances.
|
|
|
|
|
|
|
|
|
|
* Added a volume LRU queue so that volume reuse becomes fairer.
|
|
|
|
|
This does not replace the all Volumes list which is used when
|
|
|
|
|
it is desireable to walk a list of all the volumes whose order
|
|
|
|
|
is not going to change out from underneath you which makes it
|
|
|
|
|
safe to drop the cm_volumeLock.
|
|
|
|
|
|
|
|
|
|
* handles volume hash table updates where volume name to
|
|
|
|
|
volume ID number changes. The volume name remains
|
|
|
|
|
constant in the cm_volume_t. if a vos rename is performed,
|
|
|
|
|
the name of the volume will change and the volume IDs will be
|
|
|
|
|
updated. Subsequent access to the old volume ID will create a
|
|
|
|
|
new cm_volume_t with the new name.
|
|
|
|
|
|
|
|
|
|
* Added a daemon thread operation to query the state of volumes
|
|
|
|
|
listed as busy or offline. cm_CheckBusyVolumes() calls
|
|
|
|
|
RXAFS_GetVolumeStatus() for each volume ID that is marked vl_busy
|
|
|
|
|
or vl_offline. If the volume is now online, the status on the
|
|
|
|
|
volume is updated. The default period is 600 seconds. This can
|
|
|
|
|
be configured with the BusyVolumeCheckInterval registry value.
|
|
|
|
|
|
|
|
|
|
* Added prototype for smb_IoctlPrepareRead() which was missing a
|
|
|
|
|
return type in the function definition.
|
|
|
|
|
|
|
|
|
|
* Added volume id lists to the cm_server_t. These lists are
|
|
|
|
|
allocated in blocks of ~32 IDs. When a cm_PingServer()
|
|
|
|
|
detects a change in server state, the state of the cm_volume_t
|
|
|
|
|
is updated.
|
|
|
|
|
|
|
|
|
|
* Added volID to the cm_serverRef_t object. volID is used
|
|
|
|
|
to identify the volume for which the object is a referral.
|
|
|
|
|
cm_FreeServerList() uses the volID to remove the volume
|
|
|
|
|
from the cm_server_t.
|
|
|
|
|
|
|
|
|
|
* In cm_Analyze, when VNOVOL or VMOVED are received,
|
|
|
|
|
call cm_ForceVolumeUpdate() to force a refresh of the volume
|
|
|
|
|
location data.
|
|
|
|
|
|
|
|
|
|
* Added cm_VolumeStatusNotification() which is used at the moment
|
|
|
|
|
to log volume status changes to the trace log. It will also
|
|
|
|
|
be used as the access point to the File System Filter driver
|
|
|
|
|
notification engine.
|
|
|
|
|
|
|
|
|
|
* Added an all cm_scache_t list to cm_data. This replaces the use
|
|
|
|
|
of the stat cache LRU queue when we need to enumerate all
|
|
|
|
|
entries. The LRU list order is not static and when using it to
|
|
|
|
|
enumerate all entries it can result in items being missed or
|
|
|
|
|
items being processed more than once.
|
|
|
|
|
|
|
|
|
|
* Modified cm_Analyze(). Instead of reseting the busy or offline
|
|
|
|
|
state of a volume and forcing a retry of the operation
|
|
|
|
|
cm_Analyze will defer to the background daemon thread that will
|
|
|
|
|
update the state once every 600 seconds.
|
|
|
|
|
|
|
|
|
|
* Added the automatic generation of a Freelance ".root" read-write
|
|
|
|
|
mountpoint that refers to the root.afs volume of the workstation
|
|
|
|
|
cellname at the time the mountpoint is created.
|
|
|
|
|
|
|
|
|
|
* re-write cm_Analyze to make better use of the known volume
|
|
|
|
|
status. VL_Server queries cannot result in CM_ERROR_ALLOFFLINE
|
|
|
|
|
messages.
|
|
|
|
|
|
|
|
|
|
* renamed cm_CheckBusyVolumes to cm_CheckOfflineVolumes.
|
|
|
|
|
busy volumes will be reset to srv_non_busy by the function
|
|
|
|
|
but there is no mechanism for querying the busy state other
|
|
|
|
|
than by attempting to access the resource.
|
|
|
|
|
|
|
|
|
|
* cm_Analyze will query the state of an offline volume before
|
|
|
|
|
deciding whether or not to retry when all volume instances
|
|
|
|
|
are offline.
|
|
|
|
|
|
|
|
|
|
* the algorithm used after an IP address list change detection
|
|
|
|
|
has been modified. we now check the state of the VLDB servers,
|
|
|
|
|
then reset the rx connections, and finally check the state of
|
|
|
|
|
the file servers. Previously we flushed the rx connections
|
|
|
|
|
and then checked the servers in whatever random order they
|
|
|
|
|
were first discovered.
|
|
|
|
|
|
|
|
|
|
* fix the volume status reported by "fs examine"
|
|
|
|
|
|
|
|
|
|
* various improvements to the AFS Network Identity Manager Provider.
|
|
|
|
|
- Don't access freed objects after the window has been destroyed.
|
|
|
|
|
- Write back the AFS cell list in the identity configuration
|
|
|
|
|
even when its empty.
|
|
|
|
|
- Disable all use of the provider when AFS is disabled for a
|
|
|
|
|
particular identity.
|
|
|
|
|
|
|
|
|
|
* Fix cm_cell_t leak. When evaluating a mountpoint that uses an
|
|
|
|
|
alias instead of the full cellname, double check the full cell
|
|
|
|
|
name and see if we have a matching cell before allocating a new
|
|
|
|
|
one.
|
|
|
|
|
|
|
|
|
|
* Dump more data with "fs memdump". All volumes and scaches and
|
|
|
|
|
now cells.
|
|
|
|
|
|
|
|
|
|
* Reverse the order of the all cells list. This ensures that
|
|
|
|
|
the workstation cell is always first in the list.
|
|
|
|
|
|
|
|
|
|
* If we recognize the server from which a callback revoke was
|
|
|
|
|
received, then we can ensure that we only invalidate the status
|
|
|
|
|
information for cm_scache_t objects belonging to that cell.
|
|
|
|
|
|
|
|
|
|
* When building for amd64, use APPVER 5.02 as we do not support
|
|
|
|
|
64-bit Windows 2000 and explicitly state the machine type in
|
|
|
|
|
the link flags.
|
|
|
|
|
|
|
|
|
|
* no longer treat VMWare network adapters as equivalent to a
|
|
|
|
|
loopback adapter. For some unknown reason, publishing the "AFS"
|
|
|
|
|
netbios name on them frequently results in a name collision
|
|
|
|
|
error.
|
|
|
|
|
|
|
|
|
|
* Use read locks whenever possible instead of write locks when
|
|
|
|
|
walking the allCellsp list. This permits better use of multiple
|
|
|
|
|
CPUs.
|
|
|
|
|
|
|
|
|
|
* In 1.5.20 a bug was introduced by the fake status when PRSFS_READ
|
|
|
|
|
is not present on the directory optimization. It would report
|
|
|
|
|
mount points and directory objects for which there was no
|
|
|
|
|
status information as a zero length file. Instead we can use
|
|
|
|
|
the vnode number of the object to determine if it should be
|
|
|
|
|
considered to be a directory or a file. If it is odd it is a
|
|
|
|
|
directory; even it is a file.
|
|
|
|
|
|
|
|
|
|
* Give Back Callbacks to the file servers in response to suspend
|
|
|
|
|
and shutdown power management events. Only give up callbacks
|
|
|
|
|
to UP servers and do so with a very short RX dead timeout.
|
|
|
|
|
(10 seconds)
|
|
|
|
|
|
|
|
|
|
* Fix a race condition in the SMB FID cleanup code that could
|
|
|
|
|
result in a stat cache mutex never being released.
|
|
|
|
|
|
|
|
|
|
* Fix the graphics files that are installed as part of the
|
|
|
|
|
IBM Administrators Guide.
|
|
|
|
|
|
|
|
|
|
* Change the behavior of pioctl path parsing to not follow
|
|
|
|
|
symlinks or mount points during evaluation. This results in
|
|
|
|
|
the FID being the symlink or mount point and not the object
|
|
|
|
|
they point to. This is consistent with the behavior of the
|
|
|
|
|
UNIX client.
|
|
|
|
|
|
|
|
|
|
* Enable AFSDB record lookup for command line tools such as
|
|
|
|
|
"fs" and "vos".
|
|
|
|
|
|
|
|
|
|
* CellServDB update 2007-07-05
|
|
|
|
|
|
|
|
|
|
* Added a Volume Status Plug-in Interface that permits third parties
|
|
|
|
|
to receive notifications when the volume state changes occur.
|
|
|
|
|
|
|
|
|
|
* Ensure that all writes to the afsd_alloc.log file use CR-LF.
|
|
|
|
|
|
|
|
|
|
* Prevent the afsprocmgmt.dll from being unloaded while the
|
|
|
|
|
background thread it starts is running.
|
|
|
|
|
|
|
|
|
|
* Avoid a race condition when closing smb_fid_t objects.
|
|
|
|
|
|
|
|
|
|
Since 1.5.19
|
|
|
|
|
* fix install path of IBM Quick Start Guide when installed by
|
|
|
|
|
the Wix installer
|
|
|
|
|
|
|
|
|
|
* fix the client so that it can write into directories with
|
|
|
|
|
only 'li' permissions.
|
|
|
|
|
|
|
|
|
|
* fix installation of 32-bit Shell Extension for 64-bit systems.
|
|
|
|
|
Install it under its own HKCR keys.
|
|
|
|
|
|
|
|
|
|
* modify the wix installer to remove and upgrade install packages
|
|
|
|
|
with the same version number.
|
|
|
|
|
|
|
|
|
|
* when flushing volume location data every two hours or in
|
|
|
|
|
response to "fs checkvolumes", also flush the mount point
|
|
|
|
|
links in order to force their re-evaluation.
|
|
|
|
|
|
|
|
|
|
* aklog was copying an uninitialized buffer as part of the
|
|
|
|
|
foreign cell automatic pts registration
|
|
|
|
|
|
|
|
|
|
* when obtaining directory listings, check for read permission
|
|
|
|
|
on the directory. If read permission does not exist, fake the
|
|
|
|
|
status information for the directory entries. This improves
|
|
|
|
|
performance, prevents the client from pounding the file server,
|
|
|
|
|
and prevents leakage of cached status information.
|
|
|
|
|
|
|
|
|
|
* "fs getcacheparms" output was incorrect.
|
|
|
|
|
|
|
|
|
|
* NetIdMgr AFS Provider should only automatically add token
|
|
|
|
|
acquisition for cell foo.com if the realm of the cell matches
|
|
|
|
|
the realm of the identity.
|
|
|
|
|
|
|
|
|
|
* Fix a null pointer dereference in cm_MergeStatus()
|
|
|
|
|
|
|
|
|
|
Since 1.5.18
|
|
|
|
|
|
|
|
|
|
* network identity manager provider:
|
|
|
|
|
|
|
|
|
|
- Correct for the fact that pr_CreateUser tampers with the
|
|
|
|
|
contents of the username input buffer.
|
|
|
|
|
|
|
|
|
|
- Take into account that the krb4 credential data structure
|
|
|
|
|
does not have separate realm fields for the user and service.
|
|
|
|
|
When krb524 is used with a cross-realm ticket, the realm
|
|
|
|
|
describes the service not the user.
|
|
|
|
|
|
|
|
|
|
* Many integrated logon changes:
|
|
|
|
|
|
|
|
|
|
- Fix eventlog reporting. Do not attempt to log an event
|
|
|
|
|
if the event source registration fails. Use DebugEvent0
|
|
|
|
|
instead of DebugEvent when there are no parameters.
|
|
|
|
|
|
|
|
|
|
- Modify the LOOKUPKEYCHAIN macro to recognize ERROR_MORE_DATA
|
|
|
|
|
errors.
|
|
|
|
|
|
|
|
|
|
- Fix the reading of Domain specific configuration for
|
|
|
|
|
LogonScript and TheseCells. Previously the dwSize value was
|
|
|
|
|
being overwritten so that subsequent RegQueryValueEx call
|
|
|
|
|
would fail.
|
|
|
|
|
|
|
|
|
|
- Fix a memory leak in the TheseCells reading code.
|
|
|
|
|
|
|
|
|
|
- Add support for Domain specific "Realm" specification. The
|
|
|
|
|
realm is the realm to be appended to the username. When
|
|
|
|
|
logging in as a domain or to the local machine, the specified
|
|
|
|
|
"Domain" name is not going to be a valid realm name.
|
|
|
|
|
|
|
|
|
|
- Construct a proper principal name based upon the domain
|
|
|
|
|
specified realm for use in obtaining tokens with KFW.
|
|
|
|
|
|
|
|
|
|
- If the domain specified "TheseCells" list includes the
|
|
|
|
|
default cell, do not obtain tokens twice.
|
|
|
|
|
|
|
|
|
|
* An unprotected call to the Kerberos v5 function,
|
|
|
|
|
krb5_free_context(), can result in an invalid memory access
|
|
|
|
|
exception if the contents of the krb5 profile, krb5.ini, cannot
|
|
|
|
|
be parsed correctly. The error is located within the afskfw
|
|
|
|
|
library which is used by afscreds.exe, afssvrmgr.exe, and
|
|
|
|
|
afslogon.dll. When the error is triggered within afslogon.dll
|
|
|
|
|
a blue screen condition can occur when the winlogon.exe system
|
|
|
|
|
process terminates unexpectedly.
|
|
|
|
|
|
|
|
|
|
Since 1.5.17
|
|
|
|
|
|
|
|
|
|
* Do not stop the afs client service with an assert
|
|
|
|
|
if the cell name cannot be determined when responding
|
|
|
|
|
to a "fs whereis" command.
|
|
|
|
|
|
|
|
|
|
* Integrated Logon (afslogon.dll). No longer attempt
|
|
|
|
|
to preserve Kerberos 5 tickets for the logon session
|
|
|
|
|
as that job is now supported by KFW 3.1 and above.
|
|
|
|
|
|
|
|
|
|
* The Network Identity Manager plug-in will attempt to
|
|
|
|
|
remove expired service tickets from the cache.
|
|
|
|
|
|
|
|
|
|
Since 1.5.16
|
|
|
|
|
|
|
|
|
|
* CellServDB update - GCO Public CellServDB 09 Mar 2007
|
|
|
|
|
|
|
|
|
|
* AFS Server Manager and AFS Account Manager data cache
|
|
|
|
|
moved from HKCU\Software\TransarcCorporation to
|
|
|
|
|
HKCU\Software\OpenAFS to prevent crashes due to data
|
|
|
|
|
format changes.
|
|
|
|
|
|
|
|
|
|
* Reduce the default UP server probe time from 10 minutes
|
|
|
|
|
to 5 minutes to match UNIX. This will not solve the NAT
|
|
|
|
|
port mapping timeout issue because most NATs default to
|
|
|
|
|
a value less that 5 minutes and this value ensures that
|
|
|
|
|
the afs client server will start probes 5 minutes after
|
|
|
|
|
the last probe set ended. The probe period for any one
|
|
|
|
|
server is therefore longer than 5 minutes. The more
|
|
|
|
|
servers in the list the longer the time between probes.
|
|
|
|
|
|
|
|
|
|
* Before marking a server as down in cm_Analyze, retry the
|
|
|
|
|
request using a new rx connection to the server. If the
|
|
|
|
|
cache manager is behind a NAT, it is possible that the
|
|
|
|
|
response from the server is being sent to the original
|
|
|
|
|
address:port from which the rx connection was established.
|
|
|
|
|
This will appear to the cache manager as the server being
|
|
|
|
|
down when in fact it is not. Forcing the use of a new rx
|
|
|
|
|
connection will result in the server responding to the
|
|
|
|
|
most recent address:port assigned to the client by the NAT.
|
|
|
|
|
|
|
|
|
|
If the server is in fact down, it will simply take a little
|
|
|
|
|
longer to notice it.
|
|
|
|
|
|
|
|
|
|
Since 1.5.15
|
|
|
|
|
|
|
|
|
|
* Removing a directory that contained entries was failing with
|
|
|
|
|
the wrong error code being returned to the CIFS client.
|
|
|
|
|
|
|
|
|
|
* rxdebug -long
|
|
|
|
|
|
|
|
|
|
* rxdebug exponential back-off. don't take down a server that
|
|
|
|
|
is already struggling to respond.
|
|
|
|
|
|
|
|
|
|
* Network Identity Manager plug-in registers help on the Help
|
|
|
|
|
menu if it is supported by NIM. (KFW 3.2 and above)
|
|
|
|
|
|
|
|
|
|
* Plug-n-play networking did not always work after coming back
|
|
|
|
|
from a Windows Suspend. The AFS client service failed to
|
|
|
|
|
re-compute the LAN adapter to bind to and instead attempted
|
|
|
|
|
to bind to all LAN adapters. This would polute the public
|
|
|
|
|
network with the name "AFS" which could lead to conflicts
|
|
|
|
|
between machines.
|
|
|
|
|
|
|
|
|
|
* Build installers using Microsoft Hotfixes provided at
|
|
|
|
|
http://tinyurl.com/243svk for Visual Studio C RunTime Library
|
|
|
|
|
Daylight Savings Time issues.
|
|
|
|
|
|
|
|
|
|
* "fs checkserver" does not require admin privileges unless
|
|
|
|
|
the probe interval is being changed.
|
|
|
|
|
|
|
|
|
|
Since 1.5.14
|
|
|
|
|
|
|
|
|
|
* A reference leak was discovered in the mountpoint traversal
|
|
|
|
|
functionality which resulted in cm_volume_t objects not becoming
|
|
|
|
|
eligible for re-use. This will trigger a panic condition when
|
|
|
|
|
more than the maximum number of volumes is accessed.
|
|
|
|
|
|
|
|
|
|
* Fixed the success test for the "fs memdump" operation. Success
|
|
|
|
|
is now reported as such. Added cm_volume_t object information
|
|
|
|
|
to the dump file.
|
|
|
|
|
|
|
|
|
|
* A data corruption error has been fixed. Write requests
|
|
|
|
|
queued for background processing were not retried upon failure.
|
|
|
|
|
This leads to inconsistencies between the contents of the file
|
|
|
|
|
in the local cache and the contents of the file on the file
|
|
|
|
|
server.
|
|
|
|
|
|
|
|
|
|
The implemented fix is to re-queue any request that has failed
|
|
|
|
|
due to timeout, volume busy, volume offline, server busy, or
|
|
|
|
|
server offline. Requests are not processed while all servers
|
|
|
|
|
for a volume are inaccessible. When servers become accessible
|
|
|
|
|
the background request will be retried.
|
|
|
|
|
|
|
|
|
|
In addition, if a background write fails, do not mark the buffers
|
|
|
|
|
as clean. Failure to preserve the dirty flag prevents the buffers
|
|
|
|
|
from being written to the file server in the future.
|
|
|
|
|
|
|
|
|
|
This fix does not address the possibility that the credentials
|
|
|
|
|
necessary to perform a write request might expire between the
|
|
|
|
|
time the request is queued and when the request can be processed
|
|
|
|
|
due to server accessibility.
|
|
|
|
|
|
|
|
|
|
* The Freelance volume does not support per user ACLs. The
|
|
|
|
|
cm_HaveAccessRights function did not handle this special case.
|
|
|
|
|
Requests for privileges greater than read|lookup would result
|
|
|
|
|
in afsd_service.exe entering an infinite loop. ISOBuster is
|
|
|
|
|
known to cause this behavior.
|
|
|
|
|
|
|
|
|
|
* When deleting files, the SMB Server would attempt to obtain
|
|
|
|
|
the access permissions for the parent directory instead of
|
|
|
|
|
for the file itself. This would result in an incorrect
|
|
|
|
|
assessment of whether or not the file can be deleted.
|
|
|
|
|
|
|
|
|
|
* The Network Identity Manager AFS plug-in has had its string
|
|
|
|
|
tables updated for consistency with the language used by NIM.
|
|
|
|
|
All credentials are referred to as credentials instead of tokens.
|
|
|
|
|
Drop-down combo boxes now in fact drop down.
|
|
|
|
|
|
|
|
|
|
* The AFS Salvager was not properly being built on Windows.
|
|
|
|
|
This is relevant only if the AFS servers are in use.
|
|
|
|
|
|
|
|
|
|
* The default signal handlers for the AFS servers incorrectly
|
|
|
|
|
processed SIGQUIT. Instead of stopping the server, an
|
|
|
|
|
exception was raised.
|
|
|
|
|
|
|
|
|
|
* Fix another volume refcount leak. This one was triggered by
|
|
|
|
|
an inability to contact the vlservers in order to update the
|
|
|
|
|
file server list.
|
|
|
|
|
|
|
|
|
|
* Fix checklist control used by the drive mappings tabs in
|
|
|
|
|
afscreds.exe and afs_control.exe.
|
|
|
|
|
|
|
|
|
|
* Improve output of "fs memdump" related to buffer management.
|
|
|
|
|
|
|
|
|
|
* Fix refcount leak of cm_buf_t objects when prefetching buffers
|
|
|
|
|
already in the process of being fetched.
|
|
|
|
|
|
|
|
|
|
* Improve cache performance by computing the buffer hash table
|
|
|
|
|
size based upon the number of buffers so that the average
|
|
|
|
|
number of entries in a bucket is seven.
|
|
|
|
|
|
|
|
|
|
* Improve cache performance of read/write data by locally
|
|
|
|
|
updating the dataVersion of all buffers associated with the
|
|
|
|
|
file on each StoreData or StoreStatus operation provided that
|
|
|
|
|
the dataVersion was incremented by one and the dataVersion of
|
|
|
|
|
the buffer matched the original dataVersion of the cached
|
|
|
|
|
status information for the file.
|
|
|
|
|
|
|
|
|
|
* When recycling cm_scache_t objects, make sure that we
|
|
|
|
|
clear all of the previous fields. It is no longer the
|
|
|
|
|
case that we can assume that the stat cache object is being
|
|
|
|
|
obtained only after a successful FetchStatus call.
|
|
|
|
|
InlineBulkStatus will allocate stat cache objects for which
|
|
|
|
|
the no status information is available.
|
|
|
|
|
|
|
|
|
|
* When a file is being opened with the OPEN_ALWAYS disposition,
|
|
|
|
|
do not require write permissions when the file already exists
|
|
|
|
|
unless of course the file is being opened requesting write
|
|
|
|
|
access.
|
|
|
|
|
|
|
|
|
|
* When a file has been opened for read-only access, if the
|
|
|
|
|
application requests an exclusive lock, obtain a read-lock
|
|
|
|
|
instead of a write-lock. The purpose of the exclusive lock
|
|
|
|
|
in this situation is to prevent changes to the file and the
|
|
|
|
|
full file read lock will provide this guarrantee.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Since 1.5.13
|
|
|
|
|
|
|
|
|
|
* Enforce Unix Mode Write bit to prevent file deletion of read only
|
|
|
|
|
files.
|
|
|
|
|
|
|
|
|
|
* The CIFS READ and LIST permissions use the same value 0x0001.
|
|
|
|
|
When a directory is being accessed, check for PRSFS_LOOKUP
|
|
|
|
|
instead of PRSFS_READ.
|
|
|
|
|
|
|
|
|
|
Since 1.5.12
|
|
|
|
|
|
|
|
|
|
* Fix computations of short names of mount points. They were
|
|
|
|
|
broken as part of the directory search optimization. (1.5.13a)
|
|
|
|
|
|
|
|
|
|
* When all buffers are in use, periodically sleep the threads
|
|
|
|
|
waiting for a buffer to become free while the global buffer
|
|
|
|
|
lock is not being held in order to permit those threads that
|
|
|
|
|
can free buffers to do so.
|
|
|
|
|
|
|
|
|
|
* Power Management improvements. Maintain a global flag that
|
|
|
|
|
specifies whether or not the service is in a suspend state.
|
|
|
|
|
Do not panic if Netbios() returns NRC_BRIDGE meaning that the
|
|
|
|
|
lana is no longer valid. Instead, stop the listener threads
|
|
|
|
|
and if all listener threads are stopped, reset the lana_list.
|
|
|
|
|
Allow the cm_Daemon() thread to periodically check the state
|
|
|
|
|
of the smb listeners. If they are all stopped and the service
|
|
|
|
|
is not suspended, attempt to restart them. If there are no valid
|
|
|
|
|
lanas, return to the stopped state.
|
|
|
|
|
|
|
|
|
|
* CreateX and NTCreateX use cm_CheckNTOpen() to test whether or not
|
|
|
|
|
the user is permitted to obtain read or write locks. This function
|
|
|
|
|
would obtain the lock and then drop it returning whether or not
|
|
|
|
|
the lock could be obtained. If the lock was in fact required,
|
|
|
|
|
CreateX/NTCreateX would then obtain it with cm_Lock(). The problem
|
|
|
|
|
of course being that this pattern results in three RPCs to the
|
|
|
|
|
file server (lock, unlock, lock). This is reduced to one RPC by
|
|
|
|
|
implementing cm_CheckNTOpenDone() which frees the allocated byte
|
|
|
|
|
range lock from cm_CheckNTOpen() after the cm_Lock() call is
|
|
|
|
|
performed.
|
|
|
|
|
|
|
|
|
|
* Optimize the SMB FindFirst processing for the case in which there
|
|
|
|
|
are no wildcards. If a cm_Lookup succeeds, generate a response
|
|
|
|
|
from the stat cache entry we have a callback for. Its cheaper
|
|
|
|
|
than walking each buffer of directory data associated with the
|
|
|
|
|
directory stat cache entry when we have thousands of directory
|
|
|
|
|
entries to search.
|
|
|
|
|
|
|
|
|
|
* Increase the SMB Ioctl MaxData size to support larger token sizes
|
|
|
|
|
|
|
|
|
|
* Disable autorun of the AFS Server Wizard when the AFS Server is
|
|
|
|
|
installed.
|
|
|
|
|
|
|
|
|
|
* Add AFS Server service dependencies on tcpip and PNP_TDI
|
|
|
|
|
|
|
|
|
|
* Remove the AFS Server Configuration Tool shortcut
|
|
|
|
|
|
|
|
|
|
* Add Freelance mode awareness to AFS Server Configuration Tool
|
|
|
|
|
|
|
|
|
|
Since 1.5.11
|
|
|
|
|
|
|
|
|
|
* Unlike previous versions of the OS, Vista performs a shutdown on
|
|
|
|
|
the Microsoft Loopback adapter just like it would on a real adapter.
|
|
|
|
|
This causes the smb_Listener threads to trigger a panic during a
|
|
|
|
|
suspend/hibernate power event.
|
|
|
|
|
|
|
|
|
|
The fix is to unbind from the network adapters in response to a
|
|
|
|
|
suspend/hibernate power event and then rebind to the adapters
|
|
|
|
|
when a resume power event is received. Note that the resume events
|
|
|
|
|
are not reliably delivered so it is possible the afs service will
|
|
|
|
|
not be accessible. However, this is the best we can do.
|
|
|
|
|
|
|
|
|
|
* don't allow environment variables we set in afslogon.dll to be
|
|
|
|
|
inherited by child processes
|
|
|
|
|
|
|
|
|
|
* force an rx connection reset if VICECONNBAD or VICETOKENDEAD are
|
|
|
|
|
received
|
|
|
|
|
|
|
|
|
|
* The old dirty buffer synchronization algorithm had a buf_IncrSyncer
|
|
|
|
|
thread walking the all buffer list periodically searching for dirty
|
|
|
|
|
buffers to write to the file server. This had several negative
|
|
|
|
|
results. The algorithm ate up ever increasing amounts of CPU time
|
|
|
|
|
even when AFS is idle as the size of the cache increases. Also,
|
|
|
|
|
buffers were written to the file server in an order based upon the
|
|
|
|
|
original buffer allocation which has nothing to do with the order
|
|
|
|
|
in which the buffers became dirty.
|
|
|
|
|
|
|
|
|
|
The new algorithm maintains a dirty buffer list. Items are added
|
|
|
|
|
when the buffer is originally marked dirty. A buffer is only
|
|
|
|
|
removed from the list by the buf_IncrSyncer when the buffer is no
|
|
|
|
|
longer dirty. If the list is empty the thread goes back to sleep
|
|
|
|
|
immediately without additional processing requirements.
|
|
|
|
|
|
|
|
|
|
Since 1.5.10:
|
|
|
|
|
|
|
|
|
|
* Enable renaming of directories from the Explorer Shell when
|
|
|
|
|
Offline Folders is enabled
|
|
|
|
|
|
|
|
|
|
* An error is reported in response to the SMB ReceiveCoreFlush
|
|
|
|
|
request when an error has not occurred.
|
|
|
|
|
|
|
|
|
|
Since 1.5.9:
|
|
|
|
|
|
|
|
|
|
* optimize dirty buffer flushes in response to suspend operations
|
|
|
|
|
do not flush if only loopback adapter is installed
|
|
|
|
|
do no retry dirty buffer writes
|
|
|
|
|
|
|
|
|
|
* do not reset netbios when performing loopback checks. doing
|
|
|
|
|
so will break the existing lana bind
|
|
|
|
|
|
|
|
|
|
* remove a deadlock in smb3.c QPathInfo
|
|
|
|
|
|
|
|
|
|
Since 1.5.8:
|
|
|
|
|
|
|
|
|
|
* Add NetIDMgr AFS Plug-in
|
|
|
|
|
|
|
|
|
|
* "Show Tray Icon" checkbox removed from afs_config.exe
|
|
|
|
|
|
|
|
|
|
* Disable DNS Registrations for the Loopback Adapter and make sure
|
|
|
|
|
that Netbios is turned on.
|
|
|
|
|
|
|
|
|
|
* A reference count leak on stat cache objects was fixed
|
|
|
|
|
|
|
|
|
|
* For debugging, tread ids of writers are now tracked on locks
|
|
|
|
|
|
|
|
|
|
* Corrected an incorrect lock that was being held but not
|
|
|
|
|
freed in a rare error case
|
|
|
|
|
|
|
|
|
|
* Changed trace log end of line to CR-LF so it can be read
|
|
|
|
|
with notepad.exe
|
|
|
|
|
|
|
|
|
|
* modify the buffer synchronization thread to write all dirty
|
|
|
|
|
buffers and sleep only when there is no work to be done
|
|
|
|
|
|
|
|
|
|
* improve behavior of cache manager when large numbers of
|
|
|
|
|
temporary files are being created by multiple clients within
|
|
|
|
|
the same directory.
|
|
|
|
|
|
|
|
|
|
* do not permit dirty buffers that belong to deleted files
|
|
|
|
|
to be written to the file server. its a waste of bandwidth
|
|
|
|
|
|
|
|
|
|
* do not leak stat cache references when the file server
|
|
|
|
|
returns VNOVNODE
|
|
|
|
|
|
|
|
|
|
* afscreds: do not permit an attempt to obtain tokens if the
|
|
|
|
|
afs service could not be started. this was causing stack
|
|
|
|
|
overflows on Vista after resuming from a suspend
|
|
|
|
|
|
|
|
|
|
Since 1.5.7:
|
|
|
|
|
|
|
|
|
|
* better handling of dot directory
|
|
|
|
|
|
|
|
|
|
* fs sq and fs mkm now behave as on UNIX
|
|
|
|
|
|
|
|
|
|
* add license to installers
|
|
|
|
|
|
|
|
|
|
* Return Invalid Parameter error for unknown InfoLevels in
|
|
|
|
|
SMB Tran2 Search Directory.
|
|
|
|
|
|
|
|
|
|
* Correctly use WSAStartup and WSACleanup within the RX library
|
|
|
|
|
|
|
|
|
|
* Check that afsd_service.exe is running before performing
|
|
|
|
|
a pioctl call.
|
|
|
|
|
|
|
|
|
|
* Force AFS Shell Extension to load resource DLL using
|
|
|
|
|
afs_shl_ext.dll as a base name.
|
|
|
|
|
|
|
|
|
|
* (Wix) install afs_shl_ext_XXXX.dll and afs_creds_XXXX.dll in
|
|
|
|
|
OpenAFS\Client\Program
|
|
|
|
|
|
|
|
|
|
* Fix SMB_SET_FILE_END_OF_FILE_LENGTH
|
|
|
|
|
|
|
|
|
|
* Do not panic if the maximum number of volume entries are in use
|
|
|
|
|
and one of them can be recycled.
|
|
|
|
|
|
|
|
|
|
Since 1.5.6:
|
|
|
|
|
|
|
|
|
|
* Fix the code that reads the backconnnectionhostnames value
|
|
|
|
|
so that there is not an uninitialized variable
|
|
|
|
|
|
|
|
|
|
Since 1.5.4/1.5.5:
|
|
|
|
|
|
|
|
|
|
* integrated logon could cause winlogin.exe to blue screen windows
|
|
|
|
|
if it was called with a domain that does not exist on the machine.
|
|
|
|
|
this is possible during a sysprep.
|
|
|
|
|
|
|
|
|
|
* corrections to cm_buf_t handling to ensure that buffers are
|
|
|
|
|
removed from queues before they are freed and that holds are
|
|
|
|
|
obtained on the next buffer in a chain before releasing the
|
|
|
|
|
current one.
|
|
|
|
|
|
|
|
|
|
* do not generate MessageBox dialogs on network errors. they
|
|
|
|
|
cause more trouble then they are worth.
|
|
|
|
|
|
|
|
|
|
* move GlobalAutoMapper into a separate thread so that it does
|
|
|
|
|
not prevent service startup if the WNetAddConnection2 call
|
|
|
|
|
does not return.
|
|
|
|
|
|
|
|
|
|
* restrict hard dead and connection timeouts to the CIFS Session
|
|
|
|
|
Timeout value. This is being done to try to prevent virtual
|
|
|
|
|
circuits from being destroyed prematurely.
|
|
|
|
|
|
|
|
|
|
* Fix the code that writes the backconnectionhostnames value
|
|
|
|
|
to ensure that the data buffer is written with the correct
|
|
|
|
|
length.
|
|
|
|
|
|
|
|
|
|
(there were no windows specific changes between 1.5.4 and 1.5.5)
|
|
|
|
|
|
|
|
|
|
Since 1.5.3:
|
|
|
|
|
|
|
|
|
|
* Corrections to the Integrated Logon functionality that permits
|
|
|
|
|
Kerberos 5 TGTs to be communicated into the user session. The
|
|
|
|
|
transfer is now more secure and succeeds when the user does not
|
|
|
|
|
have read permission to the %SystemRoot%\TEMP directory.
|
|
|
|
|
|
|
|
|
|
* NSIS installer updated to version 2.18
|
|
|
|
|
|
|
|
|
|
* WiX installer updated to version 2.0.4221.0
|
|
|
|
|
|
|
|
|
|
* Updates to the IFS functionality for 64-bit correctness and
|
|
|
|
|
permit compilation. The IFS functionality works for pioctl()
|
|
|
|
|
operations but not much else at this point.
|
|
|
|
|
|
|
|
|
|
* A major re-write of the OpenAFS implementation of the CIFS Tran2
|
|
|
|
|
query and set functions.
|
|
|
|
|
|
|
|
|
|
* Ignore the Windows CIFS client session timeout entirely. Timeout
|
|
|
|
|
only after the AFS Hard Dead Timeout period expires.
|
|
|
|
|
|
|
|
|
|
Since 1.5.2:
|
|
|
|
|
|
|
|
|
|
* move headers, libraries, and samples from OpenAFS\Client to
|
|
|
|
|
OpenAFS\SDK
|
|
|
|
|
|
|
|
|
|
* remove the auto-registration of AFS IDs for foreign cells
|
|
|
|
|
from integrated logon. this permits afslogon.dll to avoid
|
|
|
|
|
initializing the RX library. afslogon.dll is a network
|
|
|
|
|
provider library and as such it is loaded into all applications
|
|
|
|
|
which perform a CreateProcessAsUser call. Initializing the
|
|
|
|
|
RX library spawns background threads to listen for inbound
|
|
|
|
|
packets. When the network provider is unloaded from the
|
|
|
|
|
process, the RX library does not cleanup the threads. If they
|
|
|
|
|
continue to execute after the library is unloaded, the process
|
|
|
|
|
will crash.
|
|
|
|
|
|
|
|
|
|
* implement inline bulk status calls. this will significantly
|
|
|
|
|
improve the performance of directory listings.
|
|
|
|
|
|
|
|
|
|
* prevent a crash when evaluating mountpoints to volumes that do not
|
|
|
|
|
exist
|
|
|
|
|
|
|
|
|
|
* new command: fs uuid [-generate]
|
|
|
|
|
displays the current uuid and allows a new one to be generated
|
|
|
|
|
on the fly without restarting the afs client service.
|
|
|
|
|
|
|
|
|
|
* fix the 64-bit installers to properly document the install
|
|
|
|
|
location
|
|
|
|
|
|
|
|
|
|
* move help files to the proper location so they can be located by
|
|
|
|
|
the system tray tool and the control panel.
|
|
|
|
|
|
|
|
|
|
* "over quota" and "disk full" errors were not being reported to the
|
|
|
|
|
caller.
|
|
|
|
|
|
|
|
|
|
* largefile support has been added. Files greater than 31-bits can no
|
|
|
|
|
longer be written to file servers which do not support large files.
|
|
|
|
|
When file servers support large files, files up to 64-bits can be
|
|
|
|
|
read or written.
|
|
|
|
|
|
|
|
|
|
* cm_SyncOp could return with the input buffer unlocked upon error
|
|
|
|
|
which would result in a panic condition. This bug was introduced
|
|
|
|
|
in 1.4.1.
|
|
|
|
|
|
|
|
|
|
* vlserver failover when freelance mode did not work. This prevented
|
|
|
|
|
the root.afs volume from being loaded if the first vlserver could
|
|
|
|
|
not be reached.
|
|
|
|
|
|
2006-06-05 03:29:19 +01:00
|
|
|
|
Since 1.5.1:
|
|
|
|
|
|
2009-06-08 04:34:28 +01:00
|
|
|
|
* A bug in the CIFS Standard Info response packet caused directories
|
|
|
|
|
to appear as standard files. This prevented Microsoft Vista from
|
|
|
|
|
being able to walk the AFS directory tree.
|
|
|
|
|
|
|
|
|
|
* Mount points must be reported as directories in response to
|
|
|
|
|
Query Path Info operations.
|
|
|
|
|
|
2006-06-05 03:29:19 +01:00
|
|
|
|
* A deadlock was detected when performing "fs flushall" if the
|
|
|
|
|
file server reports VNOVNODE. The scp->createBufferLock is
|
|
|
|
|
already held by the current thread and there is no mechanism
|
|
|
|
|
to propagate the knowledge. Therefore, an alternate mechanism
|
|
|
|
|
for clearing the cache must be developed. A new function
|
|
|
|
|
cm_RecycleSCache(scp,flags) has been extracted from
|
|
|
|
|
cm_GetNewSCache(). This function performs the task of recycling
|
|
|
|
|
an cm_scache_t object. When called from cm_GetNewSCache() with
|
|
|
|
|
no flags the expectation is that there are no associated buffers
|
|
|
|
|
that are queued to be read or written. When called from
|
|
|
|
|
cm_Analyze() with the CM_SCACHE_RECYCLEFLAG_DESTROY_BUFFERS
|
|
|
|
|
flag, any queued buffers will be de-queued and marked as if
|
|
|
|
|
the operations were performed so the data can be discarded.
|
|
|
|
|
|
|
|
|
|
* CM_ERROR codes were logged as "unknown" by cm_Analyze.
|
|
|
|
|
|
|
|
|
|
* In response to VNOVNODE, the parent is only discarded if the current
|
|
|
|
|
cm_scache_t is not a directory.
|
|
|
|
|
|
|
|
|
|
* In the Ioctl FlushFile and FlushVolume functions, there were no
|
|
|
|
|
checks to protect against flushing the Freelance SCache entries.
|
|
|
|
|
|
|
|
|
|
* In FlushFile, the wrong cm_scache_t object was being released.
|
|
|
|
|
|
|
|
|
|
* In cm_GetNewSCache, do not allow Freelance SCache entries to be
|
|
|
|
|
recycled. Choose a new entry if cm_RecycleSCache fails.
|
|
|
|
|
|
|
|
|
|
* Speed up the performance of the cache manager by not
|
|
|
|
|
holding the smb_fid_t mutex across calls to cm_SyncOp
|
|
|
|
|
and AFS RPCs.
|
|
|
|
|
|
|
|
|
|
* Ensure that all smb_fid_t flag references are protected.
|
|
|
|
|
|
|
|
|
|
* Remove a deadlock between smb_fid_t mutex and
|
|
|
|
|
smb_rctLock introduced in 1.4.1.
|
|
|
|
|
|
|
|
|
|
* Fix aklog AFSID lookup to use not send the realm
|
|
|
|
|
name when the realm is the local realm for the
|
|
|
|
|
cell. The PT Server doesn't strip the realm
|
|
|
|
|
name when it is the local realm.
|
|
|
|
|
|
|
|
|
|
* Treat "\\afs\*." as an alias for "\\afs\all"
|
|
|
|
|
|
|
|
|
|
* Dynamically adjust the priority of server threads
|
|
|
|
|
based upon the age of the CIFS request that is
|
|
|
|
|
being processed. The priority is bumped one level
|
|
|
|
|
for every 15 seconds of processing time.
|
|
|
|
|
|
|
|
|
|
* The original openafs contribution mis-used the
|
|
|
|
|
cm_GetCallback function. This function should only
|
|
|
|
|
be called as a side effect of a call to
|
|
|
|
|
cm_SyncOp(CM_SCACHESYNC_NEEDCALLBACK). The way it
|
|
|
|
|
was being called results in a FetchStatus RPC being
|
|
|
|
|
performed even when the client already has a valid
|
|
|
|
|
callback and does so in a manner that destroys the
|
|
|
|
|
synchronization of the threads that are calling
|
|
|
|
|
cm_SyncOp. If nothing else this results in a
|
|
|
|
|
significant performance penalty.
|
|
|
|
|
|
|
|
|
|
* More changes to cleanup of smb_vc_t objects in
|
|
|
|
|
order to prevent race conditions.
|
|
|
|
|
|
|
|
|
|
* Reduce the amount of Power Management event logging
|
|
|
|
|
to afsd_init.log
|
|
|
|
|
|
|
|
|
|
* If the client detects that the IP address has
|
|
|
|
|
changed, force the use of new RX connections. This
|
|
|
|
|
enables the file server to recognize that the client
|
|
|
|
|
has moved.
|
|
|
|
|
|
|
|
|
|
* Remove a race condition and deadlock associated
|
|
|
|
|
with cleanup of smb_vc_t objects.
|
|
|
|
|
|
|
|
|
|
* Fix the ANSI filename support. One function that
|
|
|
|
|
required it was missing the translations.
|
|
|
|
|
|
2006-04-24 17:00:50 +01:00
|
|
|
|
Changes not present in 1.4.1 and since 1.5.0: 1.5.1 released
|
|
|
|
|
(24 April 2006)
|
|
|
|
|
|
|
|
|
|
* Add a DllMain() function to afspthread.dll. Perform
|
|
|
|
|
cleanup of thread local storage, rx queues, critical
|
|
|
|
|
sections, event handles, etc. This was implemented
|
|
|
|
|
to avoid crashes in afspthread.dll when applications
|
|
|
|
|
which load/unload the dll attempt to terminate.
|
2006-04-21 17:08:17 +01:00
|
|
|
|
|
|
|
|
|
* Lock request behavior has been altered. As of this
|
|
|
|
|
release a locally allocated lock will be used whenever
|
|
|
|
|
the volume is RO or the requesting user's permissions
|
|
|
|
|
are 'rl'. This will allow end users to execute programs
|
|
|
|
|
from RW volumes when they do not have the 'k' privilege.
|
|
|
|
|
|
|
|
|
|
Note that a recent discovery indicates that the 'k' bit
|
|
|
|
|
is only supposed to control the ability to obtain read
|
|
|
|
|
locks. Write locks are to be controlled by the 'w' and
|
|
|
|
|
'i' privilege bits.
|
|
|
|
|
|
|
|
|
|
* Code has been added to enable the cache manager to be
|
|
|
|
|
able to obtain the AFSID of the authenticated user.
|
|
|
|
|
This is required to be able to determine when "Insert"
|
|
|
|
|
privileges should apply. AFS considers a file to be
|
|
|
|
|
a new file whenever the owner's AFSID matches the
|
|
|
|
|
AFSID of the user. The current implementation relies
|
|
|
|
|
on the name specified during the SetToken call to be
|
|
|
|
|
correct. This will be replaced in the future with a
|
|
|
|
|
new RPC that allows the AFSID of the authenticated
|
|
|
|
|
user to be obtained.
|
|
|
|
|
|
|
|
|
|
* A 32-bit-tools installer for use on 64-bit systems
|
|
|
|
|
is now available. These tools are for use with 32-bit
|
|
|
|
|
versions of Kerberos for Windows or JPSoftware's 4NT.
|
|
|
|
|
|
|
|
|
|
Since 1.4.1 rc10: 1.4.1 final released (9 April 2006)
|
|
|
|
|
|
|
|
|
|
* Remove the use of the "active_vcp" variable. This variable
|
|
|
|
|
no longer serves any useful purpose and was the cause of
|
|
|
|
|
race conditions that produced under counts of the smb_vc_t
|
|
|
|
|
references.
|
|
|
|
|
|
|
|
|
|
* Change default minidump output to include data segments
|
|
|
|
|
|
|
|
|
|
* restore access to cm_IoctlGetVolumeStatus and
|
|
|
|
|
cm_IoctlSetVolumeStatus calls for AFS pioctl operations.
|
|
|
|
|
Still need to figure out why they are being called
|
|
|
|
|
for SMB/CIFS IOCTL operations instead of Trans2GetFileInfo.
|
|
|
|
|
|
2006-02-17 15:35:38 +00:00
|
|
|
|
Changes not present in 1.4.1: 1.5.0 released (16 Feb 2006)
|
|
|
|
|
|
|
|
|
|
* Update build system to include the "sys_name" in the
|
|
|
|
|
obj and dest paths.
|
|
|
|
|
|
|
|
|
|
* optimize the number of calls to obtain the smb_user_t for a
|
|
|
|
|
smb virtual circuit.
|
|
|
|
|
|
|
|
|
|
* add logging of server addresses, status and capabilities when
|
|
|
|
|
pinging the server.
|
|
|
|
|
|
|
|
|
|
* prevent multiple threads from pinging the same server simultaneously.
|
|
|
|
|
instead, threads block and then use the result of the ping that was
|
|
|
|
|
already taking place.
|
|
|
|
|
|
|
|
|
|
* Add registry values to allow the defaults for daemon checks to be altered
|
|
|
|
|
at startup. Log values to afsd_init.log.
|
|
|
|
|
|
|
|
|
|
daemonCheckDownInterval
|
|
|
|
|
daemonCheckUpInterval
|
|
|
|
|
daemonCheckVolInterval
|
|
|
|
|
daemonCheckCBInterval
|
|
|
|
|
daemonCheckLockInterval
|
|
|
|
|
daemonCheckTokenInterval
|
2006-02-14 13:25:10 +00:00
|
|
|
|
|
|
|
|
|
* Add EventLog messages for transitions in fs crypt state.
|
|
|
|
|
|
|
|
|
|
* Byte range locking (when locks will be obtained from the
|
|
|
|
|
is still under discussion)
|
|
|
|
|
|
|
|
|
|
* 64-bit Windows operating systems now supported
|
|
|
|
|
(XP SP2 64-bit, 2003 SP1 64-bit, 2003 R2 64-bit)
|
|
|
|
|
This is a native 64-bit implementation of OpenAFS for Windows.
|
|
|
|
|
There is currently no 64-bit version of KFW and therefore
|
|
|
|
|
there is no (easy) method for obtaining AFS credentials.
|
|
|
|
|
32-bit KFW 3.0 can be used with 32-bit OAFW libraries
|
|
|
|
|
to obtain AFS tokens but there is not for the feint of
|
|
|
|
|
heart.
|
|
|
|
|
|
|
|
|
|
* A faster implementation of the fcrypt algorithms improves
|
|
|
|
|
performance.
|
|
|
|
|
|
|
|
|
|
* The afsd_service.exe now supplies Event Log Message Text.
|
|
|
|
|
The event log no longer generates warning text due to lack
|
|
|
|
|
of message configuration.
|
|
|
|
|
|
|
|
|
|
* When afs servers are unreachable and network stack returns
|
|
|
|
|
a WSAEHOSTUNREACHABLE error, the AFS client will immediately
|
|
|
|
|
mark the attempted server as being down. This allows for
|
|
|
|
|
very fast response to the calling application. This change
|
|
|
|
|
has a pronounced improvement when the Windows Explorer is
|
|
|
|
|
used on disconnected mobile computers.
|
|
|
|
|
|
|
|
|
|
* Added DebugOutputString debugging of the RX library
|
|
|
|
|
|
2006-04-21 17:08:17 +01:00
|
|
|
|
Since 1.4.1 rc9: 1.4.1 rc10 released (10 March 2006)
|
|
|
|
|
|
|
|
|
|
* Fix the rx-lwp implementation to randomly generate rx call
|
|
|
|
|
identifiers which are supposed to be unique at a given point
|
|
|
|
|
in time. This affects some of the command line tools used
|
|
|
|
|
for debugging but not the AFS Client Service itself which
|
|
|
|
|
uses the rx-pthreads implementation.
|
|
|
|
|
|
|
|
|
|
* xstats_fs_test.exe and xstats_cm_test.exe are now built for
|
|
|
|
|
Windows although they are not distributed
|
|
|
|
|
|
|
|
|
|
* don't generate an exception when logging unexpected SMB packets
|
|
|
|
|
|
|
|
|
|
* the data structures used by cm_IoctlGetVolumeStatus and
|
|
|
|
|
cm_IoctlSetVolumeStatus are not compatible with the CIFS
|
|
|
|
|
Get/Set File Information calls so don't bother executing them.
|
|
|
|
|
|
|
|
|
|
Since 1.4.1 rc8:
|
|
|
|
|
|
|
|
|
|
* Fix data written to registry as part of BackConnectionHostnames
|
|
|
|
|
data value
|
|
|
|
|
|
|
|
|
|
* Fix initialization bug when allocating cm_server_t objects that
|
|
|
|
|
would cause servers to appear to be down after each allocation
|
|
|
|
|
or renewal. Server would appear up after the next check servers
|
|
|
|
|
cycle.
|
|
|
|
|
|
2006-02-17 15:35:38 +00:00
|
|
|
|
Since 1.4.1 rc7:
|
|
|
|
|
|
|
|
|
|
* Windows will return WSAECONNRESET to the next receive packet
|
|
|
|
|
operation on a socket if an ICMP packet is received in response
|
|
|
|
|
to a packet that was sent and could not be delivered because
|
|
|
|
|
the port was unreachable. We have to treat this as
|
|
|
|
|
WSAEWOULDBLOCK so that we can retry the select() check and
|
|
|
|
|
not mark the connection as bad.
|
|
|
|
|
|
2006-02-14 13:25:10 +00:00
|
|
|
|
Since 1.4.1 rc6: 1.4.1 rc7 released (14 Feb 2006)
|
|
|
|
|
|
|
|
|
|
* The client manager maintains a least recently used list of
|
|
|
|
|
all the ACLs. If an ACL is already the most recently used
|
|
|
|
|
do not bother to remove it from the list and place it on the
|
|
|
|
|
front.
|
|
|
|
|
|
|
|
|
|
* As part of the process of adding a new server, set the
|
|
|
|
|
server is down flag and then perform a ping. If the server
|
|
|
|
|
is up, the flag will be reset. If the server is down, the
|
|
|
|
|
client will not timeout unnecessarily while attempting to
|
|
|
|
|
perform real work.
|
|
|
|
|
|
|
|
|
|
* If a Mountpoint String is the empty string, return PATH NOT
|
|
|
|
|
FOUND.
|
|
|
|
|
|
|
|
|
|
* Modify behavior of the Network Provider to avoid querying the
|
|
|
|
|
profile location if integrated logon is known to be disabled.
|
|
|
|
|
|
|
|
|
|
* Correct behavior of 'LogoffPreserveTokens'. When set, tokens
|
|
|
|
|
will always be preserved regardless of whether or not integrated
|
|
|
|
|
logon was used to obtain tokens. When unset, tokens will be
|
|
|
|
|
destroyed regardless of whether integrated logon was used to
|
|
|
|
|
obtain the tokens unless the profile is stored in AFS.
|
|
|
|
|
|
|
|
|
|
* Disable LogoffTransferToken functionality. The SMB V3 Logoff
|
|
|
|
|
message is being delivered even when the user is not logging
|
|
|
|
|
off of the computer.
|
|
|
|
|
|
|
|
|
|
* Fix a deadlock condition introduced in rc6.
|
|
|
|
|
|
|
|
|
|
* Cell names are case-insensitive. Since the founding of OpenAFS
|
|
|
|
|
there has been a bug that treated "cell", "Cell", and "CELL" as
|
|
|
|
|
different cells. This would result in what appeared to be
|
|
|
|
|
random disappearance of user tokens or a failure to authenticate
|
|
|
|
|
even when tokens were listed by the "tokens" command.
|
|
|
|
|
|
|
|
|
|
Since 1.4.1 rc5: 1.4.1 rc6 released (2 Feb 2006)
|
|
|
|
|
|
|
|
|
|
* Additional auditing of the smb code revealed that smb ioctl
|
|
|
|
|
operations were failing to free smb_fid_t objects
|
|
|
|
|
|
|
|
|
|
* The File Identifiers assigned to smb_fid_t objects could be
|
|
|
|
|
given the value 65535 which is 0xFFFF which is also the
|
|
|
|
|
INVALID_HANDLE value. Both 0 and 65535 are now treated as
|
|
|
|
|
reserved values.
|
|
|
|
|
|
|
|
|
|
* Audited all assignments to fields and ensured that they are
|
|
|
|
|
protected by obtaining the relevant mutex object.
|
|
|
|
|
|
|
|
|
|
* Re-wrote the VNOVNODE handling to avoid a potential deadlock
|
|
|
|
|
if both the current cm_scache_t object and its parent are
|
|
|
|
|
both returning VNOVNODE.
|
|
|
|
|
|
|
|
|
|
* Removed all the logic associated with the 'dead_vcp' variable
|
|
|
|
|
which must have been added for debugging because its used
|
|
|
|
|
was never thread safe and it truly served no purpose.
|
|
|
|
|
|
2009-06-08 04:34:28 +01:00
|
|
|
|
Since 1.4.1 rc4: 1.4.1 rc5 released (25 Jan 2006)
|
|
|
|
|
|
|
|
|
|
* Re-enabled LogoffTokenTransfer and LogoffTokenTransferTimeout
|
|
|
|
|
registry settings. Default is ON and 120 seconds. If set to
|
|
|
|
|
OFF, tokens will not be destroyed.
|
|
|
|
|
|
|
|
|
|
* Fixed a number of race conditions and reference count problems
|
|
|
|
|
associated with global queues.
|
|
|
|
|
|
|
|
|
|
* Added a method to detect abandoned smb virtual circuits so their
|
|
|
|
|
associated file handles, locks, user tokens, and smb session
|
|
|
|
|
resources can be released.
|
|
|
|
|
|
|
|
|
|
* Added a mechanism to allow user tokens to be preserved
|
|
|
|
|
during integrated login and be freed after logoff.
|
2006-01-20 06:22:46 +00:00
|
|
|
|
|
|
|
|
|
* Check access permissions to the file before the file is
|
|
|
|
|
truncated.
|
|
|
|
|
|
|
|
|
|
* More improvements to the handling of SMB Virtual Circuits
|
|
|
|
|
when SMB sessions are closed.
|
|
|
|
|
|
|
|
|
|
* Correct a race condition introduced in rc4 that could result
|
|
|
|
|
in a crash of afsd_service.exe.
|
|
|
|
|
|
|
|
|
|
Since 1.4.1 rc3: 1.4.1 rc4 released (11 Jan 2006)
|
|
|
|
|
|
|
|
|
|
* Properly handle pre-mature SMB session closures.
|
|
|
|
|
File handles, tree connections, and user sessions are now
|
|
|
|
|
freed when the virtual circuit is closed.
|
|
|
|
|
|
|
|
|
|
* smb_username_t and smb_user_t objects are now properly reference
|
|
|
|
|
counted and freed as appropriate.
|
|
|
|
|
|
2006-02-14 13:25:10 +00:00
|
|
|
|
* disable to use of AFS file locks. byte range locking is still
|
2006-01-20 06:22:46 +00:00
|
|
|
|
implemented but all locks are managed locally. This prevents
|
|
|
|
|
multiple processes from editing the same file on the same
|
|
|
|
|
machine but it does prevent multiple processes on separate
|
|
|
|
|
machines from modifying the file.
|
|
|
|
|
|
|
|
|
|
Since 1.4.1 rc2: 1.4.1 RC3 released (4 Jan 2006)
|
|
|
|
|
|
|
|
|
|
* A fix to "fs setserverprefs -vlserver". Multiple calls with
|
|
|
|
|
the same server parameter would result in a panic condition
|
|
|
|
|
if the server had not already been contacted by the AFS
|
|
|
|
|
client service.
|
|
|
|
|
|
|
|
|
|
* Better warnings are written to the afsd.log file when
|
|
|
|
|
the Windows RPC Protocols are not properly configured as
|
|
|
|
|
is often the case on Windows 2000.
|
|
|
|
|
|
|
|
|
|
* fix the procmgmt library to restore C RTL signal handlers when
|
|
|
|
|
it is being detached from the process prior to process termination.
|
|
|
|
|
|
|
|
|
|
Since 1.4.1 rc1: 1.4.1 RC2 released (30 Nov 2005)
|
|
|
|
|
|
|
|
|
|
* close a lock leak in the rx library that could be triggered while
|
|
|
|
|
processing aborts
|
|
|
|
|
|
|
|
|
|
* prevent removal of drive mappings in response to afscreds.exe -M
|
|
|
|
|
|
|
|
|
|
* add logic to process VNOVNODE in cm_Analyze. Force re-evaluation of symlink
|
|
|
|
|
strings and flush the stat cache entry.
|
|
|
|
|
|
|
|
|
|
* prevent server objects from being freed if user preferences are set.
|
|
|
|
|
|
|
|
|
|
* Update WIX support to 2.0.2419.0
|
|
|
|
|
|
|
|
|
|
* Release all locks on the server at service shutdown.
|
|
|
|
|
|
|
|
|
|
* A down server should be marked up as long as it responds to the client.
|
|
|
|
|
It doesn't matter if the server returned an error as long as the error
|
2006-02-14 13:25:10 +00:00
|
|
|
|
is something other than VRESTARTING. If there is such an error, all
|
2006-01-20 06:22:46 +00:00
|
|
|
|
connections on that server should be marked for replacement.
|
|
|
|
|
|
|
|
|
|
* Change the check "up" servers period from once per hour to once every
|
|
|
|
|
ten minutes. This matches the behavior of the Unix cache manager.
|
|
|
|
|
|
|
|
|
|
Post 1.4.0 revisions: 1.4.1 RC1 released (21 Oct 2005)
|
|
|
|
|
* Byte Range Locking support has been added. Architectural documentation
|
2006-02-14 13:25:10 +00:00
|
|
|
|
is located within src/WINNT/afsd/cm_vnodeops.c. Best efforts are
|
2006-01-20 06:22:46 +00:00
|
|
|
|
made to enforce Windows mandatory locking model using locally managed
|
|
|
|
|
byte range locks with full file locks obtained from the file server.
|
|
|
|
|
Read-only volumes provide the user with an implied locking privilege.
|
|
|
|
|
Read-write volumes require that a user be granted the locking privilege
|
|
|
|
|
in order for a lock to be obtained. As most Windows applications use
|
|
|
|
|
Shared file access modes, they require the ability to obtain locks in
|
|
|
|
|
order to access files.
|
|
|
|
|
|
|
|
|
|
* Implement error translation functions to convert Universal Error Codes
|
|
|
|
|
output by modern servers to local errno and winsock error values.
|
2006-02-14 13:25:10 +00:00
|
|
|
|
This fixes the error message problems using pioctl() calls from fs.exe
|
2006-01-20 06:22:46 +00:00
|
|
|
|
and the AFS Shell Extension.
|
|
|
|
|
|
2005-10-20 07:09:08 +01:00
|
|
|
|
Since 1.4.0 rc8: 1.4.0 final tagged (20 Oct 2005); released (31 Oct 2005)
|
|
|
|
|
* Allow the AFS Client Service to set the firewall configuration by
|
|
|
|
|
retrying until after Windows determines the boot period is over.
|
|
|
|
|
|
|
|
|
|
* Do not attempt to configure the firewall on Windows 2000, XP pre-SP2,
|
|
|
|
|
or 2003 pre-SP1
|
|
|
|
|
|
|
|
|
|
* Detect IP address changes from within the AFS Client Service for the
|
|
|
|
|
purpose of checking down servers sooner
|
|
|
|
|
|
|
|
|
|
* If the file server or vldb server report RXKADUNKNOWNKEY, return
|
|
|
|
|
SEC_E_NO_KERB_KEY to Windows. This provides an indication to the
|
|
|
|
|
user that there is a Kerberos key problem. Previously the user would
|
|
|
|
|
receive no feedback when there was something wrong.
|
|
|
|
|
|
|
|
|
|
* Fix the large integer library support to properly handle values greater
|
|
|
|
|
than 32-bits
|
|
|
|
|
|
|
|
|
|
Since 1.4.0 rc7: 1.4.0 rc8 released (15 Oct 2005)
|
|
|
|
|
* Updated CellServDB
|
|
|
|
|
|
|
|
|
|
* Fixed file name pattern matching. Question marks can match nothing
|
|
|
|
|
if found at the end of a component.
|
|
|
|
|
|
|
|
|
|
Since 1.4.0 rc6: 1.4.0 rc7 released (8 Oct 2005)
|
|
|
|
|
* Kerberos 5 ticket lifetimes should adhere to KFW Leash lifetimes
|
|
|
|
|
|
|
|
|
|
* The MSI installer now has a new Product ID for each build. This
|
|
|
|
|
is to allow for automated upgrades. The Upgrade ID is remaining
|
|
|
|
|
constant.
|
|
|
|
|
|
|
|
|
|
* Volumes that were cached and then subsequently were salvaged,
|
|
|
|
|
moved or otherwise taken temporarily offline (as opposed to being
|
|
|
|
|
busy) would become unreachable. A distinction is now made between
|
|
|
|
|
a volume being offline and a server being down.
|
|
|
|
|
|
2005-10-03 02:22:53 +01:00
|
|
|
|
Since 1.4.0 rc5: 1.4.0 rc6 released (2 Oct 2005)
|
|
|
|
|
|
|
|
|
|
* Fixed several AFS Shell Extension issues:
|
|
|
|
|
- Checking Server Status would only work if a specific cell was
|
|
|
|
|
specified.
|
|
|
|
|
- If servers were down, the Server Down dialog would write to
|
|
|
|
|
invalid memory and cause explorer.exe to crash
|
|
|
|
|
- Default Push Buttons were not specified for many dialogs
|
|
|
|
|
- The extension would be unloaded by the Explorer Shell and
|
|
|
|
|
never be reloaded under some circumstances.
|
|
|
|
|
|
|
|
|
|
* Fixed the AFS System Tray menu to disappear if another Window
|
|
|
|
|
was selected before a menu item was selected
|
|
|
|
|
|
|
|
|
|
* Added volume owner and group information to "fs examine" output
|
|
|
|
|
|
|
|
|
|
* Added fs and registry support for enabling/disabling/clearing
|
|
|
|
|
rx statistics gathering.
|
|
|
|
|
|
2005-09-26 05:10:42 +01:00
|
|
|
|
Since 1.4.0 rc4: 1.4.0 rc5 released (25 Sep 2005)
|
|
|
|
|
|
2005-09-27 05:13:31 +01:00
|
|
|
|
* New Product Code GUIDs issues for 1.4 and 1.5 branches. Separate
|
|
|
|
|
GUIDs for each platform.
|
|
|
|
|
|
|
|
|
|
* Documentation directory structure and default installation rules
|
|
|
|
|
for MSI
|
|
|
|
|
|
2005-09-26 05:10:42 +01:00
|
|
|
|
* New OpenAFS for Windows HTML Release Notes installed
|
|
|
|
|
as part of the documentation set.
|
|
|
|
|
|
|
|
|
|
* Add thread id to rx debugging messages
|
|
|
|
|
|
|
|
|
|
* When all servers are offline, return a bad network path error
|
|
|
|
|
immediately. This is necessary to allow Explorer to do the
|
|
|
|
|
right thing and not hang. The background daemon thread will
|
|
|
|
|
check the down servers every 30 seconds to see if they are
|
|
|
|
|
back up.
|
|
|
|
|
|
2005-09-14 06:41:54 +01:00
|
|
|
|
Since 1.4.0 rc3: 1.4.0 rc4 released (14 Sep 2005)
|
|
|
|
|
|
|
|
|
|
* The AFSCache file has been modified to store both the
|
|
|
|
|
serial number of the volume on which the file resides
|
|
|
|
|
and the SID of the local machine. If either change,
|
|
|
|
|
a new UUID is generated.
|
|
|
|
|
|
2005-09-07 21:19:10 +01:00
|
|
|
|
* add "fs flushall" command that forces all data buffers
|
|
|
|
|
to be flushed.
|
|
|
|
|
|
2005-09-04 06:50:17 +01:00
|
|
|
|
Since 1.4.0 rc2: 1.4.0 rc3 released (4 Sep 2005)
|
|
|
|
|
|
|
|
|
|
* add support for '/' instead of '\' in pioctl() calls
|
|
|
|
|
|
|
|
|
|
* Apply AFS Client Admins group protect to AFS Shell Extension
|
|
|
|
|
|
|
|
|
|
* Add support for \\afs\<name> to most AFS Shell Extension
|
|
|
|
|
commands except the symlink methods.
|
|
|
|
|
|
|
|
|
|
* when installing the Microsoft Loopback Adapter, enable
|
|
|
|
|
MS Client for Networks and prevent an install failure
|
|
|
|
|
by not calling CoInitialize twice in the same thread.
|
|
|
|
|
|
|
|
|
|
* reload cell vldb values from the CellServDB every two
|
|
|
|
|
hours in case it changes
|
|
|
|
|
|
|
|
|
|
* When updating cell information from DNS, be sure to set
|
|
|
|
|
a new timeout.
|
|
|
|
|
|
|
|
|
|
* Add support to allow use of \\AFS\<foo> where <foo> is
|
|
|
|
|
either a mount point or symlink. As <foo> is normally
|
|
|
|
|
treated as a share name, we transform it into \\AFS\all\<foo>
|
|
|
|
|
for processing.
|
|
|
|
|
|
|
|
|
|
* Init 'code' to prevent false errors when integrated logon
|
|
|
|
|
is disabled and the service is not running
|
|
|
|
|
|
2005-08-28 22:48:25 +01:00
|
|
|
|
Since 1.4.0 rc1: 1.4.0 rc2 released (28 Aug 2005)
|
|
|
|
|
|
|
|
|
|
* Removed trace log messages that were hampering performance.
|
|
|
|
|
|
|
|
|
|
* Fixed a deadlock that was being triggered by editing Word
|
|
|
|
|
documents stored within AFS with WinWord 2003.
|
|
|
|
|
|
|
|
|
|
* Bit 3 of the TraceOption registry value is now used to set the
|
|
|
|
|
default for "fs trace" in the non-Debug builds. The new default
|
|
|
|
|
is off for release builds and on for debug builds.
|
|
|
|
|
|
|
|
|
|
* Bit 2 of the TraceOption registry value can be used to turn on
|
|
|
|
|
real-time output of debug log entries to the Windows Debug
|
|
|
|
|
Output monitor interface. This data can be viewed with tools
|
|
|
|
|
such as Sysinternal's DbgView.
|
2005-08-17 12:38:55 +01:00
|
|
|
|
|
2005-08-17 12:22:50 +01:00
|
|
|
|
Since 1.3.87: 1.4.0 rc1 released (17 Aug 2005)
|
2005-08-15 19:27:52 +01:00
|
|
|
|
* When the cache manager reports ALLBUSY or ALLOFFLINE for
|
|
|
|
|
a resource we should not be returning status codes such
|
|
|
|
|
as Network Busy or Remote Host Down because these errors
|
|
|
|
|
will imply that the AFS Client Service is Busy or Down
|
|
|
|
|
and that is simply not the case. Instead we will return
|
|
|
|
|
Bad Network Path as the path is temporarily not available.
|
|
|
|
|
|
|
|
|
|
Instead of returning Sharing Paused when there is a
|
|
|
|
|
timeout error, return Timeout. Once again, the AFS Client
|
|
|
|
|
Service is not paused.
|
|
|
|
|
|
2005-08-14 13:25:06 +01:00
|
|
|
|
* afscreds.exe would display an Obtain Creds dialog when
|
|
|
|
|
the expired credentials reminder was triggered even
|
|
|
|
|
if there was no network path to the KDC. This is prevented
|
|
|
|
|
by adding KDC probe logic to the reminder thread.
|
|
|
|
|
|
|
|
|
|
* afscreds.exe would display expired tokens no differently
|
|
|
|
|
than unexpired ones. This would make it difficult for the
|
|
|
|
|
user to distiguish when the tokens were expired. For the
|
|
|
|
|
English build added a new resource string "(expired) that
|
|
|
|
|
is displayed instead of the expiration time.
|
|
|
|
|
|
2005-08-06 02:38:53 +01:00
|
|
|
|
Since 1.3.86:
|
|
|
|
|
* "fs wscell" when executed in freelance mode will return the
|
|
|
|
|
name of the cell configured in the registry. The root.afs
|
|
|
|
|
volume is not loaded from this cell, but it is used for the
|
|
|
|
|
default for aklog and integrated login.
|
|
|
|
|
|
|
|
|
|
* "fs mkmount, fs rmmount, symlink make, symlink remove" will
|
|
|
|
|
no longer work on \\AFS\all when freelance is being used
|
|
|
|
|
unless the user is a member of the "AFS Client Admins" Windows
|
|
|
|
|
Security group.
|
|
|
|
|
|
|
|
|
|
* some more checks performed during persistent cache validation.
|
|
|
|
|
|
2005-07-13 16:22:06 +01:00
|
|
|
|
Since 1.3.85:
|
2005-07-29 00:15:50 +01:00
|
|
|
|
* Optimize calls to cm_CheckServer from cm_Analyze. Only check
|
|
|
|
|
down servers for the current cell not all cells.
|
|
|
|
|
|
|
|
|
|
* If the scache LRU list becomes corrupted, the AFS Client Service
|
|
|
|
|
might enter an infinite loop at startup. Detect the corruption
|
|
|
|
|
and discard the cache contents in this case.
|
|
|
|
|
|
|
|
|
|
* Fixed the Explorer Shell's remove mountpoint functionality.
|
|
|
|
|
|
2005-07-13 16:22:06 +01:00
|
|
|
|
* Fixed a deadlock caused by the holder of cm_aclLock attempting to
|
|
|
|
|
obtain a mutex lock on a cm_scache_t object whose lock is held by
|
|
|
|
|
a thread attempting to obtain the cm_aclLock.
|
|
|
|
|
|
2005-06-17 18:07:46 +01:00
|
|
|
|
Since 1.3.84:
|
2005-07-29 00:15:50 +01:00
|
|
|
|
* Really fixed DNS AFSDB queries to ensure that "csail" cannot be
|
|
|
|
|
misinterpretted as "csail.mit.edu" when the resolver
|
|
|
|
|
is configured to append ".mit.edu" to failed DNS queries.
|
|
|
|
|
|
2005-06-30 07:02:50 +01:00
|
|
|
|
* Added a new registry key, "LogoffPreserveTokens" (see registry.txt),
|
|
|
|
|
that can be used to force the preservation of user tokens upon logout.
|
|
|
|
|
|
|
|
|
|
* Update the NSIS install scripts to use NSIS 2.07. This release adds
|
2005-06-29 04:42:14 +01:00
|
|
|
|
recommended installation categories: AFS Client, AFS Administrator,
|
|
|
|
|
AFS Server, AFS Development Kit. Each category includes a different
|
|
|
|
|
default subset of the OpenAFS components.
|
|
|
|
|
|
|
|
|
|
The OpenAFS logo is now associated with the NSIS uninstall entry
|
|
|
|
|
in the Add/Remove Programs control panel.
|
|
|
|
|
|
|
|
|
|
* The user name associated with AFS tokens when obtained with
|
|
|
|
|
integrated login, the afs systray tool, or aklog will always
|
|
|
|
|
include the full Kerberos 5 user principal name regardless of
|
|
|
|
|
whether or not the cell is local to the realm.
|
|
|
|
|
|
2005-06-17 18:07:46 +01:00
|
|
|
|
* Modify integrated login so that it does not enter an infinite
|
|
|
|
|
loop if the service is not set to auto start.
|
|
|
|
|
|
|
|
|
|
* Added asetkey.exe used to set a Kerberos 5 key for use by the
|
|
|
|
|
AFS server daemons
|
|
|
|
|
|
|
|
|
|
* Added uninstall.exe to Wix installation
|
|
|
|
|
|
2005-06-29 04:42:14 +01:00
|
|
|
|
* More modifications to algorithms used to wake sleeping threads.
|
|
|
|
|
|
2005-06-05 16:45:02 +01:00
|
|
|
|
Since 1.3.83:
|
|
|
|
|
|
|
|
|
|
* Changes to the algorithms used to wake threads when they are
|
|
|
|
|
put to sleep because of conflicts over buffer operations.
|
|
|
|
|
|
2005-04-29 21:49:58 +01:00
|
|
|
|
Since 1.3.82:
|
2005-05-30 06:13:13 +01:00
|
|
|
|
* The OpenAFS integrated logon obtains Kerberos 5 tickets as part of
|
|
|
|
|
the process of producing AFS tokens. The tokens are stored within
|
|
|
|
|
the AFS Client Service but the Kerberos 5 tickets have been discarded.
|
|
|
|
|
New functionality has been added to temporarily copy the tickets to
|
|
|
|
|
a file ccache during the short window between the NPLogonNotify and
|
|
|
|
|
WinLogon Logon Event. The Logon Event handler starts a process as
|
|
|
|
|
user, afscpcc.exe, that copies the tickets into the default ccache.
|
|
|
|
|
The file ccache is then destroyed by the event handler.
|
|
|
|
|
|
|
|
|
|
* During synchronization operations on stat cache entries, if threads
|
|
|
|
|
are forced to sleep it was possible that the threads would not be
|
|
|
|
|
woken under heavy load.
|
|
|
|
|
|
2005-05-23 15:57:55 +01:00
|
|
|
|
* Enforce the delete on close flag specified by the NTCreateX()
|
|
|
|
|
operation.
|
|
|
|
|
|
2005-05-19 00:27:19 +01:00
|
|
|
|
* A race condition in the rx library was fixed that resulted in
|
|
|
|
|
a deadlock in rx_NewCall when the RX_CONN_MAKECALL_WAITING flag
|
|
|
|
|
was cleared when threads were still waiting to use the
|
|
|
|
|
connection. Also, fixed a potential case in which the
|
|
|
|
|
connection could be destroyed while threads were waiting to use it.
|
|
|
|
|
|
|
|
|
|
* The DNLC freelist has been seen to become corrupted with still
|
|
|
|
|
active entries being stored on the freelist. Changes were made
|
|
|
|
|
to perform a better job of cleaning entries before placing them
|
|
|
|
|
onto the freelist; marking them with the correct magic value when
|
|
|
|
|
purging the list; and allowing the list to be purged on startup
|
|
|
|
|
if the cache validation fails.
|
|
|
|
|
|
2005-05-10 05:31:56 +01:00
|
|
|
|
* Windows Crash Reporting does not get triggered for afsd_service.exe
|
|
|
|
|
because it provides its own top level exception handler. This patch
|
|
|
|
|
places an explicit call to ReportCrash() on platforms which support
|
|
|
|
|
it. (XP and above.)
|
|
|
|
|
|
|
|
|
|
If you configure Crash Reporting via AD Policy to capture crash
|
|
|
|
|
reports within the domain, then you will receive this output.
|
|
|
|
|
|
|
|
|
|
* Generate MiniDumps independent of the Windows Crash Reporting.
|
|
|
|
|
|
|
|
|
|
(a) If an exception occurs,a minidump will be generated at the path
|
|
|
|
|
%TEMP%\afsd.dmp. The type of minidump defaults to Normal but
|
|
|
|
|
can be set to any other type via use of the
|
|
|
|
|
registry.
|
|
|
|
|
|
|
|
|
|
[HKLM\SOFTWARE\OpenAFS\Client] MiniDumpType (DWORD)
|
|
|
|
|
|
|
|
|
|
(b) MiniDumps can be generated at any time using the "fs minidump"
|
|
|
|
|
command. This allows you to generate a minidump without
|
|
|
|
|
stopping the process or even requiring the use of a debugger
|
|
|
|
|
on the system.
|
|
|
|
|
|
|
|
|
|
* an RX connection which reports bad ticket now treats it the same way
|
|
|
|
|
the expired ticket is treated. The ticket is removed from the
|
|
|
|
|
connection and a new anonymous connection is established.
|
|
|
|
|
|
|
|
|
|
* fs memdump now requires that the caller be in the AFS Client Admins
|
|
|
|
|
group
|
|
|
|
|
|
|
|
|
|
* additional debugging information is provided in cm_Analyze when the
|
|
|
|
|
error code is ignored.
|
|
|
|
|
|
2005-04-29 21:49:58 +01:00
|
|
|
|
* Fix a regression introduced into the pioctl() client code which
|
|
|
|
|
will cause a crash in winlogon.exe, explorer.exe and fs.exe if
|
2005-05-10 05:31:56 +01:00
|
|
|
|
MIT KFW is not installed. (1.3.82a)
|
2005-04-29 21:49:58 +01:00
|
|
|
|
|
2005-05-10 05:31:56 +01:00
|
|
|
|
* Remove AFS Gateway option from OpenAFS Control Panel (1.3.82a)
|
2005-04-29 21:49:58 +01:00
|
|
|
|
|
2005-04-14 07:46:34 +01:00
|
|
|
|
Since 1.3.81:
|
2005-04-27 17:28:00 +01:00
|
|
|
|
* Fix a race condition in cm_EndCallbackGrantingCall() that
|
|
|
|
|
could leave 'nrevp' pointing to freed memory. In the process,
|
|
|
|
|
optimize the processing to ensure that the applications monitoring
|
|
|
|
|
the status of the stat cache entry are only notified at most
|
|
|
|
|
once.
|
|
|
|
|
|
|
|
|
|
* Conditionalize access to the Explorer Shell AFS->Mount Point
|
|
|
|
|
->Remove menu item. Disable the item if the selected item(s)
|
|
|
|
|
are not mount points.
|
|
|
|
|
|
|
|
|
|
* Activate AFS RPC (RX) Free Packet Queues stored in Thread
|
|
|
|
|
Local Storage. This eliminates thread contention on the
|
|
|
|
|
global RX free packet queue. This should improve performance
|
|
|
|
|
on multi-CPU systems.
|
|
|
|
|
|
|
|
|
|
* Fix the IP address filtering code to properly load/unload
|
|
|
|
|
the IPHelper DLL so that Windows XP/2003 and beyond systems
|
|
|
|
|
do not have to manually probe the registry.
|
|
|
|
|
|
|
|
|
|
* CleanupACLEnt() was not being called consistently with
|
|
|
|
|
the cm_scache_t object referred to by the back pointer
|
|
|
|
|
mutex locked. This could in very rare conditions lead to
|
|
|
|
|
an invalid memory access.
|
|
|
|
|
|
2005-04-14 07:46:34 +01:00
|
|
|
|
* Added a script command to the msi installer "afs_replace"
|
|
|
|
|
which can be used to replace one version of OpenAFS with
|
|
|
|
|
another without requiring an uninstall and reinstall if
|
|
|
|
|
the installed msi is no longer in its original location.
|
|
|
|
|
|
|
|
|
|
* Apparently the problem with multi-domain forests with cross-
|
|
|
|
|
realm trusts to non-Windows realms was not entirely solved.
|
|
|
|
|
The authentication to the AFS SMB service failed because
|
|
|
|
|
the wrong name was being used. Using ASU as an example,
|
|
|
|
|
the authentication was being performed with the name
|
|
|
|
|
"QAAD\user" (an account in the forest root) and not
|
|
|
|
|
"user@ASU.EDU (the MIT Kerberos principal used to login with)
|
|
|
|
|
|
|
|
|
|
The solution was to add an additional dependency on KFW
|
|
|
|
|
in order or to be able to easily obtain the client principal
|
|
|
|
|
name stored in the MSLSA ccache TGT. This information is
|
|
|
|
|
used in two locations:
|
|
|
|
|
|
|
|
|
|
- the pioctl() function
|
|
|
|
|
|
|
|
|
|
- a new WinLogon Event Handler for the "logon" event.
|
|
|
|
|
|
|
|
|
|
The pioctl function will now be able to use the correct
|
|
|
|
|
name when calling WNetAddConnection2() and the "logon"
|
|
|
|
|
event handler will now be able to call WNetAddConnection2().
|
|
|
|
|
The hope is that the "logon" event handler will be called
|
|
|
|
|
before the profile is loaded but I have not guarrantee
|
|
|
|
|
that will happen.
|
|
|
|
|
|
2005-04-02 11:06:44 +01:00
|
|
|
|
Since 1.3.80:
|
|
|
|
|
* Fixed a locking error in cm_TryBulkStat() which had the
|
|
|
|
|
potential of deadlocking the system for the length of time
|
|
|
|
|
it takes to perform a bulk status fetch operation.
|
|
|
|
|
|
|
|
|
|
* Replaced time conversion code (UnixTime <-> FILETIME) to
|
|
|
|
|
be completely arithmetic instead of relying on a bizarre
|
|
|
|
|
algorithm involving a variety of C RTL time functions.
|
2005-04-04 13:51:02 +01:00
|
|
|
|
This has the side effect that UnixTime and FILETIME which
|
|
|
|
|
are both stored in UTC are interpretted as UTC throughout
|
|
|
|
|
the year. Windows will apply the same localization to AFS
|
|
|
|
|
as it does to NTFS. Applications which rely on the ability
|
|
|
|
|
to sync files between the two file systems will no longer
|
|
|
|
|
see the timestamps of files in AFS change an hour relative
|
|
|
|
|
to the files stored in NTFS or Windows based backup devices.
|
2005-04-02 11:06:44 +01:00
|
|
|
|
|
|
|
|
|
* Fixed a invalid memory access under a bizarre circumstance.
|
|
|
|
|
Windows will allow a physical mass media device to be
|
|
|
|
|
installed via Plug N Play to the system and will assign it
|
|
|
|
|
the lowest available drive letter. This is true even if the
|
|
|
|
|
drive letter is currently assigned in the user session to
|
|
|
|
|
a network device via NET USE (or its equivalent.) When this
|
|
|
|
|
happens, queries sent to the CIFS server will contain invalid
|
|
|
|
|
data. This invalid data was not being caught by the AFS
|
|
|
|
|
Client Service and was resulting in a crash when Freelance
|
|
|
|
|
mode was in use.
|
|
|
|
|
|
|
|
|
|
* Fixed a reference count error when registering callbacks
|
|
|
|
|
on a stat cache object if the callback was already registered
|
|
|
|
|
|
|
|
|
|
* Add a case to cm_Analyze() in order to handle the case where
|
|
|
|
|
cm_GetConnByMServers() returns CM_ERROR_NOSUCHVOLUME because
|
|
|
|
|
the server list for the volume is empty. In this case, force
|
|
|
|
|
an update of the volume info and retry.
|
|
|
|
|
|
|
|
|
|
* Insert a missing cm_EndCallbackGrantingCall() which could
|
|
|
|
|
result in threads waiting for a callback to complete to never
|
|
|
|
|
be woken up.
|
|
|
|
|
|
|
|
|
|
* In the persistent cache, there is a maximum number of volume
|
|
|
|
|
entries. Allow volume entries to be reused if the maximum
|
|
|
|
|
number have been allocated and their reference count is zero.
|
|
|
|
|
|
|
|
|
|
* If we already have a dead virtual connection object, don't
|
|
|
|
|
ignore the fact that additional dead vc objects must be taken
|
|
|
|
|
care of.
|
|
|
|
|
|
|
|
|
|
* Removed a deadlock condition introduced in the summer of 2004.
|
|
|
|
|
Do not hold mx locks around calls to RX functions including
|
|
|
|
|
rx_NewCall(). That is what reference counts on the rx_connection
|
|
|
|
|
object are for.
|
|
|
|
|
|
|
|
|
|
* Fixed an initialization error in afslogon.dll which could
|
|
|
|
|
result in random behavior including a failure to terminate
|
|
|
|
|
the NPLogon function. (1.3.80b)
|
|
|
|
|
|
|
|
|
|
* Fixed an error preventing the use of SMB authentication
|
|
|
|
|
on Windows 2000. (1.3.80a)
|
|
|
|
|
|
2004-12-24 17:21:06 +00:00
|
|
|
|
Since 1.3.77:
|
2005-03-17 17:50:22 +00:00
|
|
|
|
* Updated CellServDB to Public CellServDB 16 Mar 2005
|
|
|
|
|
|
|
|
|
|
* Fixed DNS AFSDB queries to ensure that "csail" cannot be
|
|
|
|
|
misinterpretted as "csail.mit.edu" when the resolver
|
|
|
|
|
is configured to append ".mit.edu" to failed DNS queries.
|
|
|
|
|
|
|
|
|
|
* Fixed another case in which the client would replace connections
|
|
|
|
|
to the host when it was not necessary. In this case the
|
|
|
|
|
situation would occur if cryptall was on and the connections
|
|
|
|
|
were unauthenticated due to lack of an appropriate token.
|
|
|
|
|
|
2005-03-15 00:55:56 +00:00
|
|
|
|
* OpenAFS for Windows has failed to work at sites which are
|
|
|
|
|
utilizing a cross-realm trust between an MIT/Heimdal realm
|
|
|
|
|
and a multi-domain Windows forest when the workstation being
|
|
|
|
|
accessed is not located in the root domain. This is caused
|
|
|
|
|
by a bug in the workstation which was triggered after the
|
|
|
|
|
introduction of Windows 2003 Server. When the bug is triggered,
|
|
|
|
|
the workstation attempts to authenticate users to afsd_service.exe
|
|
|
|
|
by contacting the Domain Controller instead of using the
|
|
|
|
|
LSA loopback authentication mechanism.
|
|
|
|
|
|
|
|
|
|
One of the reasons this bug occurs is because the workstation
|
|
|
|
|
does not have a reliable way of knowing that the service whose
|
|
|
|
|
netbios name is "AFS" is located on the workstation. This will
|
|
|
|
|
be fixed starting in Longhorn Beta 1 by Microsoft. The
|
|
|
|
|
"BackConnectionHostNames" registry value will be used to
|
|
|
|
|
indicate that the authentications to that service name should
|
|
|
|
|
be performed using the loopback authentication mechanism.
|
|
|
|
|
|
|
|
|
|
In the meantime, when Logon Caching is enabled, we can force
|
|
|
|
|
afsd_service.exe to authenticate using the logon cache before
|
|
|
|
|
contacting the Domain Controller. This will work with both
|
|
|
|
|
password and smart card based logons.
|
|
|
|
|
|
2005-03-11 05:33:12 +00:00
|
|
|
|
* The allDown logic in cm_ConnByMServers() was wrong. The allDown
|
|
|
|
|
flag should not be cleared if a volume's server reference is
|
|
|
|
|
marked as "offline". In the case where all of the volume's
|
|
|
|
|
servers are either "down" or the volumes are "offline", we want
|
|
|
|
|
cm_Analyze() to process the condition as CM_ERROR_ALLOFFLINE
|
|
|
|
|
instead of as CM_ERROR_TIMEDOUT. In fact, CM_ERROR_TIMEDOUT
|
|
|
|
|
should never occur in practice.
|
|
|
|
|
|
|
|
|
|
In the case of CM_ERROR_ALLOFFLINE, cm_Analyze() will sleep for
|
|
|
|
|
5 seconds, clear the server down and volume busy flags, and
|
|
|
|
|
then force an update from the VLDB. This allows the client to
|
|
|
|
|
update the location of a volume if the reason for it being
|
|
|
|
|
marked offline is because it is being moved. Calls to
|
|
|
|
|
cm_ConnByMServers() will be retried either until success or
|
|
|
|
|
the RDRtimeout period is reached.
|
|
|
|
|
|
|
|
|
|
* Correct the Power Management code behavior in response to
|
|
|
|
|
Standby, Suspend, and Shutdown events. Instead of flushing the
|
|
|
|
|
buffers associated with the mounted SMB submounts, simply write
|
|
|
|
|
all buffers which are marked dirty.
|
|
|
|
|
|
|
|
|
|
* Added support for "TheseCells" to afslogon.dll. "TheseCells"
|
|
|
|
|
provides a list of cells other than the default cell for which
|
|
|
|
|
tokens should be obtained using the default Kerberos principal.
|
|
|
|
|
This functionality is logon domain specific and is only available
|
|
|
|
|
when using KFW for authentication.
|
|
|
|
|
|
|
|
|
|
* Fixed FindNext Invalid Handle error caused by over agressive
|
|
|
|
|
attempts at garbage collecting dirSearch entries when the
|
|
|
|
|
dirSearch ID wraps from the maximum value to 1.
|
|
|
|
|
|
|
|
|
|
* Add support for registry defined server preferences for VLDB and
|
|
|
|
|
File servers. See registry.txt for details.
|
|
|
|
|
|
|
|
|
|
* Increased default cache size to 96MB and default number of cache
|
|
|
|
|
entries to 10,000.
|
|
|
|
|
|
|
|
|
|
* Fixed refCount leaks related to directory lookups and pioctl calls.
|
|
|
|
|
|
|
|
|
|
* Callbacks revoked during a race condition with an attempt to
|
|
|
|
|
obtain the same callback no longer result in an inaccessible
|
|
|
|
|
stat cache entry.
|
|
|
|
|
|
|
|
|
|
* New command line tool:
|
|
|
|
|
|
|
|
|
|
afsdacl : Set or reset the DACL to allow starting or stopping
|
|
|
|
|
the afsd service by any ordinary user.
|
|
|
|
|
|
|
|
|
|
Usage : afsdacl [-set | -reset] [-show]
|
|
|
|
|
-set : Sets the DACL
|
|
|
|
|
-reset : Reset the DACL
|
|
|
|
|
-show : Show current DACL (SDSF)
|
|
|
|
|
|
|
|
|
|
* IP addresses are no longer queried once at startup. Instead IP
|
|
|
|
|
addresses are obtained as needed. Loopback adapter addresses are
|
|
|
|
|
no longer published to the server.
|
|
|
|
|
|
|
|
|
|
* Pay attention to the MIT KFW registry configuration for automatic
|
|
|
|
|
importation of MSLSA credentials. (SOFTWARE\MIT\Leash32,MsLsaImport)
|
|
|
|
|
|
|
|
|
|
* Fix (once again) case-sensitive comparisons which was apparently
|
|
|
|
|
broken in 1.3.72.
|
|
|
|
|
|
|
|
|
|
* Activate support for vos listvol -format
|
|
|
|
|
|
|
|
|
|
* Population of the "AFS Client Admins" group failed on non-English
|
|
|
|
|
versions of Windows because the name of the "Administrators" group
|
|
|
|
|
is localized. Now we lookup the name of the group by using the
|
|
|
|
|
Administrators Group Alias Relative ID.
|
|
|
|
|
|
|
|
|
|
* Multiple cell token acquisition within afscreds.exe was broken in the
|
|
|
|
|
case of Kerberos 5 cross realm authentication. Instead of contacting
|
|
|
|
|
the KDC associated with the cell's realm, afscreds would obtain a
|
|
|
|
|
token from the KDC of the user's realm. This would result in
|
|
|
|
|
"invalid kvno errors" while authenticating to the AFS servers.
|
|
|
|
|
Unauthenticated access would work. The symptoms would vary based upon
|
|
|
|
|
whether or not the VLDB servers had been contacted using unauthenticated
|
|
|
|
|
connections prior to the user obtaining tokens.
|
|
|
|
|
|
|
|
|
|
* The list of ACL entries was becoming corrupted. It appears as if
|
|
|
|
|
an ACL when it expires was not being appropriately cleaned up. In
|
|
|
|
|
fact, it was left in the list of ACLs associated with the scache
|
|
|
|
|
entry.
|
2005-01-26 15:51:46 +00:00
|
|
|
|
|
|
|
|
|
* Changed the default @sys name list to "x86_win32 i386_w2k i386_nt40"
|
|
|
|
|
for 32-bit x86 systems. The default for itanium will be "ia64_win64"
|
|
|
|
|
and "amd64_win64" for amd 64-bit processors.
|
|
|
|
|
|
|
|
|
|
* When executing executables, Windows provides a mechanisms by which
|
|
|
|
|
the normal search for DLLs can be bypassed. If a file foo.exe is
|
|
|
|
|
being executed and there exists a file or directory "foo.exe.local"
|
|
|
|
|
(the contents are ignored if a file), then Windows will search for
|
|
|
|
|
DLLs first in the "foo.exe.local" directory and second in the
|
|
|
|
|
directory in which the "foo.exe" file is located.
|
|
|
|
|
|
|
|
|
|
Previous releases of OAFW would improperly return
|
|
|
|
|
STATUS_NOT_A_DIRECTORY instead of the expected
|
|
|
|
|
STATUS_OBJECT_PATH_NOT_FOUND. This would cause the Windows SMB client
|
|
|
|
|
to terminate the search for the DLL causing the execution of the
|
2005-03-11 05:33:12 +00:00
|
|
|
|
application to fail.
|
2005-01-26 15:51:46 +00:00
|
|
|
|
|
2005-03-11 05:33:12 +00:00
|
|
|
|
* Rework the reference counting of smb_vc_t objects. The references
|
2005-01-26 15:51:46 +00:00
|
|
|
|
stored in the waiting locks were not counted. This could result in
|
2005-03-11 05:33:12 +00:00
|
|
|
|
an assertion if the reference count drops to zero.
|
|
|
|
|
|
|
|
|
|
* "fs wscell" returns "Freelance.Local.Root" for the workstation cell
|
|
|
|
|
when running in freelance mode.
|
|
|
|
|
|
|
|
|
|
* Added support for persistent caching of file contents, stat entries,
|
|
|
|
|
volume data, cell data, and name lookup data. When the registry
|
|
|
|
|
value, "NonPersistentCaching", is not defined or set to 0 the file
|
|
|
|
|
specified by "CachePath" becomes a persistent cache file. The
|
|
|
|
|
size of the cache file is computed at run time. It has a maximum
|
|
|
|
|
size of approximately 1.2GB. The contents of the file will be
|
|
|
|
|
validated according to the rules specified by the "ValidateCache"
|
|
|
|
|
registry value.
|
|
|
|
|
|
|
|
|
|
* Added support for UUIDs. UUIDs are kept for as long as the
|
|
|
|
|
cache file is intact.
|
|
|
|
|
|
|
|
|
|
* Added cmdebug.exe and support cache manager debugging callback
|
|
|
|
|
interfaces in afsd_service.exe.
|
|
|
|
|
|
|
|
|
|
Usage: cmdebug -servers <server machine> [-port <IP port>] [-long]
|
|
|
|
|
[-addrs] [-cache] [-help]
|
|
|
|
|
Where: -long print all info
|
|
|
|
|
-addrs print only host interfaces
|
|
|
|
|
-cache print only cache configuration
|
|
|
|
|
|
|
|
|
|
* Symlinks to \\AFS\[all\]... will now be treated the same as
|
|
|
|
|
symlinks to /afs/.... However, please use /afs/... as otherwise
|
|
|
|
|
the symlinks won't work on Unix.
|
|
|
|
|
|
|
|
|
|
* Correct a problem with local CellID allocation for cells whose
|
|
|
|
|
server list is obtained via DNS instead of a CellServDB file. If
|
|
|
|
|
the DNS information expires the CellID assigned to the entry will
|
|
|
|
|
be changed. This causes all of the cm_scache_t objects which refer
|
|
|
|
|
to the old cellID number to become useless. Attempts to access
|
|
|
|
|
files or directories with cm_scache_t objects using the old cellID
|
|
|
|
|
will fail since the server list cannot be obtained.
|
2005-01-26 15:51:46 +00:00
|
|
|
|
|
2005-01-05 04:23:58 +00:00
|
|
|
|
* Correct deadlock condition in cm_EndCallbackGrantingCall which can
|
|
|
|
|
be triggered if the volume referenced by the cm_scache_t object is
|
|
|
|
|
offline.
|
|
|
|
|
|
|
|
|
|
* The AFS Service needs to respond to SERVICE_ACCEPT_SHUTDOWN messages
|
|
|
|
|
in addition to SERVICE_ACCEPT_STOP.
|
|
|
|
|
|
|
|
|
|
* Move RPC shutdown until after the SMB and RX shutdown procedures
|
|
|
|
|
complete. Block until RPC shutdown is complete.
|
|
|
|
|
|
|
|
|
|
* Modify afslogon.dll (integrated logon) to wait for service if its
|
|
|
|
|
state is START_PENDING. If the timeout period occurs, reset to
|
|
|
|
|
the retry interval and not the sleep interval.
|
|
|
|
|
|
|
|
|
|
* When renewing the server list for a cell obtained via DNS AFSDB
|
|
|
|
|
records, the cm_cell_t entry must be removed from the list of all
|
|
|
|
|
cells. Otherwise, the list of cells will be corrupted.
|
|
|
|
|
|
|
|
|
|
* In the dcache and scache modules, use the cm_scache_t dataVersion
|
|
|
|
|
instead of the cm_fakeDirVersion.
|
|
|
|
|
|
|
|
|
|
* Synchronize fs.c with the unix version.
|
|
|
|
|
|
2004-12-24 17:21:06 +00:00
|
|
|
|
* The variable used to determine whether a file or virtual memory
|
|
|
|
|
mapped cache is used was not properly initialized to a default
|
|
|
|
|
value. If the registry setting "NonPersistentCaching" was not
|
|
|
|
|
set, the choice would be random. Properly initialized to be
|
|
|
|
|
"file".
|
|
|
|
|
|
2005-01-05 04:23:58 +00:00
|
|
|
|
* The memory mapped view was never unmapped before closing the file
|
|
|
|
|
at service shutdown. This is now properly cleaned up.
|
2004-12-24 17:21:06 +00:00
|
|
|
|
|
2005-01-05 04:23:58 +00:00
|
|
|
|
* Default location of Cache file is now %TEMP%\AFSCache
|
2004-12-24 17:21:06 +00:00
|
|
|
|
|
2004-12-16 20:11:08 +00:00
|
|
|
|
Since 1.3.76:
|
|
|
|
|
|
|
|
|
|
* A bug affecting new installations of 1.3.75/76 would result in
|
|
|
|
|
the creating of incorrect mountpoints in the freelance root.afs
|
|
|
|
|
volume for the default cell.
|
|
|
|
|
|
|
|
|
|
If "fs \\afs\all\<cellname>" lists a volume name of "root" instead
|
|
|
|
|
of "root.cell", you have been affected by the bug. To correct the
|
|
|
|
|
problem, execute the following commands:
|
|
|
|
|
|
|
|
|
|
fs rmmount \\afs\all\<cellname>
|
|
|
|
|
fs rmmount \\afs\all\.<cellname>
|
|
|
|
|
|
|
|
|
|
fs mkmount \\afs\all\<cellname> root.cell <cellname>
|
|
|
|
|
fs mkmount \\afs\all\.<cellname> root.cell <cellname> -rw
|
|
|
|
|
|
2004-12-09 23:14:01 +00:00
|
|
|
|
Since 1.3.75:
|
|
|
|
|
|
2004-12-13 14:02:32 +00:00
|
|
|
|
* A bug has been fixed in the auto-generation of Freelance root.afs
|
|
|
|
|
symlinks which produced random entries in the \\AFS\all directory.
|
|
|
|
|
|
2004-12-09 23:14:01 +00:00
|
|
|
|
* Support has been added for multi-homed servers
|
|
|
|
|
|
2004-11-23 03:49:05 +00:00
|
|
|
|
Since 1.3.74:
|
2004-12-07 12:41:15 +00:00
|
|
|
|
* Added a new registry value, "StoreAnsiFilenames", which can be used
|
|
|
|
|
to force the use of ANSI character sets instead of OEM Code Pages.
|
|
|
|
|
This feature is useful when users require the ability to create
|
|
|
|
|
filenames with 8-bit characters and need to access the files from
|
|
|
|
|
both Latin-1 based Unix systems as well as from Windows.
|
|
|
|
|
|
|
|
|
|
Activation of this feature will prevent access to files stored with
|
|
|
|
|
8-bit OEM characters.
|
|
|
|
|
|
|
|
|
|
* Shutdown all SMB threads in a synchronized manner when stopping the
|
|
|
|
|
service.
|
|
|
|
|
|
2004-11-30 07:40:11 +00:00
|
|
|
|
* There is currently a maximum cache size of 1.3GB. The limit is imposed
|
|
|
|
|
by the largest contiguous block of unused memory within the 2GB process
|
|
|
|
|
space which can be assigned to the memory mapped file. Unfortunately,
|
|
|
|
|
when the executable digital signature verification code is activated
|
|
|
|
|
Windows sees fit to further segment the process memory which in turn
|
|
|
|
|
reduces the size of the maximum cache file to less then 800MB. If
|
|
|
|
|
larger cache sizes are desired, a new registry value should be set:
|
|
|
|
|
|
|
|
|
|
HKLM\SOFTWARE\OpenAFS\Client (DWORD) "VerifyServiceSignature" = 0x0
|
|
|
|
|
|
|
|
|
|
Setting this value will disable the runtime verification of digital
|
|
|
|
|
signatures on afsd_service.exe and the afs dlls which it loads. It
|
|
|
|
|
will not disable the the version number check on those same files.
|
|
|
|
|
The signature verification is not a security messure and is only meant
|
|
|
|
|
to enhance the ability to afsd_service.exe to detect potential
|
|
|
|
|
destablizing mixtures of DLLs from incompatible distributions.
|
|
|
|
|
|
|
|
|
|
Added code to auto-disable the signature verification check if
|
|
|
|
|
the desired cache size is greater then 700MB.
|
|
|
|
|
|
|
|
|
|
* Windows' WinTrustVerify(WIN_SPUB_ACTION_PUBLISHED_SOFTWARE) is
|
|
|
|
|
used to verify the validity of the afsd_service.exe binary
|
|
|
|
|
as well as each of the AFS DLLs loaded by the service. Not only
|
|
|
|
|
must the digital signature be valid but the signatures of the
|
|
|
|
|
DLL must be signed by the same entity as the service.
|
|
|
|
|
|
|
|
|
|
* Implement new functions: cm_freelanceMountPointExists and
|
|
|
|
|
cm_freelanceSymlinkExists. Use them along with other validity
|
|
|
|
|
checks in cm_freelanceAddMount and cm_freelanceAddSymlink to
|
|
|
|
|
ensure that name collisions do not occur and that empty strings
|
|
|
|
|
are not valid file names.
|
|
|
|
|
|
|
|
|
|
A symlink may not have a name which would resolve to a valid
|
|
|
|
|
cell name. Doing so would prevent access to the cell.
|
|
|
|
|
|
|
|
|
|
* Add missing cm_HoldSCacheNoLock call to Freelance mount point
|
|
|
|
|
re-initialization code. The reference counts of the fake root.afs
|
|
|
|
|
volume scache object(s) would become invalid when the mount point
|
|
|
|
|
or symlink lists were altered.
|
|
|
|
|
|
2004-11-25 01:25:30 +00:00
|
|
|
|
* Add registry entries to provide mappings from the afsdsbmt.ini
|
|
|
|
|
to the new locations for applications which count on the use
|
|
|
|
|
of the old Profile file APIs. These apps are likely to fail
|
|
|
|
|
if the user does not have administrator privileges and the
|
|
|
|
|
registry is locked down.
|
|
|
|
|
|
2004-11-24 18:42:31 +00:00
|
|
|
|
* The afs_config.exe submounts dialog had two errors.
|
|
|
|
|
First, attempts to remove entries failed because the registry
|
|
|
|
|
key was being opened without KEY_WRITE privileges.
|
|
|
|
|
Second, when editing a submount entry, changing the name
|
|
|
|
|
would add a new key and leave the original one in place.
|
|
|
|
|
Now the original submount will be removed if its name is
|
|
|
|
|
changed.
|
|
|
|
|
|
|
|
|
|
* In recent months there have been several incidents in which
|
|
|
|
|
users have experienced problems starting or accessing
|
|
|
|
|
afsd_service.exe and after significant effort has been spent
|
|
|
|
|
it has turned out that they have two versions of AFS on the
|
|
|
|
|
machine or an inconsistent set of DLLs.
|
|
|
|
|
|
|
|
|
|
Code has now been added to afsd_service.exe which will walk
|
|
|
|
|
the list of modules loaded by afsd_service.exe and validate
|
|
|
|
|
that the version of the AFS DLLs matches the version of the
|
|
|
|
|
afsd_service.exe executable. If they do not match the service
|
|
|
|
|
will not start.
|
|
|
|
|
|
|
|
|
|
* When Freelance mode is enabled and there is no registry
|
|
|
|
|
key HKLM\SOFTWARE\OpenAFS\Client\Freelance, afsd_service.exe
|
|
|
|
|
will attempt to import the afs_freelance.ini file contents.
|
|
|
|
|
If the file does not exist, it was creating a dummy file
|
|
|
|
|
with a r/o and r/w entry for the default cell and then
|
|
|
|
|
importing those values.
|
|
|
|
|
|
|
|
|
|
This process has been changed. The temporary file is no
|
|
|
|
|
longer created. Also, both the OpenAFS Client install
|
|
|
|
|
directory as well as %WINDIR% are checked for previous
|
|
|
|
|
afs_freelance.ini files.
|
|
|
|
|
|
2004-11-23 03:49:05 +00:00
|
|
|
|
* Added support for VL_GetEntryByNameN(). Still need to add
|
|
|
|
|
support for VL_GetEntryByNameU() for multi-homed support.
|
|
|
|
|
|
|
|
|
|
* Fix a deadlock situation in afscreds.exe when canceling an
|
|
|
|
|
auto-generated Obtain Tokens dialog
|
|
|
|
|
|
2004-10-28 03:22:25 +01:00
|
|
|
|
Since 1.3.72/73:
|
2004-11-09 12:47:36 +00:00
|
|
|
|
* Fix the locking of objects during Directory Searches in the
|
|
|
|
|
SMB/CIFS server. The failure to properly lock the reference
|
|
|
|
|
counts was resulting in the premature freeing of smb_dirSearch_t
|
|
|
|
|
objects while they were still in use by the SMB/CIFS client.
|
|
|
|
|
This does not solve the "Invalid Handle" problem.
|
|
|
|
|
|
|
|
|
|
* Fix Find Cell By Name pioctl call to return a valid cell
|
|
|
|
|
name for the Freelance fake root.afs volume.
|
|
|
|
|
"Freelance.Local.Root".
|
|
|
|
|
|
|
|
|
|
* Fix the Explorer Shell Extension Symlinks->Add operation.
|
|
|
|
|
The dialog template was missing and the link destination
|
|
|
|
|
string was too short.
|
|
|
|
|
|
2004-10-28 03:22:25 +01:00
|
|
|
|
* Add support for symlinks to Freelance root.afs volume
|
|
|
|
|
Stored at HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks
|
|
|
|
|
<number> = "<linkname>:<relative-path>."
|
|
|
|
|
Use symlink.exe to create, list, or remove
|
|
|
|
|
|
|
|
|
|
* Remove the fallback to the use of KFW's KRB4 library when obtaining
|
|
|
|
|
tokens. We never obtain KRB4 tickets.
|
|
|
|
|
|
|
|
|
|
* Fix AFS Client Configuration Control Panel to support new SysName
|
|
|
|
|
protocol.
|
2005-01-05 04:23:58 +00:00
|
|
|
|
|
2004-10-28 03:22:25 +01:00
|
|
|
|
* Fix a bug in afsd_service.exe which could result in the SysName
|
|
|
|
|
not being read from the registry.
|
|
|
|
|
|
2004-09-21 16:00:08 +01:00
|
|
|
|
Since 1.3.71:
|
2004-10-17 23:00:24 +01:00
|
|
|
|
* Add code to block the issuance of AFS tokens by aklog.exe or
|
|
|
|
|
afscreds.exe when the Kerberos 5 principal name contains a dot.
|
|
|
|
|
|
|
|
|
|
* Modify the IsAdmin() function to always treat the local SYSTEM
|
|
|
|
|
account as an AFS client administrator. Affects fs.exe and
|
|
|
|
|
afs_config.exe.
|
|
|
|
|
|
|
|
|
|
* Modify the internal handling of Quota Exceeded errors
|
|
|
|
|
|
|
|
|
|
* Upgrade all reference count fields in the Windows cache manager
|
|
|
|
|
and the osi library to use unsigned long instead of signed short.
|
|
|
|
|
A similar fix has been applied to the afs rpc (rx) library.
|
|
|
|
|
|
2004-10-13 04:48:24 +01:00
|
|
|
|
* fix the Windows cache manager to prevent it from replacing the
|
|
|
|
|
rx_connection object associated with the cm_conn_t object on each
|
|
|
|
|
and every operation if "fs crypt" was set. This explains the
|
|
|
|
|
dramatic performance difference when crypt is used vs clear.
|
|
|
|
|
The problem: 'cryptall', a boolean flag indicating whether or not
|
|
|
|
|
"fs crypt" is set, was being compared to the rx_connection
|
|
|
|
|
cryptlevel which is either rxkad_clear:0 or rxkad_crypt:2.
|
|
|
|
|
1 != 2 and therefore the rx_connection was always destroyed
|
|
|
|
|
and replaced on each and every operation.
|
|
|
|
|
|
|
|
|
|
Lock the cm_conn_t object around every call to RXAFS_xxxx functions.
|
|
|
|
|
It is not safe for the cm_conn_t object to not be locked because
|
|
|
|
|
rx_DestroyConnection might be called from another thread if:
|
|
|
|
|
- the user's tokens have changed or expired
|
|
|
|
|
- the crypt mode has changed
|
|
|
|
|
|
2004-10-17 23:00:24 +01:00
|
|
|
|
This fix appears to have also taken care of the problems associated
|
|
|
|
|
with Overlapped Writes resulting in Delayed Write errors.
|
|
|
|
|
|
2004-10-13 04:48:24 +01:00
|
|
|
|
* fix NSIS installer's AdminGroup.exe to properly create and
|
|
|
|
|
remove groups when given -create or -remove. The string comparison
|
|
|
|
|
test was wrong.
|
|
|
|
|
|
|
|
|
|
* fs sysname now accepts a list of sysname values
|
|
|
|
|
|
|
|
|
|
* added a new registry value HKLM\SOFTWARE\OpenAFS\Client "IoctlDebug"
|
|
|
|
|
DWORD which when set to a non-zero value will cause error message
|
|
|
|
|
text to be output to stderr from the pioctl() routine. Useful in
|
|
|
|
|
debugging failures of fs.exe, tokens.exe, etc.
|
|
|
|
|
|
|
|
|
|
* added a test to the power management code to only perform a
|
|
|
|
|
flush operation if there is at least one network adapter which
|
|
|
|
|
is not a loopback adapter.
|
|
|
|
|
|
2004-09-22 17:04:59 +01:00
|
|
|
|
* Fix bug in loading of registry value HKLM\SOFTWARE\OpenAFS\Client
|
|
|
|
|
"EnableKFW". This value will not be read if the key
|
|
|
|
|
HKCU\SOFTWARE\OpenAFS\Client exists; even if the "EnableKFW"
|
|
|
|
|
value under that key does not.
|
|
|
|
|
|
2004-09-22 08:00:56 +01:00
|
|
|
|
* provide mechanisms to force the use of krb524d for Kerberos 5
|
|
|
|
|
ticket to AFS token conversion. For afslogon.dll and afscreds.exe
|
|
|
|
|
there is a new registry value "Use524" and for aklog.exe a new
|
|
|
|
|
command line parameter "-m".
|
|
|
|
|
|
2004-09-21 22:05:14 +01:00
|
|
|
|
* Fix the pattern matching algorithm to properly match patterns
|
|
|
|
|
ending with a '*'.
|
|
|
|
|
|
2004-09-21 16:00:08 +01:00
|
|
|
|
* smb_ReceiveCoreRename() was factored to produce smb_Rename()
|
|
|
|
|
which is used by both the original function and the new
|
|
|
|
|
smb_ReceiveNTRename(). smb_ReceiveNTRename() supports the
|
|
|
|
|
creation of HardLinks in addition to Renaming. smb_Link()
|
|
|
|
|
is a new function which creates HardLinks via cm_Link().
|
|
|
|
|
cm_Link() is a new vnodeops function which creates links
|
|
|
|
|
using RXAFS_Link().
|
|
|
|
|
|
|
|
|
|
smb_ReceiveNTRename() does not support the File Copy and
|
|
|
|
|
Move Cluster Information operations described in its interface.
|
|
|
|
|
ReceiveNTRename is under documented in CIFS-TR-1p00_FINAL.pdf.
|
|
|
|
|
|
|
|
|
|
* When opening files via symlinks, we should follow the symlinks
|
|
|
|
|
until we reach the actual file stat cache entry. The stat cache
|
|
|
|
|
entry of the file should then be stored in the FID instead of
|
|
|
|
|
stat scache entry of the symlink.
|
|
|
|
|
|
|
|
|
|
* return bad operation errors for all unimplemented functions
|
|
|
|
|
even if we do not know the functions exist.
|
|
|
|
|
|
|
|
|
|
* Log bad packets and unknown operation packets to the trace log
|
|
|
|
|
|
|
|
|
|
* Map CM_ERROR_BADOP to STATUS_NOT_SUPPORTED instead of
|
|
|
|
|
0xC09820FF
|
|
|
|
|
|
|
|
|
|
* Update list of known CIFS operations to include all those listed
|
|
|
|
|
in CIFS-TR-1p00_FINAL.pdf.
|
|
|
|
|
|
2004-10-13 04:48:24 +01:00
|
|
|
|
* Modify the handling of HKLM\SOFTWARE\OpenAFS\Client\Submounts
|
|
|
|
|
to support the REG_EXPAND_SZ type.
|
|
|
|
|
|
2004-08-17 06:21:17 +01:00
|
|
|
|
Since 1.3.70:
|
2004-08-23 17:49:45 +01:00
|
|
|
|
* A new Windows authorization group "AFS Client Admins" is now
|
|
|
|
|
created and populated with the members of the "Administrators"
|
|
|
|
|
group. The group is used to determine which accounts on the
|
|
|
|
|
machine may be used to modify the AFS Client Configuration via
|
|
|
|
|
the UI and command line tools. afs_config.exe, fs.exe,
|
|
|
|
|
|
|
|
|
|
* Modify the WinLogon Logoff Event Handler to query NT4 domain
|
|
|
|
|
controllers for the remote profile path if Active Directory
|
|
|
|
|
services are not available.
|
|
|
|
|
|
2004-08-17 06:21:17 +01:00
|
|
|
|
* Fix aklog.exe to not add the AFS ID to the username
|
|
|
|
|
|
|
|
|
|
* PTS registration of new users to foreign cells has been added to
|
|
|
|
|
afscreds.exe
|
|
|
|
|
|
|
|
|
|
* The cm_Daemon thread is used to perform checks for
|
|
|
|
|
down servers, up servers, volumes, callback expirations,
|
|
|
|
|
lock maintenance and token expiration. Due to a gaff in
|
|
|
|
|
larger integer division the thread never performed any
|
|
|
|
|
work. Instead the current time computation would always
|
|
|
|
|
be less then the trigger times. This had an adverse affect
|
|
|
|
|
on the client's ability to maintain communication with servers,
|
|
|
|
|
keep volumes up to date, and flush user tokens and acls
|
|
|
|
|
when they have expired. This was broken when the 1.3 branch
|
|
|
|
|
was modified to support VC7 which no longer included
|
|
|
|
|
largeint.lib
|
|
|
|
|
|
|
|
|
|
* An initialization problem with the Freelance code was
|
|
|
|
|
detected while fixing the callbackRequest. The cm_rootSCachep
|
|
|
|
|
object is obtained during afsd_InitDaemons() but the callback
|
|
|
|
|
information is incomplete. The callback information will not
|
|
|
|
|
be obtained until cm_MergeStatus is called from within
|
|
|
|
|
cm_GetCallback. Unfortunately, cm_SyncOp did not properly
|
|
|
|
|
test for the conditions under which the callback information
|
|
|
|
|
must be obtained.
|
|
|
|
|
|
|
|
|
|
* Reports have been filed indicating that callbacks were
|
|
|
|
|
being lost. An examination of the code indicated that the
|
|
|
|
|
cm_server_t objects were not being properly reference
|
|
|
|
|
counted by the cm_scache_t and cm_callbackRequest_t objects.
|
|
|
|
|
In particular, the cm_server_t objects may have been freed
|
|
|
|
|
from beneath the cm_conn_t objects.
|
|
|
|
|
|
|
|
|
|
All of the reference counting is now done via the functions:
|
|
|
|
|
cm_GetServer
|
|
|
|
|
cm_GetServerNoLock
|
|
|
|
|
cm_PutServer
|
|
|
|
|
cm_PutServerNoLock
|
|
|
|
|
this improves the ability to track the referrals.
|
|
|
|
|
|
|
|
|
|
Each cm_BeginCallbackGranting Call now allocates a reference
|
|
|
|
|
to the cm_server_t. The cm_EndCallbackGrantingCall either
|
|
|
|
|
frees the reference or transfers it to the cm_scache_t
|
|
|
|
|
cbServerp field. These are then appropriately tracked
|
|
|
|
|
through the cm_Analyze call.
|
|
|
|
|
|
|
|
|
|
* Ensure that the dnlc hash table is the same size as the
|
|
|
|
|
dir name hash table (as per original author's note).
|
|
|
|
|
Increase the dnlc CM_AFSNCNAMESIZE to a multiple of 8
|
|
|
|
|
for compatibility with 64-bit systems.
|
|
|
|
|
|
|
|
|
|
* fix smb_ApplyV3DirListPatches to properly apply the hidden
|
|
|
|
|
attribute to dotfiles when the infoLevel < 0x101 and
|
|
|
|
|
cm_SyncOp has failed.
|
|
|
|
|
|
|
|
|
|
* Fix the Freelance registry initialization code. There
|
|
|
|
|
was a possibility that some systems could end up with
|
|
|
|
|
garbage in the registry during a clean install.
|
|
|
|
|
|
2004-08-05 18:47:28 +01:00
|
|
|
|
Since 1.3.66:
|
2004-08-07 23:32:46 +01:00
|
|
|
|
* file and directory names beginning with "." will now be given the
|
|
|
|
|
hidden attribute when the volume access is anonymous. this matches
|
|
|
|
|
the behavior when the volume access is via an authenticated user.
|
|
|
|
|
|
|
|
|
|
* Added a change monitor to the HKLM\SOFTWARE\OpenAFS\Client\Freelance
|
|
|
|
|
key. When a change occurs mark the root.afs data as invalid and
|
|
|
|
|
for it to be reloaded on the next access. This allows administrators
|
|
|
|
|
to modify the mount point list without restarting the service.
|
|
|
|
|
|
|
|
|
|
The freelance client used to provide a fake modification time for
|
|
|
|
|
the root.afs volume data and its mount points of 7/09/2001 14:24 EDT.
|
|
|
|
|
Added code to extract the last modification time of the Freelance
|
|
|
|
|
registry key and use that instead. The time now represents the
|
|
|
|
|
most recent mount point change.
|
|
|
|
|
|
2004-08-05 18:47:28 +01:00
|
|
|
|
* PTS registration of new users to foreign cells has been added to
|
|
|
|
|
aklog.exe
|
|
|
|
|
|
|
|
|
|
* Additional Cache Control and Credential Manager options have been
|
|
|
|
|
added to the WiX installer. See deployment guide for details.
|
|
|
|
|
|
|
|
|
|
* The CachePath setting is now optionally a REG_EXPAND_SZ type
|
|
|
|
|
|
|
|
|
|
* The WiX installer has been upgraded. Version 2.0.1927.1 is now
|
|
|
|
|
required.
|
|
|
|
|
|
|
|
|
|
* The loopback installation code may have had a problem updating the
|
|
|
|
|
%ETC%\HOSTS file which could have resulted in a premature failure.
|
|
|
|
|
Work around code has been added for the case where the file cannot
|
|
|
|
|
be deleted.
|
|
|
|
|
|
|
|
|
|
* The default max chunksize was increased from 15 (32K) to 17 (128K)
|
|
|
|
|
because Windows sends 64K blocks when using overlapped writes.
|
|
|
|
|
|
|
|
|
|
* The default number of server threads was increased from 4 to 25 to
|
|
|
|
|
better handle overlapped writes.
|
|
|
|
|
|
|
|
|
|
* The "AfscredsShortcutParams" registry value was not being properly
|
|
|
|
|
loaded by afscreds.exe. Therefore, the default value was always being
|
|
|
|
|
used instead of the value set by the installer.
|
|
|
|
|
|
|
|
|
|
* Windows XP provides downgrade attack detection to prevent an attacker
|
|
|
|
|
from being able to force the use of NTLM simply by disrupting
|
|
|
|
|
communication with the KDC. This attack cannot exist between the
|
|
|
|
|
Windows CIFS client and the AFS Client Service. Therefore, when a
|
|
|
|
|
downgrade has been detected the afs pioctl library will force the
|
|
|
|
|
establishment of a new CIFS connection using NTLM.
|
|
|
|
|
|
|
|
|
|
* A locking error was discovered surrounding all references to volume
|
|
|
|
|
server lists within the cm_cell.c source file.
|
|
|
|
|
|
|
|
|
|
* The logged into Windows username was incorrect on Terminal Server
|
|
|
|
|
machines.
|
|
|
|
|
|
|
|
|
|
* A new registry value "NonPersistentCaching" was added to the service
|
|
|
|
|
parameters key. When set to a non-zero value, the afs cache is stored
|
|
|
|
|
in the Windows paging file. There are two limitations to choosing
|
|
|
|
|
this option:
|
|
|
|
|
1. when persistent caching is implemented it won't work with
|
|
|
|
|
this flag set since there will be nothing to persist.
|
|
|
|
|
2. with this flag set the initial paging allocation cannot be
|
|
|
|
|
changed while the service is running
|
|
|
|
|
|
|
|
|
|
* An initialization bug was discovered in aklog.exe which affected users
|
|
|
|
|
who have a domain name for their afs servers which could not be mapped
|
|
|
|
|
to a realm
|
|
|
|
|
|
2004-07-15 18:26:35 +01:00
|
|
|
|
Since 1.3.65:
|
2004-07-27 01:24:09 +01:00
|
|
|
|
* afs_config.exe now validates cell names against DNS in addition
|
|
|
|
|
to the CellServDB file.
|
|
|
|
|
|
|
|
|
|
* In order to allow the freelance client to connect to a volume with ID
|
|
|
|
|
equal to 1 on the default cell we changed the fake root.afs volume ID
|
|
|
|
|
once again. This time we choose 0xFFFFFFFF. In addition, we change
|
|
|
|
|
the cell ID of the fake root.afs volume from 1 to 0xFFFFFFFF as well.
|
|
|
|
|
It will now be impossible for a volume ID to match that of another
|
|
|
|
|
cell unless the client is connected to 0xFFFFFFFD cells. That should
|
|
|
|
|
be enough room for growth.
|
|
|
|
|
|
|
|
|
|
* Fix "fs mkmount" command to work with UNC paths and when
|
|
|
|
|
started from non-AFS drives. It is now possible to create a mount
|
|
|
|
|
point in the freelance fake root.afs volume with the command
|
|
|
|
|
|
|
|
|
|
fs mkmount \\AFS\all\<directory-name> <volume-name> <cellname>
|
|
|
|
|
|
|
|
|
|
For example,
|
|
|
|
|
|
|
|
|
|
fs mkmount \\AFS\all\openafs.org root.cell openafs.org
|
|
|
|
|
fs mkmount \\AFS\all\.openafs.org root.cell openafs.org -rw
|
|
|
|
|
|
2004-07-25 22:53:09 +01:00
|
|
|
|
* The algorithm used to re-attempt access to the servers associated with
|
|
|
|
|
a volume has been altered to properly address the case in which all
|
|
|
|
|
servers have been marked down. The previous algorithm did not reset
|
|
|
|
|
the server's down flags so the servers were never actually retried.
|
|
|
|
|
This caused a problem with active volumes if the network connectivity
|
|
|
|
|
was lost as could be the case with a network cable removal, wireless
|
|
|
|
|
drop, or laptop hibernation. With the fix volume access is restored
|
|
|
|
|
almost instantenously when network connectivity becomes available.
|
|
|
|
|
|
2004-07-21 16:05:59 +01:00
|
|
|
|
* Support for SMB/CIFS browsing has been added to the AFS Client Service
|
|
|
|
|
SMB server. It is now possible to use "NET VIEW \\AFS" to obtain a
|
|
|
|
|
listing of AFS submounts and freelance mount points. Support for
|
|
|
|
|
NETSHAREENUM, NETSHAREGETINFO, NETSERVERENUM2, NETSERVERGETINFO
|
|
|
|
|
significantly enhances the behavior of AFS volumes within the Explorer
|
|
|
|
|
Shell. For instance, "AFS" now shows up as server in the Explorer
|
|
|
|
|
with each submount or freelance mount point visible as a share.
|
|
|
|
|
The right click menu in each folder now works with full functionality
|
|
|
|
|
on a consistent basis.
|
|
|
|
|
|
|
|
|
|
* The network provider can be configured to have different behavior
|
|
|
|
|
depending on the domain that the user logs into. These settings are
|
|
|
|
|
only relevant when using integrated login. A domain refers to an
|
|
|
|
|
Active Directory (AD) domain, a trusted Kerberos (non-AD) realm or the
|
|
|
|
|
local machine (i.e. local account logins). The domain name that is
|
|
|
|
|
used for selecting the domain would be the domain that is passed into
|
|
|
|
|
the NPLogonNotify function of the network provider. (see registry.txt
|
|
|
|
|
for details)
|
|
|
|
|
|
2004-07-15 18:26:35 +01:00
|
|
|
|
* Added a new registry value [HKCU\SOFTWARE\OpenAFS\Client]
|
|
|
|
|
"Authentication Cell" which may be used to specify a default
|
|
|
|
|
authentication cell for afscreds.exe which is different from
|
|
|
|
|
the default cell for the AFS Client Service daemon.
|
|
|
|
|
|
|
|
|
|
* Added a Logoff WinLogon Event Notification function to afslogon.dll.
|
|
|
|
|
afslogon.dll moved to %WINDIR%\System32\.
|
|
|
|
|
New registry entries added to register the dll for Winlogon events.
|
|
|
|
|
|
|
|
|
|
The logoff event will now force a call to ktc_ForgetAllTokens()
|
2004-07-21 16:05:59 +01:00
|
|
|
|
using the context of the user being logged off as long as the
|
|
|
|
|
user's profile is not loaded from within AFS. If the profile
|
|
|
|
|
was loaded from AFS we can't release the tokens since the Logoff
|
|
|
|
|
event is triggered prior to the profile being written back to
|
2004-08-10 06:07:58 +01:00
|
|
|
|
the its source location. This is now performed in an XP SP2
|
|
|
|
|
safe manner.
|
2004-07-15 18:26:35 +01:00
|
|
|
|
|
|
|
|
|
* Windows XP SP2 Internet Connection Firewall interoperability
|
|
|
|
|
has been added.
|
|
|
|
|
|
|
|
|
|
* The %WINDIR%\afsdsbmt.ini contains four sections:
|
|
|
|
|
Submounts, Drive Mappings, Active Maps and CSC Policies.
|
|
|
|
|
The Submounts and CSC policies are now stored in the registry under
|
|
|
|
|
[HKLM\SOFTWARE\OpenAFS\Client\Submounts]
|
|
|
|
|
[HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy]
|
|
|
|
|
The Drive Mappings and Active Maps are stored in the registry under
|
|
|
|
|
[HKCU\SOFTWARE\OpenAFS\Client\Mappings]
|
|
|
|
|
[HKCU\SOFTWARE\OpenAFS\Client\Active Maps]
|
|
|
|
|
|
|
|
|
|
There is no automatic migration of this data as it would be impossible
|
|
|
|
|
to consistently migrate data to user profiles which may not be active
|
|
|
|
|
when the machine is updated.
|
|
|
|
|
|
|
|
|
|
* The %WINDIR%\afs_freelance.ini contains lists of mountpoints for the
|
|
|
|
|
fake root.afs volume. For the same reasons as for the cellservdb file,
|
|
|
|
|
this information should not be in %WINDIR%. This information is now
|
|
|
|
|
kept under the registry key
|
|
|
|
|
[HKLM\SOFTWARE\OpenAFS\Client\Freelance]
|
|
|
|
|
|
|
|
|
|
The data from the afs_freelance.ini file will be automatically
|
|
|
|
|
migrated to the registry on first execution of afsd_service.exe
|
|
|
|
|
|
|
|
|
|
* Keeping the CellServDB file in the location %WINDIR%\afsdcell.ini is
|
|
|
|
|
troublesome for several reasons. One, it is confusing for those who
|
|
|
|
|
expect the file to be named "CellServDB" instead of "afsdcell.ini".
|
|
|
|
|
Two, this file is not a Windows Profile formatted file. Three,
|
|
|
|
|
applications should not be reading or writing to %WINDIR%. It causes
|
|
|
|
|
problems for Windows Terminal Server.
|
|
|
|
|
|
|
|
|
|
The new location of CellServDB will be the OpenAFS Client install
|
|
|
|
|
directory which is by default C:\Program Files\OpenAFS\Client and can
|
|
|
|
|
be determined by querying the registry for
|
|
|
|
|
[HKLM\SOFTWARE\TransarcCorporation\AFS Client\CurrentVersion]PathName
|
|
|
|
|
|
|
|
|
|
The existing afsdcell.ini will be migrated by the NSIS installer.
|
|
|
|
|
The Wix installer must still be updated to do the same.
|
|
|
|
|
|
|
|
|
|
* Change NSIS installer to use DNS by default; to remove Integrated Logon
|
|
|
|
|
High Security mode; and to add Terminal Services compatibility registry
|
|
|
|
|
entries to allow the OpenAFS tools to find the afsdcell.ini and other
|
|
|
|
|
configuration files in %WINDIR%.
|
|
|
|
|
|
|
|
|
|
* Add support for authenticated SMB connections. This will remove
|
|
|
|
|
the need for high security mode in most situations. Both NTLM
|
|
|
|
|
and Extended Security (GSS SPNEGO) modes are supported. Effectively,
|
|
|
|
|
only NTLM can be used even though Kerberos is now supported. The
|
|
|
|
|
reason is that it is not possible to construct a service principal
|
|
|
|
|
which is unique to each individual machine.
|
|
|
|
|
|
|
|
|
|
SMB Extended Auth does not work on XP SP2 unless one of two registry
|
|
|
|
|
modifications are made:
|
|
|
|
|
|
|
|
|
|
(1) To disable the check for matching host names on loopback connections
|
|
|
|
|
set this key. This does not require a reboot:
|
|
|
|
|
|
|
|
|
|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
|
|
|
|
|
"DisableLoopbackCheck"=dword:00000001
|
|
|
|
|
|
|
|
|
|
(2) To add the AFS SMB/CIFS service name to an approved list. This
|
|
|
|
|
does require a reboot:
|
|
|
|
|
|
|
|
|
|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0]
|
|
|
|
|
"BackConnectionHostNames"=multi-sz "AFS" "MACHINE-AFS"
|
|
|
|
|
|
|
|
|
|
afsd_service.exe will automatically add the current Netbios Name
|
|
|
|
|
to the BackConnectionHostNames list and then temporarily disable
|
|
|
|
|
the loopback check for one cycle of startup/shutdown of the service.
|
|
|
|
|
We assume most folks do not start/stop without a reboot so this
|
|
|
|
|
will be adequate in most cases.
|
|
|
|
|
|
|
|
|
|
* Fix security hole in afslogon.dll which allowed passwords to be
|
|
|
|
|
sent in clear text to the KDC in a misformed principal name.
|
|
|
|
|
|
|
|
|
|
* Fix cm_GetCell() to properly handle expired dns entries
|
|
|
|
|
without crashing
|
|
|
|
|
|
|
|
|
|
* If Freelance mode is active and the afs_freelance.ini
|
|
|
|
|
file does not exist, do not create an empty file.
|
|
|
|
|
Instead create a file containing ro and rw mountpoints
|
|
|
|
|
to the default cell using the standard conventions.
|
|
|
|
|
|
|
|
|
|
* Modify the Freelance support to handle the ability
|
|
|
|
|
to create rw mount points in the fake root.afs volume.
|
|
|
|
|
|
|
|
|
|
* Changed the RPC mechanism used for token setting from
|
|
|
|
|
named pipes to local. Use of named pipes can be restored
|
|
|
|
|
by setting the environment variable AFS_RPC_PROTSEQ to
|
|
|
|
|
"ncacn_np".
|
|
|
|
|
|
|
|
|
|
Named pipes were required when a Windows 9x system was
|
|
|
|
|
using a NT system in gateway mode which is incompatible
|
|
|
|
|
with our use of local loopback adapters.
|
|
|
|
|
|
|
|
|
|
* In afscreds.exe, if a username of the form user@REALM is
|
|
|
|
|
specified and no password is specified, do not perform a
|
|
|
|
|
kinit operation. Only perform the aklog functionality.
|
|
|
|
|
|
|
|
|
|
* Add a new registry value which allows the number of processors
|
|
|
|
|
on which afsd_service.exe executes to be restricted. Valid
|
|
|
|
|
values are 1..numOfProcessors
|
|
|
|
|
|
|
|
|
|
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAfsDaemon\Parameters
|
|
|
|
|
(DWORD) MaxCPUs
|
|
|
|
|
|
2004-06-05 20:59:41 +01:00
|
|
|
|
Since 1.3.64:
|
2004-06-23 22:22:42 +01:00
|
|
|
|
* A second MSI based installer option is now available.
|
|
|
|
|
|
|
|
|
|
* Fixed Kerberos 5 kinit functionality in afscreds.exe to properly
|
|
|
|
|
request tickets for user/instance@REALM instead of just user@REALM
|
|
|
|
|
|
|
|
|
|
* Modify the Power Management Notify routine to wait for the Hard Dead
|
|
|
|
|
timeout period instead of a fixed 19 seconds. With the longer timeout
|
|
|
|
|
periods Hibernation and Standby could never succeed when network
|
|
|
|
|
connectivity is not available.
|
|
|
|
|
|
|
|
|
|
* The following fs.exe commands are now restricted to Administrator:
|
|
|
|
|
- checkservers with a non-zero timer value
|
|
|
|
|
- setcachesize
|
|
|
|
|
- newcell
|
|
|
|
|
- sysname with a new sysname list
|
|
|
|
|
- exportafs
|
|
|
|
|
- setcell
|
|
|
|
|
- setserverprefs
|
|
|
|
|
- storebehind
|
|
|
|
|
- setcrypt
|
|
|
|
|
- cscpolicy
|
|
|
|
|
- trace
|
|
|
|
|
|
|
|
|
|
setting the default sysname for a machine should be done via the
|
|
|
|
|
registry and not via "fs sysname".
|
|
|
|
|
|
|
|
|
|
* NSIS installer adds options to install Debugging Symbols
|
|
|
|
|
and the Microsoft Loopback Adapter; the user is now also
|
|
|
|
|
given the ability to select the afscreds.exe startup options.
|
|
|
|
|
|
|
|
|
|
* Build system modified to generate symbols for FREE (aka RELEASE)
|
|
|
|
|
builds as well as CHECKED (aka DEBUG) builds
|
|
|
|
|
|
|
|
|
|
* Sites which have a volume ID of 0x20000001 assigned to their
|
2004-07-27 01:24:09 +01:00
|
|
|
|
root.cell volumes have been experiencing problems with accessing
|
|
|
|
|
the root.cell volume of their cell when Freelance mode has been
|
2004-06-23 22:22:42 +01:00
|
|
|
|
active. This was because 0x20000001 was assigned to the fake
|
|
|
|
|
root.afs volume created by freelance. The fake volume id is
|
|
|
|
|
now set to 0x00000001 to prevent conflicts.
|
|
|
|
|
|
2004-06-05 20:59:41 +01:00
|
|
|
|
* The timeout logic in the AFS Client Service has been wrong
|
|
|
|
|
for sometime. It is based on two different assumptions.
|
|
|
|
|
First, the SMB client timeout is a fix value as was the case
|
|
|
|
|
with OS/2 Lan Manager. This assumption is incorrect. The
|
|
|
|
|
SMB timeout in Windows is a dynamic value computed based upon
|
|
|
|
|
a fixed minimum timeout to which is added time based upon the
|
|
|
|
|
size of the request and the performance characteristics of
|
|
|
|
|
the connection. Second, it is the responsibility of the
|
|
|
|
|
SMB Server to enforce the timeout requirements of the client.
|
|
|
|
|
This is untrue. The SMB Server cannot be expected to know
|
|
|
|
|
the requirements of the client. More importantly, if the
|
|
|
|
|
SMB server uses the SMB client timeout as a value to restrict
|
|
|
|
|
its behavior as an RX client, the performance characteristics
|
|
|
|
|
of the local SMB session would be used to prematurely terminate
|
|
|
|
|
WAN connections with significantly different performance
|
|
|
|
|
characteristics.
|
|
|
|
|
|
|
|
|
|
The timeout logic has therefore been modified in the following
|
|
|
|
|
manner:
|
|
|
|
|
. the Lan Manager Workstation (SMB) Session Timeout is used only
|
|
|
|
|
as a basis for configuring the Connection Dead Timeout
|
|
|
|
|
and Hard Dead Timeout values. The Connection Dead Timeout
|
|
|
|
|
must be at least 15 seconds longer than the SMB Timeout
|
|
|
|
|
and the Hard Dead Timeout must be at least double the
|
|
|
|
|
Connection Dead Timeout.
|
|
|
|
|
. New registry entries have been added to allow the Connection
|
|
|
|
|
Dead Timeout and Hard Dead Timeout values independent of the
|
|
|
|
|
Lan Manager Workstation Session Timeout
|
|
|
|
|
. The test to enforce the SMB Client Timeout has been removed.
|
|
|
|
|
|
|
|
|
|
One of the side-effects of removing the enforcement of the SMB
|
|
|
|
|
Client Timeout is that regardless of whether or not the SMB client
|
|
|
|
|
is available to receive the response (and how would the SMB server
|
|
|
|
|
know) the RX protocol response can be used to update the AFS
|
|
|
|
|
Client Service state for ready access by future SMB client
|
|
|
|
|
requests.
|
|
|
|
|
|
|
|
|
|
This should be the end of the "Server paused or restarting messages"
|
|
|
|
|
|
|
|
|
|
* Add support for arbitrary UNC paths to the pioctl() support.
|
|
|
|
|
This enables the fs commands as well as the AFS Shell Extension
|
|
|
|
|
to work correctly when UNC paths are being used.
|
|
|
|
|
|
|
|
|
|
* Fix afscreds.exe (by updating afskfw.lib) to search for cells via
|
|
|
|
|
DNS if the cell configuration cannot be determined via CellServDB
|
|
|
|
|
|
|
|
|
|
* Add debug info to test whether CM_BUF_WAITING or CM_SCACHE_WAITING
|
|
|
|
|
are ever set more than once at a time
|
|
|
|
|
|
|
|
|
|
* Fix the management of lists of cm_cell_t structures when using
|
|
|
|
|
DNS to lookup cell information. The previous code would fail to
|
|
|
|
|
reuse the same cellID for a cell if DNS was used more than once
|
|
|
|
|
for a given cell name. When the ttl expired, a single cm_cell_t
|
|
|
|
|
could be inserted into the cm_allCellsp list more than once
|
|
|
|
|
producing a loop. In addition, the vlServerp list belonging to
|
|
|
|
|
the cell was not freed resulting in improper refCounting of the
|
|
|
|
|
servers.
|
|
|
|
|
|
|
|
|
|
* Add DNS support to cm_IoctlNewCell() which previous only examined
|
|
|
|
|
the CellServDB file
|
|
|
|
|
|
|
|
|
|
* Add cm_FreeServer() function and call it from cm_FreeServerList()
|
|
|
|
|
to properly garbage collect cm_server_t objects
|
|
|
|
|
|
|
|
|
|
* Add numVCs variable to smb.c to track the number of smb_vc_t
|
|
|
|
|
objects created and use it to initialize the vcID field which
|
|
|
|
|
previously was set to 0 in all objects resulting in FindByID
|
|
|
|
|
collisions.
|
|
|
|
|
|
|
|
|
|
* Fixed DNS lookups to work consistently throughout the OpenAFS
|
|
|
|
|
product instead of just from within the afsd_service.exe
|
|
|
|
|
|
|
|
|
|
* Added a runtime check to ensure that AFS Client Service SMB
|
|
|
|
|
Server is accepting connections before attempting to mount
|
|
|
|
|
global drives.
|
|
|
|
|
|
|
|
|
|
* Read IP addresses for volume servers out of the CellServDB
|
|
|
|
|
file if gethostbyname() on the hostname fails.
|
|
|
|
|
|
|
|
|
|
* Fix getcellconfig() to populate both the Hostnames as well
|
|
|
|
|
as IP addresses when loading cell data via DNS
|
|
|
|
|
|
|
|
|
|
* Increase the Connection Dead Time to 50 from 20 seconds
|
|
|
|
|
Increase the Hard Dead Time to 120 from 40 seconds
|
|
|
|
|
(matches the Unix values)
|
|
|
|
|
|
|
|
|
|
* Fixed an assertion validating the number of allocated NCBs
|
|
|
|
|
|
|
|
|
|
* Fixed the build environment to consistently build for
|
|
|
|
|
Windows 2000 and above. (APPVER = 5.0)
|
|
|
|
|
|
|
|
|
|
* Fixed rx_debug to properly validate the receipt in incoming
|
|
|
|
|
data with select() and recvfrom(). Do not copy data out of
|
|
|
|
|
the socket buffer unless success is indicated.
|
|
|
|
|
|
2004-05-11 22:08:57 +01:00
|
|
|
|
Since 1.3.63:
|
|
|
|
|
* afsd_service.exe will now display a message box to the
|
|
|
|
|
desktop when it terminates due to an IP Address Change.
|
|
|
|
|
|
|
|
|
|
* installer no longer deletes AFS Server configuration data
|
|
|
|
|
on uninstall
|
|
|
|
|
|
|
|
|
|
* installer generates a warning dialog if the RPC service
|
|
|
|
|
is not properly configured
|
|
|
|
|
|
|
|
|
|
* installer compressed with lzma instead of bzip2
|
|
|
|
|
|
|
|
|
|
* afsd_service.exe shutdown crash solved once and for all
|
|
|
|
|
|
|
|
|
|
* reference counting of smb_vc_t data structures improved
|
|
|
|
|
|
|
|
|
|
* name space collision of smb_fid_t event objects corrected
|
|
|
|
|
|
|
|
|
|
* the output of "fs memdump" is now written to
|
|
|
|
|
%WINDIR%\TEMP\afsd_alloc.log
|
|
|
|
|
|
|
|
|
|
* the file TaAfsApp_1033.dll is now properly installed allowing
|
|
|
|
|
the User Manager to start
|
|
|
|
|
|
|
|
|
|
* a new algorithm is used for computing filename pattern matches
|
|
|
|
|
|
|
|
|
|
* afscreds.exe now accepts user names containing instance
|
|
|
|
|
fields.
|
|
|
|
|
|
|
|
|
|
* Fix the Directory Name Lookup Cache to be case-sensitive.
|
|
|
|
|
This is crucial in environments in which a Windows client
|
|
|
|
|
is accessing a directory with more than one filename that
|
|
|
|
|
differs only by case. If the directory contains "FOO"
|
|
|
|
|
and "Foo". You want "DEL Foo" to delete the correct one.
|
|
|
|
|
We still have a problem in that "DEL foo" will delete a
|
|
|
|
|
random filename. This will be addressed in a future release.
|
|
|
|
|
|
|
|
|
|
* Fix afscreds.exe -M option (renewMaps) to work when High
|
|
|
|
|
Security mode is off. Also, remember to disable the ActiveMap
|
|
|
|
|
flag in afsdsbmt.ini when a drive mapping is removed.
|
|
|
|
|
|
|
|
|
|
* Updates to NSIS installer script. AFS Server configuration
|
|
|
|
|
data will not be destroyed on un-install or re-install.
|
|
|
|
|
Use a better compression algorithm.
|
|
|
|
|
|
|
|
|
|
* afslogon.dll now uses KFW to obtain tokens when available
|
|
|
|
|
|
|
|
|
|
* afslogon.dll when given an all uppercase username will
|
|
|
|
|
attempt to authenticate with both the uppercase name
|
|
|
|
|
and an all lowercase variation
|
|
|
|
|
|
|
|
|
|
* DST modification removed. The fix appears to make things
|
|
|
|
|
worse after a reboot of the machine.
|
|
|
|
|
|
|
|
|
|
* fs.exe: added "cscpolicy" which is used to
|
|
|
|
|
change client side caching policy for AFS shares
|
|
|
|
|
|
|
|
|
|
Usage: fs cscpolicy [-share <AFS share>] [-manual] [-programs]
|
|
|
|
|
[-documents] [-disable] [-help]
|
|
|
|
|
|
|
|
|
|
* Several uninitialized variables have been initialized
|
|
|
|
|
|
|
|
|
|
* It is now possible to obtain tokens using cross realm
|
|
|
|
|
Kerberos within afscreds.exe:
|
|
|
|
|
cell: dementia.org
|
|
|
|
|
user: jaltman@ATHENA.MIT.EDU
|
|
|
|
|
password: xxxxxxxx
|
|
|
|
|
Will obtain a cross realm ticket for jaltman/DEMENTIA.ORG@ATHENA.MIT.EDU
|
|
|
|
|
will will in turn be used to obtain afs@DEMENTIA.ORG.
|
|
|
|
|
The resulting token will be stored with the display name
|
|
|
|
|
jaltman@ATHENA.MIT.EDU@dementia.org
|
|
|
|
|
|
|
|
|
|
* aklog.exe has been added to the client
|
|
|
|
|
|
|
|
|
|
Usage: aklog [-d] [[-cell | -c] cell [-k krb_realm]]
|
|
|
|
|
[[-p | -path] pathname]
|
|
|
|
|
[-noprdb] [-force]
|
|
|
|
|
[-5 | -4]
|
|
|
|
|
|
|
|
|
|
-d gives debugging information.
|
|
|
|
|
krb_realm is the kerberos realm of a cell.
|
|
|
|
|
pathname is the name of a directory to which you wish to authenticate.
|
|
|
|
|
-noprdb means don't try to determine AFS ID.
|
|
|
|
|
-5 or -4 selects whether to use Kerberos V or Kerberos IV.
|
|
|
|
|
(default is Kerberos V)
|
|
|
|
|
No commandline arguments means authenticate to the local cell.
|
|
|
|
|
|
2004-04-05 08:32:57 +01:00
|
|
|
|
Since 1.3.62:
|
|
|
|
|
* All of the resource files have been restructured to adhere to
|
|
|
|
|
a set of rules IBM implemented for loading string resources.
|
|
|
|
|
These rules had either been forgotten or were not discovered
|
|
|
|
|
by folks working on the OpenAFS sources. The end result was
|
|
|
|
|
memory corruption. This is primary item which was preventing
|
|
|
|
|
the AFS Server from working.
|
|
|
|
|
|
|
|
|
|
* Increased the size of the maximum ticket size stored in a token
|
|
|
|
|
from 344 bytes to 12,000. Increased the buffers used to convey
|
|
|
|
|
messages between the pioctl() caller and the SMB Server from
|
|
|
|
|
1000 bytes to 12,512. The code appeared to have been writing
|
|
|
|
|
above the top of the stack by quite a few number of bytes.
|
|
|
|
|
(The increased ticket size is necessary for the next item.)
|
|
|
|
|
|
|
|
|
|
* When obtaining AFS Tokens via KFW, krb524 is no longer required.
|
|
|
|
|
Instead the raw Kerberos 5 ticket is used in its entirety. This
|
|
|
|
|
is extremely important as it allows us to use pure Kerberos 5 KDCs
|
|
|
|
|
as the source of the AFS authentication. The use of up to 12,000 byte
|
|
|
|
|
tickets will allow tickets produced by all versions of Microsoft
|
|
|
|
|
Active Directory to be used.
|
|
|
|
|
- create a user account.
|
|
|
|
|
- designate it DES only
|
|
|
|
|
- disable pre-auth
|
|
|
|
|
- specify its UPN to be "afs@realm"
|
|
|
|
|
- assign a SPN of "afs/cellname" to the UPN with setspn.exe
|
|
|
|
|
|
|
|
|
|
* Do not enforce the funky 8dot3 pattern matching rule that the first "."
|
|
|
|
|
is special when using long file names. (you must use "*.*" and not "*")
|
|
|
|
|
Instead only enforce it when performing 8dot3 searches.
|
|
|
|
|
|
|
|
|
|
* Fixed the DST problem with creation times being set one hour ahead
|
|
|
|
|
|
|
|
|
|
* Fixed the problem when using \\afs\cell-alias. For example,
|
|
|
|
|
\\afs\uncc instead of \\afs\uncc.edu. Do not a new cell struct
|
|
|
|
|
for the alias name; instead simply expand the name. One of the
|
|
|
|
|
symptoms of this problem was a loss of acquired tokens.
|
|
|
|
|
|
|
|
|
|
* Fixed the AFS Shell Extension. The Symbolic Link menu was empty
|
|
|
|
|
of strings. (Only English strings provided.)
|
|
|
|
|
|
|
|
|
|
* Fixed the installer to properly replace in use files.
|
|
|
|
|
|
|
|
|
|
* Fixed the build system to cleanup generated component version files
|
|
|
|
|
|
|
|
|
|
* The release build compiled with MSVC 6.0 compiler to avoid the
|
|
|
|
|
afsd_service.exe shutdown crash. This does not solve the problem
|
|
|
|
|
but simply avoids it for the time being.
|
|
|
|
|
|
|
|
|
|
Since 1.3.61:
|
|
|
|
|
|
|
|
|
|
* fix afslogon.dll to not corrupt memory when High Security mode
|
|
|
|
|
is not used.
|
|
|
|
|
|
|
|
|
|
* fix afsd_service.exe to not attempt to restore the stack when
|
|
|
|
|
an exception occurs. (not safe in multi-threaded programs)
|
|
|
|
|
|
|
|
|
|
* fix uninstaller to properly remove the CRT and MFC DLLs
|
|
|
|
|
|
|
|
|
|
* remove a Message Box from afscreds.exe when getcellconfig()
|
|
|
|
|
fails on a kerberos realm which is not a cell
|
|
|
|
|
|
|
|
|
|
The following is a list of changes to the OpenAFS for Window client
|
|
|
|
|
since 1.3.60.
|
|
|
|
|
|
|
|
|
|
* "fs setserverprefs" will leave afsd service deadlocked
|
|
|
|
|
|
|
|
|
|
* "vos listaddrs" will core dump
|
|
|
|
|
|
|
|
|
|
* installer sets the appropriate keys to support Integrated Logon
|
|
|
|
|
|
|
|
|
|
* installer disables the "Find Lana by Name" functionality as it
|
|
|
|
|
was causing headaches for many users
|
|
|
|
|
|
|
|
|
|
* fix the intermittent crash of the power management thread when
|
|
|
|
|
shutting down the AFS Client Service
|
|
|
|
|
|
|
|
|
|
* optimizes the obtain drive mount list functionality which is
|
|
|
|
|
executed every time the mount tab in afscreds.exe and afs_config.exe
|
|
|
|
|
are refreshed. (this happens a lot)
|
|
|
|
|
|
|
|
|
|
* fix the service shutdown logic. add the STOP_PENDING state
|
|
|
|
|
and do not accept additional service events after we declare
|
|
|
|
|
ourselves STOPPED.
|
|
|
|
|
|
|
|
|
|
The following is a list of changes to the OpenAFS for Window client
|
|
|
|
|
since 1.2.10.
|
|
|
|
|
|
|
|
|
|
* flexelint was run against the source tree and hundreds (perhaps
|
|
|
|
|
thousands) of corrections were applied to ensure prototypes
|
|
|
|
|
were in use; types were used consistently; variables were
|
|
|
|
|
initialized; unused variables were removed; etc.
|
|
|
|
|
|
|
|
|
|
* A wide variety of instrumentation was added including the
|
|
|
|
|
ability to produce a stack trace from within afsd_service.exe
|
|
|
|
|
when it crashes.
|
|
|
|
|
|
|
|
|
|
* Dynamic configuration of the RDRtimeout value based upon the
|
|
|
|
|
LanMan Workstation Session Timeout
|
|
|
|
|
|
|
|
|
|
* The mount root no longer needs to be called "/afs". This
|
|
|
|
|
is now set by a registry value "MountRoot" within the key
|
|
|
|
|
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
|
|
|
|
|
|
|
|
|
|
* The cell list is now only read out of afsdcell.ini when the
|
|
|
|
|
file changes instead of each time a cell is resolved.
|
|
|
|
|
|
|
|
|
|
* Thread synchronization was added to cm_server.c and ktc_nt.c
|
|
|
|
|
|
|
|
|
|
* All calls to GlobalAlloc()/GlobalFree() were replaced with
|
|
|
|
|
calloc()/free(). The Global functions were needed on Windows 3.x
|
|
|
|
|
but have caused a variety of problems on the Win32 platforms.
|
|
|
|
|
Avoiding them is highly recommended by several Microsoft
|
|
|
|
|
Knowledgebase articles
|
|
|
|
|
|
|
|
|
|
* Support for Symbolic Links added to the AFS Shell Extension
|
|
|
|
|
|
|
|
|
|
* Added a registry value "OverlayEnabled" to determine if
|
|
|
|
|
Shell Extension Overlays should be enabled.
|
|
|
|
|
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
|
|
|
|
|
|
|
|
|
|
* New Build system to support VC6, VC.NET, VC.NET2003 compilers and
|
|
|
|
|
separate trees for checked and free builds. Build system supports
|
|
|
|
|
a custom directory src\WINNT\extra which can be used as a grafting
|
|
|
|
|
location of organization specific additions to the build tree.
|
|
|
|
|
|
|
|
|
|
* New installer built using NSIS 2.0.
|
|
|
|
|
|
|
|
|
|
* Named all kernel objects in order to allow them to be monitored
|
|
|
|
|
with tools such as SysInternals' ProcExp.exe.
|
|
|
|
|
|
|
|
|
|
* Introduced new EventLog framework for AFSD
|
|
|
|
|
|
|
|
|
|
* Introduced Power Management interface to AFSD for Standby and
|
|
|
|
|
Hibernate modes to allow cache to be flushed prior to network
|
|
|
|
|
disconnect
|
|
|
|
|
|
|
|
|
|
* Utilize Win32 DNSQuery API instead of internal routines. This
|
|
|
|
|
allows DNS SRV queries to be sent to all current domain name
|
|
|
|
|
servers. Not just one specified in an INI file. DNS is now
|
|
|
|
|
always activated.
|
|
|
|
|
|
|
|
|
|
* "NetbiosName" registry value may be used to specify a fixed
|
|
|
|
|
Netbios Name such as "AFS" to be used instead of "HOSTNAME-AFS"
|
|
|
|
|
when the loopback adapter is in use. If you need to use the
|
|
|
|
|
old notation with a loopback adapter installed specify a registry
|
|
|
|
|
entry of
|
|
|
|
|
|
|
|
|
|
"NetbiosName" REG_EXPAND_SZ = "%COMPUTERNAME%-AFS"
|
|
|
|
|
|
|
|
|
|
* Refactor all modules which depend on LAN Adapter and NetbiosName
|
|
|
|
|
determination in a new library: lanahelper.lib. This allows for
|
|
|
|
|
consistent behavior throughout the product.
|
|
|
|
|
|
|
|
|
|
* Move the afsd.log and afsd_init.log files to the directory specified
|
|
|
|
|
by the "TEMP" environment variable. This is usually %WINDIR%\TEMP
|
|
|
|
|
for services. Added the Date to the log entries.
|
|
|
|
|
|
|
|
|
|
* New registry value "RxMaxMTU" used to limit the size of the RX
|
|
|
|
|
packets sent by the AFS Client Service to the Server. In order
|
|
|
|
|
to enable OpenAFS to work across the Cisco IPSec VPN the packet
|
|
|
|
|
size must be restricted to 1264 or smaller. The latest NSIS
|
|
|
|
|
installer sets a value of 1260 by default.
|
|
|
|
|
|
|
|
|
|
* New registry value "RxNoJumbo" to disable the use of Jumbo Rx
|
|
|
|
|
packets. This is not needed in order to work across the Cisco
|
|
|
|
|
VPN but might be needed for other network environments. This
|
|
|
|
|
value is not set by the NSIS installer.
|
|
|
|
|
|
|
|
|
|
* New registry value "HideDotFiles" is used to apply the Hidden
|
|
|
|
|
attribute to files whose names begin with a '.'. This value
|
|
|
|
|
is set by the NSIS installer.
|
|
|
|
|
|
|
|
|
|
* New registry value "MaxMpxRequests" allows the maximum number
|
|
|
|
|
of multiplexed sessions to be configured at run time. This
|
|
|
|
|
value is not set by the NSIS installer. The default value is
|
|
|
|
|
50.
|
|
|
|
|
|
|
|
|
|
* New registry value "MaxVCPerServer" allows the maxmimum number
|
|
|
|
|
of VCs per server to be configured at run time. This value is
|
|
|
|
|
not set by the NSIS installer. The default value is 100.
|
|
|
|
|
|
|
|
|
|
* New registry value "AllSubmount" allows the "all" submount to
|
|
|
|
|
be disabled by setting its value to 0x00.
|
|
|
|
|
|
|
|
|
|
* Allow cells names to be valid mount points
|
|
|
|
|
\\<netbiosName>\<cellname>
|
|
|
|
|
|
|
|
|
|
* Store the active state of drive mappings in order for afscreds.exe
|
|
|
|
|
to restore them upon startup
|
|
|
|
|
|
|
|
|
|
* Add exception handling to generate a Stack Trace to the afsd_init.log
|
|
|
|
|
file if one happens to occur.
|
|
|
|
|
|
|
|
|
|
* Add lots of logging to help detect the cause of invalid SMB packets
|
|
|
|
|
|
|
|
|
|
* Enable Kerberos for Windows to be used to obtain AFS Tokens via
|
|
|
|
|
conversion of Kerberos 5 "afs" service tickets. Supports auto-
|
|
|
|
|
renewal of expiring tokens as long as afscreds.exe is running.
|
|
|
|
|
|
|
|
|
|
* New afscreds.exe command line options:
|
|
|
|
|
-A = autoinit
|
|
|
|
|
-M = renew drive maps
|
|
|
|
|
-N = ip address change detection
|
|
|
|
|
-Z = unmap drives
|
|
|
|
|
|
|
|
|
|
* New registry value "EnableKFW" in {HKCU,HKLM}SOFTWARE\OpenAFS\Client
|
|
|
|
|
determines whether or not MIT Kerberos for Windows should be used
|
|
|
|
|
to obtain tokens via Kerberos 5 tickets.
|
|
|
|
|
|
|
|
|
|
* New registry value "AfscredsShortcutParams" in
|
|
|
|
|
{HKCU,HKLM}SOFTWARE\OpenAFS\Client
|
|
|
|
|
determines the command line parameters to be specified when "fixing"
|
|
|
|
|
the AFS Shortcut in the user's startup folder.
|
|
|
|
|
|
|
|
|
|
* The "ShowTrayIcon" registry value has been moved from
|
|
|
|
|
HKLM\Software\TransarcCorporation\AFS Client\AfsCreds to
|
|
|
|
|
{HKCU,HKLM}SOFTWARE\OpenAFS\Client
|
|
|
|
|
|
|
|
|
|
* The <cell name> registry values used to store the token expiration
|
|
|
|
|
reminders have been moved from
|
|
|
|
|
HKLM\Software\TransarcCorporation\AFS Client\AfsCreds to
|
|
|
|
|
{HKCU,HKLM}SOFTWARE\OpenAFS\Client\Reminders
|
|
|
|
|
|
|
|
|
|
* Obtain the Logon User Name from the Explorer key when available
|
|
|
|
|
|
|
|
|
|
* new text document doc\txt\winnotes\registry.txt lists all registry
|
|
|
|
|
values used by OpenAFS (excluding the AFS Server)
|
|
|
|
|
|
|
|
|
|
* BUG: rx_securityClass objects were not properly reference
|
|
|
|
|
counted and were never freed.
|
|
|
|
|
|
|
|
|
|
* BUG: reduce the number of conditions under which CM_ERROR_TIMEOUT
|
|
|
|
|
would be generated. The existence of a server does not imply
|
|
|
|
|
that it is not down. If all of the servers for a cell are down
|
|
|
|
|
return CM_ERROR_NOSUCHVOLUME instead. This prevents the Explorer
|
|
|
|
|
Shell from hanging.
|
|
|
|
|
|
|
|
|
|
* BUG: the directory name lookup cache failed to free the entries
|
|
|
|
|
in the cache when the name cache entries cycled. The entries
|
|
|
|
|
in the cache would become dereferenced without being freed.
|
|
|
|
|
|
|
|
|
|
* BUG: fs setserverprefs could be executed without Administrator
|
|
|
|
|
privileges
|
|
|
|
|
|
|
|
|
|
* BUG: the number of allocated NCB objects (100) exceeded the number
|
|
|
|
|
which could actually be waited upon by the kernel (64). Any objects
|
|
|
|
|
which were utilized above the limit could never have event completions
|
|
|
|
|
detected.
|
|
|
|
|
|
|
|
|
|
* BUG: smb_username_t objects were not being reference counted and
|
|
|
|
|
were not properly freed.
|
|
|
|
|
|
|
|
|
|
* BUG: smb_tid_t objects could under unusual circumstances be freed
|
|
|
|
|
before they were no longer referenced.
|
|
|
|
|
|
|
|
|
|
* BUG: smb_fid_t object pointer were frequently used even when
|
|
|
|
|
their value could be NULL. They were not properly released and
|
|
|
|
|
therefore they were never freed.
|
|
|
|
|
|
|
|
|
|
* BUG: smb_packet_t data structures were not completely initialized
|
|
|
|
|
upon creation
|
|
|
|
|
|
|
|
|
|
* BUG: when Rx produces a CM_ERROR_NOIPC error do not return "Access
|
|
|
|
|
Denied" because that causes the Explorer Shell to try again until
|
|
|
|
|
access is obtained. Instead return "Remote Resources" which allows
|
|
|
|
|
the shell to move on and treat the error as transient.
|
|
|
|
|
|
|
|
|
|
* BUG: when initializing the NCBreturns structure, separate Event objects
|
|
|
|
|
were created for each NCB although a single Event object was supposed
|
|
|
|
|
to be shared by all.
|
|
|
|
|
|
|
|
|
|
* BUG: smb_dirSearch_t objects were not being properly referenced counted
|
|
|
|
|
or freed.
|
|
|
|
|
|
|
|
|
|
* BUG: smb_tran2Packet_t objects were not being properly referenced
|
|
|
|
|
counted or freed.
|
|
|
|
|
|
|
|
|
|
* BUG: directory path creation did not handle the case of multiple
|
|
|
|
|
directories requiring creation in one attempt
|
|
|
|
|
|
|
|
|
|
* BUG: SMB requests which required an Extended Response were ignored.
|
|
|
|
|
This prevented some files from being written to AFS volumes.
|
|
|
|
|
|
|
|
|
|
* BUG: character strings were being freed even after they were
|
|
|
|
|
inserted into in use data structures
|
|
|
|
|
|
|
|
|
|
* BUG: inconsistent usernames were used when High Security mode was
|
|
|
|
|
enabled. (there is still much to do in this area)
|
|
|
|
|
|
|
|
|
|
* BUG: pioctl() calls which require out of band RPC operations were
|
|
|
|
|
susceptible to race conditions when performed by multiple processes
|
|
|
|
|
|
|
|
|
|
* BUG: memory allocation and deallocation crossed instances of the
|
|
|
|
|
C Runtime Library producing memory leakage and corruption in
|
|
|
|
|
afscreds and the client configurator.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|