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.
(1) remove the tkt_lifetime table which is no longer used
(2) improve the handling of token to k5 principal mapping
(3) assign the REALM to the token client name if the realm of
the cell does not match the realm of the user
Several fixes:
(1) the log file afsd_logp should not be referenced in the smb modules
instead the smb_logp should be used
(2) Properly define the dummy_MessageBox function as _stdcall
(3) When afsd_service.exe fails due to a Network Error (IP address change)
display a MessageBox to the end user
(4) Fix "rename foo foo" to not generate a "destination file exists" error
(Thanks to asanka)
FIXES 4027
. osi_cred now uses struct group_info
. the big kernel lock has been moved from the fs generic code
for some of the operations in 2.6
. 2.6 now just uses iput() and hooks the appropriate routines
. the dummy inode list handling should be clearer
when determining whether or not the ticket len is too long for the
receiver to accept we want to compare against the actual ticket length
and not MAXKTCTICKETLEN which is what is used when sizeof(ktc_ticketAnswer)
is used for comparison.
FIXES 1241
Modify buffer allocation to support tokens up to MAXPIOCTLTOKENLEN
(3*sizeof(afs_int32)+MAXKTCTICKETLEN+sizeof(struct ClearToken)+MAXKTCREALMLEN)
in length.
MIT's aklog.exe imported into the OpenAFS for Windows distribution
====================
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.
====================
MIT's aklog.exe imported into OpenAFS for Windows
Integration of Heimdal MD4/MD5 code
====================
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.
====================
Integration of Heimdal's MD4/MD5 code
====================
Integrate Heimdal's MD4/MD5 code
====================
Integrate Heimdal's MD4/MD5 code
====================
Integrate Heimdal's md4/md5 code
====================
Integration of Heimdal's MD4/MD5 code
If afscreds.exe you can now obtain credentials for cell "foo.com" with
credentials from "user@BAR.COM" when specifying a password. This is a
first step since if there are already valid credentials for "user@BAR.COM"
the password should not be requested. That would allow you to obtain
tokens for multiple cells with the same kerberos tgt.
Rodney found in his logs "Event Object Already Exists fid_t" messages.
This lead to another location in the code where problem mutex usage
was missing. In this case, multiple fid_t structs were created with the
same fid number.
Who at IBM was stupid enough to believe it is acceptable to
pass a va_args variable into a function without initializing
it with va_start()? Why would you ever bother to do otherwise?
* fix uninitialized return variables in smb.c and smb3.c
* open the osi_log file as early as possible in afsd_init.c
* create an argv to use for non-service executions
* add support for \\afs\.cellname for rw volumes
====================
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.
====================
Do not use IsKerberosLogon() it does not always report the right value.
circumstantially it doesn't work. /afs/andrew.cmu.edu/usr/shadow/tempdata is a
file and mvstat is 2, so I get EISDIR.
so i'll remove this for now and fix it after the next release.