Install symlinks for the *.krb versions of klog, pagsh, and tokens to the
non-krb versions and add information about the *.krb versions to the
non-krb man pages.
Note in CellServDB man page that it's also used to populate root.afs for
a -dynroot client. Also document the dynamic lookup of database servers
with -afsdb and provide some more information about when CellServDB has to
contain the cell and when it doesn't.
Mark the backup server as optional, and indicate that the authentication
server is deprecated and CellServDB isn't required for authentication if
Kerberos v5 and aklog are used.
Add new man pages for fs rxstatproc, fs setcbaddr, and fs trace. Also
updates the links from fs to its subsidiary man pages and fixes the
fs rxstatpeer man page a bit to mirror fs rxstatproc.
Update XML to support autogeneration of Index files via XSLT
Add graphics referenced by generated HTML output
Add top level index.html used by the docs.openafs.org web site.
Add NTMakefile for AdminGuide, QuickStartUnix, and UserGuide
that utilizes XSLT to generate Windows HTMLHelp (.CHM) and
website appropriate HTML output.
In AdminGuide and UserGuide, relabel the documentation as OpenAFS
instead of IBM AFS. Create a new revision entry for the OpenAFS
docs.
fix the mmap anti-recursion protection to set and mask CPageWrite appropriately
and with the correct lock protection. this leaves us with an issue to handle
when the mmap'd file is larger (possibly considerably larger) than the
cache
The windows dcache module synchronizes store data operations in
order to prevent multiple simultaneous store data operations against
the same file at the same time by multiple threads. This is performed
using cm_SyncOp(CM_SCACHESYNC_STOREDATA_EXCL). However, cm_SetupStoreBIOD()
was being processed prior to the synchronization. As a result a dirty
buffer could be added to two BIOD lists resulting in the same buffer
contents being written to the file server twice.
This patch moves the cm_SetupStoreBIOD() into the synchronization region.
It also adds a new 'locked' parameter to cm_ReleaseBIOD() that indicates
whether or not the cm_scache_t object is locked when called. This
permits fewer lock state changes to be used in several cases.
Newer Linux kernels differentiate between the real and effective
credentials of a process, and prevent a process's credentials from being
change when the effective credentials have been set to a different value.
When AFS notices a keyring PAG exists but no group-based PAG does, the
attempt to rectify this, if done in a VFS call (which changes effective creds)
triggers this issue. We defer the change to the groups to avoid it.
Change the PathInAfs test to use VIOCGETFID instead of VIOC_GET_CELL_NAME.
VIOCGETFID permits a literal test of the specified object. This is needed
for testing the validity of a symlink to a msdfs: or non-existent path.
Otherwise, the AFS Shell Extension context menu will not be displayed.
Now that BackConnectionHostNames can be set each time the smb listener
threads are stopped and restarted, we need to make sure that we do not
clear the DisableLoopbackCheck value if it was set during the same
service session because BackConnectionHostName value changes only take
effect on a reboot.
vos hides "online", "offline", "delentry -noexecute", and "addsite -valid".
All of these are currently documented in the man pages without warning.
Reveal them.
Move configureBackConnectionHostNames() to smb_StartListeners()
so that when the NetbiosName changes while the service is running
the new values can be set.
Add configureExtendedSMBSessionTimeouts() which configures new
SMB functionality added in a Win2003 post-SP2 hot fix.
replace the VOLSTAT online test with the PATH_AVAILABILITY
online test. We do not care of the volume is offline on the file
server if the cache manager has current data to serve.
For CM_ERROR_BADSHARENAME return BAD_NETWORK_PATH instead
of BAD_NETWORK_NAME. The latter refers to the server name
and the former to the share name. Returning BAD_NETWORK_NAME
will causes the smb redirector to break its connection to \\AFS.
For CM_ERROR_ALLOFFLINE and CM_ERROR_ALLDOWN return PATH_NOT_FOUND
instead of BAD_NETWORK_PATH. We don't want the smb redirector
to tear down all open files just because some volume in the path
is inaccessible at the moment.
Any use of OutputDebugString() in production can result in serious
delays in the execution of the thread that issues the call. Remove
the last of the unprotected calls within afsd_service.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
LICENSE MIT
Change the default priority class for afsd_service.exe to High.
This matches the priority class assigned to other system processes
that generate requests to afsd_service.exe.
Permit the ..\TransarcAFSDaemon\Parameters "PriorityClass"
registry value to be used to change the default.
add xdr_free() and export it from afsrpc.dll. This permits applications
to free memory allocated within the xdr routines with the same run time
library memory management routines as was used to allocate it.
This is necessary on Windows to prevent memory corruption.
VL_GetAddrsU() is an example where a xdr array is allocated in the
library and must be freed by the application.
make use of xdr_free() to release memory allocated within afsrpc.dll.
this prevents crashes when the library is built with a different
runtime library version than the application.
fix signed/unsigned warnings in the same code snippet
For each SMB transation log the 'mid' field of the smb packet.
The 'mid' field can be used as a reference against the mrxsmb request
logging for debugging purposes.
the lock_fd field of DiskPartition[64] is a file descriptor.
On Windows this is a HANDLE and on *nix platforms an int.
OpenAFS uses the FD_t type to provide platform specific type
info for file descriptors. Use it for the lock_fd field and
the salvageLock in ObtainsSalvageLock().
Finally, the on the wire diskPartition[64] struct in volser/volint.xg
also contains a lock_fd field. This is an on the wire field and
must be left at a fixed width of 32-bits. Since a file descriptor
is not portable across machines we truncate the 64-bit HANDLE value
to fit in the 32-bit lock_fd field when necessary.
GetHandler() sets up a fdset and returns the max socket fd
which is used with select(). Windows ignores the numfd param
(first param) of select() and therefore computing the max fd
value is meaningless. We can avoid a number of casts by
not attempting to treat this value as osi_socket.