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
fun with a profiler: afs_RemoveVCB accounts for 20% of the total AFS
client CPU utilization, even under a moderate vcache turnover rate of
less than 10 new vcache's per second.
introduce a hash on the afs_cbr objects to speed this up. if you are
seeing your AFS client being CPU-bound, e.g. on your web server, you
may want to try this.
This implements:
1) Does not delete server config data on uninstall
2) If an upgrade or a re-install with existing server config data, will not auto-start the Server Configuration Wizard.
3) Checks for RPC keys on install. (I believe you only need one because not all of the keys are required for AFS to work. However, it might require TCP or UDP based RPC)
Still to do:
1) Server data should be destroyed if user answers "No" to "Do you want to keep your existing configuration data?"
2) If installing when existing server configuration data is present, populate the client cell to be the contents of the "ThisCell" file.
Cleanup the makefile to remove unnecessary defaultlib restrictions
Remove the DST fix added to address Rodney's bug with the timezone being
off by an hour on files one hour after the time change. Still need to
identify the real cause.
Finally fix once and for all the afsd_service.exe shutdown error.
The ServiceHandler must be declared with the WINAPI calling convention
because it returns a value.