* 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.
Correct VC reference counting. (not that it is used for anything but
there is no reason the reference counting should be allowed to perpetually
increase)
Fix smb_FindFID. Do not do anything if fid == 0 without SMB_CREATE_FLAG
being set. Ensure that the event object name is unique by both the fid
and the vcid.
retry once if KRB5KRB_AP_ERR_BADADDR error is received while attempting
to obtain tickets. This is often produced when using transitive trusts.
a retry is then successful.
Make uafs work enough to support readdir()
====================
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.
====================
Make uafs work enough to support readdir()
(add casts for irix)
Correct the number of parameters to cm_Lookup calls in smb_ReceiveNTCreateX
and smb_ReceiveNTTranCreate. Also, do not allow directories to be created
if there are any files with names that differ only by case.
Miscellaneous reformatting.
Andrei provided a replacement for the pattern matching algorithm.
It has been applied but the old version is still there and can be
activated with a #define
The KFW_AFS_get_cred() routine does not use the "instance" parameter
so removed it.
from asanka@mit.edu
We now strictly prefer exact case matches. This does incur a
performance penalty because we can no longer be satisfied with an
inexact matches in cache (we make an extra trip to the server to make
sure there aren't any exact matches or pick up the extra match if
there is one). Of course, the name lookup cache is now case
sensitive.
* cm_dnlc.c : case sensitive name lookup cache
* cm_vnodeops.{c,h} : changes to cm_Lookup to first look for exact matches,
failing which, look for inexact matches. Also, only put a name in
the name lookup cache iff it exactly matches something on the server.
* smb.c : look for exact matches first.
* smb3.c : as above. Also T2 Search is used by the SMB client to resolve
filenames. Respond accordingly.
and:
* added new CM_ERROR_AMBIGUOUS_FILENAME mapped to ERROR_POTENTIAL_FILE_FOUND
This error is not yet used but is intended for situations in which an
AFS volume contains two files which differ only by case "Foo" and "FOO"
and the user says "DEL foo". Since we do not have an exact match by case
the existing code deletes one of the two files at random. In the future
we want to return an error.
ipaddrchg.[ch]: contains the ip address change monitor thread functionality
which was previously in afskfw.[ch] but which is now a
library in src/WINNT/afsd
creds.cpp: add support for principal name instances to the Obtain Tokens
function. Previously instances were not parsed.
main.cpp: Fix the -M (renewMaps) option to always call DoMapShare()
mounttab.cpp: When removing a drive mapping, remove the "active" entry
from the afsdsbmt.ini file.
Migrate KFW functionality from src/WINNT/client_creds/afskfw* into a
a new library to be shared by afslogon.dll, afscreds.exe
Add KFW support to afslogon.dll
====================
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.
====================
Migrate KFW functionality from src/WINNT/client_creds/afskfw* into a
a new library to be shared by afslogon.dll, afscreds.exe
Move IP Address Change Monitor into new source files.
Add smbname support to the KFW set token functionality in afscreds.exe