time values in the cache manager and smb engine which are passed to
the run time library must be of type time_t and not long or int or
unsigned long or unsigned int or ...
(cherry picked from commit f21740a0ac)
When the callback expires on an scache item, if there is an smb client
listening for updates send it is a notification of change. This will
force the smb client to refresh its listener which will in turn cause
a new callback to be registered.
Also, remove debugging statements from GetServer/PutServer
(cherry picked from commit 1ae8a71dfa)
* Fix aklog.exe to not add the AFS ID to the username
* PTS registration of new users to foreign cells has been added to
afscreds.exe
* The cm_Daemon thread is used to perform checks for
down servers, up servers, volumes, callback expirations,
lock maintenance and token expiration. Due to a gaff in
larger integer division the thread never performed any
work. Instead the current time computation would always
be less then the trigger times. This had an adverse affect
on the client's ability to maintain communication with servers,
keep volumes up to date, and flush user tokens and acls
when they have expired. This was broken when the 1.3 branch
was modified to support VC7 which no longer included
largeint.lib
* An initialization problem with the Freelance code was
detected while fixing the callbackRequest. The cm_rootSCachep
object is obtained during afsd_InitDaemons() but the callback
information is incomplete. The callback information will not
be obtained until cm_MergeStatus is called from within
cm_GetCallback. Unfortunately, cm_SyncOp did not properly
test for the conditions under which the callback information
must be obtained.
* Reports have been filed indicating that callbacks were
being lost. An examination of the code indicated that the
cm_server_t objects were not being properly reference
counted by the cm_scache_t and cm_callbackRequest_t objects.
In particular, the cm_server_t objects may have been freed
from beneath the cm_conn_t objects.
All of the reference counting is now done via the functions:
cm_GetServer
cm_GetServerNoLock
cm_PutServer
cm_PutServerNoLock
this improves the ability to track the referrals.
Each cm_BeginCallbackGranting Call now allocates a reference
to the cm_server_t. The cm_EndCallbackGrantingCall either
frees the reference or transfers it to the cm_scache_t
cbServerp field. These are then appropriately tracked
through the cm_Analyze call.
* Ensure that the dnlc hash table is the same size as the
dir name hash table (as per original author's note).
Increase the dnlc CM_AFSNCNAMESIZE to a multiple of 8
for compatibility with 64-bit systems.
* fix smb_ApplyV3DirListPatches to properly apply the hidden
attribute to dotfiles when the infoLevel < 0x101 and
cm_SyncOp has failed.
* Fix the Freelance registry initialization code. There
was a possibility that some systems could end up with
garbage in the registry during a clean install.
(cherry picked from commit 3dce18d248)
Restore the installation of afslogon.dll as a winlogon event handler.
Microsoft identified the problem as being a newly added restriction
on the behavior of DllMain entry points. Network operations such
as bind() may no longer be called. The ICF blocks them but does not
cause an error to be returned.
(cherry picked from commit 2e8a3050d3)
The XP SP2 problem was caused by attempting to call bind() from
within DllMain which is no longer permitted. Added a new function
AfsLogonInit() which is called from every entry point to ensure
that the necessary initializaton is performed.
Cleaned up the prior fix to smb3.c to better test the invalid
conditions.
(cherry picked from commit 7a2fea24df)
protect against a null pointer reference in smb_ReceiveV3Trans
when its the first packet and the totalData and totalParms are 0
(cherry picked from commit 3fd571cb10)
Disable the installation of the WinLogon Event Handlers to avoid
problems with XP SP2 Final Release booting and profiles being released
on logoff.
Update version to 1.3.7000
Add VS8 entries to the build system
get configure scripts ready for 1.3.70
====================
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.
====================
unget configure scripts ready for 1.3.70. not what i meant to do
document new freelance functionality and update install notes
====================
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.
====================
more updates
Freeing the cm_serverRef_t has proved to be a challenge to get it right.
We now pass a pointer to a pointer to the first object in the list to
the function. We must be very careful to not destroy the list as we walk
the contents of the list with the extra level of indirection. On the
other hand, when we are freeing members of the list which have reached
a refCount of zero, we must be sure to maintain the fiction of the extra
level of indirection.
Added a change monitor to the HKLM\SOFTWARE\OpenAFS\Client\Freelance
key. When a change occurs mark the root.afs data as invalid and
for it to be reloaded on the next access. This allows administrators
to modify the mount point list without restarting the service.
The freelance client used to provide a fake modification time for
the root.afs volume data and its mount points of 7/09/2001 14:24 EDT.
Added code to extract the last modification time of the Freelance
registry key and use that instead. The time now represents the
most recent mount point change.
smb3.c: Fake the timestamp if we can't stat the file. A zero FILETIME
value causes problems.
Updates winnotes with current info
====================
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.
====================
summary of changes performed this week for 1.3.70
On Windows XP SP2, when a Kerberos principal is used for login and the
KDC is not reachable, Windows will return a DOWNGRADE_DETECTED error
when attempting to open the ioctl file. This is because NTLM will not
be permitted when there is the potential of an attack. There is a hack
to get around this. Manually create a CIFS connection to the AFS client
service while specifying the current user's name. This will use the cached
password and allow the downgrade to NTLM.
If the backup hosts file can't be deleted, try changing attribtues
first, and failing that try to come up with a unique name for the
backup instead of failing.
if there's a callback connection to a multihomed client, you need this
or you end up with multiple connections, one per IP, being made from
the single connection