Fix eventlog reporting. Do not attempt to log an event if the event
source registration fails. Use DebugEvent0 instead of DebugEvent
when there are no parameters.
Modify the LOOKUPKEYCHAIN macro to recognize ERROR_MORE_DATA errors.
Fix the reading of Domain specific configuration for LogonScript and
TheseCells. Previously the dwSize value was being overwritten so that
subsequent RegQueryValueEx call would fail.
Fix a memory leak in the TheseCells reading code.
Add support for Domain specific "Realm" specification. The realm is
the realm to be appended to the username. When logging in as a domain
or to the local machine, the specified "Domain" name is not going to be
a valid realm name.
Construct a proper principal name based upon the domain specified realm
for use in obtaining tokens with KFW.
If the domain specified "TheseCells" list includes the default cell,
do not obtain tokens twice.
There are two serious problems with integrated logon:
(1) openafs afslogon.dll obtains Kerberos v5 tickets and then forwards them
into the logon session. This was done because MIT KFW did not have
such functionality. As of KFW 3.1, KFW does, so we are removing it.
the functionality worked by copying the credentials to a FILE ccache
and then using the Logon Event Handler to move the credentials into
an API ccache and delete the temporary file. For non-interactive
logons the Logon Event handlers do not get triggered. Neither do
LogonScripts get executed. As a side effect, for each logon a
credential cache file was left behind.
(2) when combined with non-interactive logons, there are some very bad
side effects if a network provider performs Kerberos v5 operations.
Each logon occurs in a new logon session and will spawn a private
copy of krbcc32s.exe.
As a result, integrated logon is being disabled for non-interactive
logons.
* drop cm_daemonCheckUpInterval from 10 minutes to 4 minutes to bring
it under the minimum recommended default port mapping idle timeout
value for NATs
* when a timeout on an rx connection occurs, retry the request once
after forcing a new rx connection. If there was a NAT and the port
mapping changed, the server would respond to the original addr:port
associated with the rx connection. Forcing a new connection will
allow the request to be responded to if the server is accessible.
This should eliminate the UP-DOWN-UP-DOWN bouncing that user's have
seen when working from behind a NAT.
move the AFS Server Manager and AFS Account Manager data cache from
the TransarcCorporation key to the OpenAFS key. The data formats are
not compatible between the two versions and we don't want to be forced
to erase data if users switch back and forth between the two products
during OpenAFS evaluation.
Move the detection of which LAN adapter to use from smb_Init to
smb_NetbiosInit so that it is executed after the service is resumed
via a power management event. Otherwise, when the network comes back
up the service attempts to bind to all LAN adapters instead of just
the loopback or the configured one.
find lana by name is used by the afs control panel to populate the
lana list box. don't use the function to find by name. just use
it to generate the list of all lana names.
Remove the find lana by name functionality. It is crucial that the
name computed by the afs service can also be computed by the pioctl
function executed by generic end users without privilege. Unfortunately,
the undocumented functions used to implement find lana by name require
access to registry keys that a generic user cannot read.
In preparation for KFW 3.2, add conditional help registration.
When used with a version of NetIdMgr that supports the functionality
the OpenAFS plug-in will register its HtmlHelp on the NetIdMgr Help
menu.
based on suggested change from cg2v@andrew.cmu.edu
tasklist_lock not being exported makes this useless otherwise
S: ----------------------------------------------------------------------
====================
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.
====================
FIXES 53441
based on suggested change from cg2v@andrew.cmu.edu
tasklist_lock not being exported makes this useless otherwise
MIT Kerberos version 5 release 1.6 adds support for referrals in the
client. As a result krb5_get_host_realm() returns the nul-string for
the realm whenever there is no local domain-realm mapping in the
profile.
aklog must now manually perform the fallback to using the domain of
the vlserver as basis for the realm name if referrals fail.
MIT Kerberos version 5 release 1.6 adds support for referrals in the
client. As a result krb5_get_host_realm() returns the nul-string for
the realm whenever there is no local domain-realm mapping in the
profile.
aklog must now manually perform the fallback to using the domain of
the vlserver as basis for the realm name if referrals fail.
MIT Kerberos version 5 release 1.6 adds support for referrals in the
client. As a result krb5_get_host_realm() returns the nul-string for
the realm whenever there is no local domain-realm mapping in the
profile.
aklog must now manually perform the fallback to using the domain of
the vlserver as basis for the realm name if referrals fail.
====================
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.
====================
FIXES 53212
when merging status info that has an errorCode of EACCESS set,
merge the garbage we received.
When checking the access to the object return EACCESS if the
stat cache object has the EACCESS flag set. This will be cleared
the next time a BulkStatus succeeds.
when the name is foreign, execute the body of afs_is_foreign_ticket_name
====================
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.
====================
FIXES 52459
The Name to ID RPC must distinguish between local and foreign names
For each StoreData operation the dataVersion on the object is incremented.
To prevent all of the cached buffers from being considered out of date,
if the dataVersion has been incremented by exactly one, then update the
dataVersion of the buffers that match the FID and the previous dataVersion
Instead of using a fixed sized hashtable of 1024 entries regardless
of the number of buffers, compute the hashtable to be large enough
for on average 7 buffers per bucket.
Remove the 'size' field from cm_buf_t since it is never used.
Add more info to the output of cm_buf_t objects when using "fs memdump"
Add a 'failed' parameter to the cm_ReleaseBIOD function. This enables
the clearing of the CM_BUF_DIRTY flag to be conditional upon successful
completion of the store operation.
background request functions such as BkgFetch and BkgStore do not
return success or failure. the bkgDaemon thread simply executes
the request and discards it regardless of whether or not the request
was completed. this can result in background store event failing
to be written to the file server.
modify the background request functions to return success or failure.
modify the background daemon to put failed requests back onto the queue
if the reason for failure was transient.
modify the background daemon only to process requests when the servers
for the volume are marked up.
Correct the return types and values of the Window Procedures.
This fixes the drive mappings problems.
====================
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.
====================
FIXES 45545
Remove "Drive " from the drive mappings. This way the drive letters
can be selected with a single key press.
even if afsd_service.exe can be shut down the binary might still not
be able to be replaced due to the windows Protection Service.
Use the ReplaceDLL macro
If an app tries to open the freelance directory for WRITE then the
default anonymous access privileges, read/lookup, are not sufficient
and cm_HaveAccessRights will fail. Freelance can't get access rights
from anywhere. Therefore, cm_HaveAccessRights should special case
the Freelance directory.
the cm_CheckNTDelete function was testing the permissions of the
directory and not the permissions of the file being deleted.
This resulted in inconsistencies between the attributes of the
file and the ability to delete it.
this patch also adds a large amount of trace log entries as there
was none in this section of the code before.