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.
====================
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.
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.
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
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.
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.
. 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.
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.
====================
====================
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.
====================
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.
Comment out the code which deletes the server configuration files
on AFS Server uninstall. We need to do this to protect existing
volumes if the product must be uninstalled and reinstalled