Install registry values to force a mapping from afsdsbmt.ini file updates
via the old profile API to the new HKLM\Software\OpenAFS\Client\Submounts
key.
====================
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.
====================
conditionalize the cleanup of language files on their existence
====================
reformat parts of afsd_init.c
add support for version number checking to afsd_service.exe
====================
Fix the afs_config.exe submount dialog operations: Edit Submount name and
Remove submount entry.
====================
Fix the version info data stored in the resource block to
use the same language identifier as is advertised.
the VC++ 2003 Toolkit is missing some important libraries.
remove it from the README-NT file
====================
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.
====================
update docs
====================
simplify the freelance import from afs_freelance.ini code. don't generate
an new file if the old one does not exist.
begin conversion from old string functions to new strsafe functions.
this will need to be done for all of the afsd_service.exe source
modules before we can regularly use VS .NET 2005
Add support for VL_GetEntryByNameN. Still need to figure out what needs
to be done for VL_GetEntryByNameU. (multi-homed support)
====================
fix a deadlock situation if an Obtain Tokens dialog is produced
by an expiration event and the user chooses to cancel instead of
obtain new credentials.
some software network adapters use instances of lo but are real network adapters
. allow them to be advertised. the modified functions are called only in the pro
cess of collecting a list to advertise.
at the same time, make sure we mask 127.0.0.1.
i wonder if that's a mistake.
We currently try fairly hard to make stat() on a volume root return the
same vnode number as is listed for the mount point by readdir(). This
behaviour is desirable; in fact, getcwd would not work otherwise.
However, we are _not_ careful about making readdir list correct inode
numbers for "." in a volume root or ".." in a directory whose parent is
a volume root. This means that applications which examine these entries
will still see inconsistent inode numbers. Clearly, it would be more
desirable to report consistent inode numbers in all cases, instead of
only in some cases.
The attached patch, written while I was tracking down some NFS
translator problems (which ultimately proved to be unrelated), makes
readdir return consistent inode numbers for volume roots. We are
running this on a few machines and have seen no problems, but it has not
been extensively tested.
some software network adapters use instances of lo but are real network adapters
. allow them to be advertised. the modified functions are called only in the pro
cess of collecting a list to advertise.
at the same time, make sure we mask 127.0.0.1.
i wonder if that's a mistake.
* Optimize calls to the DNLC. Do not search if the FID is the Freelance
root.afs volume. Do not search if we are looking for the magic
_._AFS_IOCTL_._ name.
* Fix storage location for Freelance Mount Points broken in
previous patch
* Correct locking throughout the Directory Search code
which was resulting in invalid handle errors being
generated when objects were freed while they were still
in use by the CIFS client
the problem with rx_PutConnection is h_FreeConnection uses the host global lock
====================
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.
====================
the problem with rx_PutConnection is h_FreeConnection uses the host global lock
but it shouldn't matter (callback conn should be a client not server conn and
thus not h_FreeConnection on cleanup)
further, we should free the conns we GetConnection'd not the ones still in
the host struct at the end.
* Fix Find Cell By Name pioctl call to return a name "Freelance.Local.Root"
for the fake root.afs volume. This allows the IsPathInAfs() type
functions to succeed for \\AFS\all
* Add missing dialog template for Explorer Shell Extension Symlink->Add
operation
* Increase the acceptable length of the link destination path in the
Add Symlink dialog box support code.
* Remove the fallback to KRB4 in afskfw when obtaining tokens
* Add support for symlinks to Freelance root.afs volume
Stored at HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks
<number> = "<linkname>:<relative-path>."
Use symlink.exe to create, list, or remove
====================
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.
====================
* fix loading of SysName from the registry
* broken patch to tab_drives.cpp - this will be pulled
* Update all of the reference count fields to use unsigned long
instead of shorts or ints
* Reformat touched files
====================
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.
====================
* Update reference count fields from short to unsigned long
initialize flags in SetFields so that it has a default value
otherwise a runtime exception is generated on windows due to
lack of initialization before use.
mmap'd files can deadlock on linux; fix by not letting kernel free pages out of our space predictively
====================
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 15239
mmap'd files can deadlock on linux; fix by not letting kernel free pages out of
our space predictively
* use new rx_GetConnection/rx_PutConnection functions to increment/
decrement the refCounts on the rx_connection objects so that the
objects are not invalidated during RXAFS_xxx calls when:
- the user tokens change
- the global cryptlevel changes
* import SysName from registry and parse along white space boundaries
since it looks like CheckHost is using a gc'd client conn, this more or less has to be it.
====================
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.
====================
since it looks like CheckHost is using a gc'd client conn, this more or less has
to be it.
and don't deadlock.
====================
since it looks like CheckHost is using a gc'd client conn, this more or less has
to be it.
and don't deadlock.
====================
since it looks like CheckHost is using a gc'd client conn, this more or less has
to be it.
* fix the Windows cache manager to prevent it from replacing the
rx_connection object associated with the cm_conn_t object on each
and every operation if "fs crypt" was set. This explains the
dramatic performance difference when crypt is used vs clear.
The problem: 'cryptall', a boolean flag indicating whether or not
"fs crypt" is set, was being compared to the rx_connection
cryptlevel which is either rxkad_clear:0 or rxkad_crypt:2.
1 != 2 and therefore the rx_connection was always destroyed
and replaced on each and every operation.
Lock the cm_conn_t object around every call to RXAFS_xxxx functions.
It is not safe for the cm_conn_t object to not be locked because
rx_DestroyConnection might be called from another thread if:
- the user's tokens have changed or expired
- the crypt mode has changed
* Modify cm_Lookup to evaluate a list of possible values for @sys
instead of just a single entry. Re-write cm_ExpandSysname and
add cm_LookupInternal.
Add a new registry value HKLM/SOFTWARE/OpenAFS/Client "IoctlDebug" DWORD
which when set to a non-zero value will output error messages to stderr.
This is to assist in debugging ioctl failures when fs.exe, tokens.exe,
etc. fail because of an inability to open the ioctl file name.
One more fix for the symlink problem. Access control checks cannot be
performed until after we have walked all of the symlinks. Otherwise,
we are checking access to the symlink itself and not to the file.
The windows power management code responds to a request to suspend or
hibernate by performing a "fs flushvol" as the logged in user on each
of the SMB/CIFS mounted shares. This can be very time consuming if
the cell servers cannot be reached.
This patch adds a test to ensure that there is at least one network
adapter in the machine which is not a loopback adapter.
While developing this patch other areas of concern have been raised.
The power management code waits a fixed period of time based upon
the hard dead timeout before allowing the suspend/hibernate to continue.
This allows the machine to shutdown even if there are active flush
operations being performed. This defeats the benefit of performing
the flush at all.
A better mechanism could be developed if the functions called via
cm_IoctlFlushVolume returned and checked error codes. Then it might
be possible to abandon the flush operation if a Server Not Reachable
state was obtained.
The power management flush operations will also not work on Terminal
Server. This would be important in the case where a terminal server
is shutting down due to a switch over to a UPS. The reason it does
not work on Terminal Server is that there is that it is not possible
for afsd_service.exe to enumerate the SMB/CIFS shares and impersonate
the individual logged in users.
It would be preferred for there to be a new cm_FlushAll() function
implemented which was not dependent on the use of the ioctl mechanism
for the purpose of identifying a volume ID or a user ID.