Improve error checking in GetNumOfIpAddrs to prevent potential
invalid memory access if the IP Address Table cannot be accessed.
(win2000 with no privs)
NotifyAddrChange() on Win2000 without privs fails. Detect the failure
and terminate the IPChangeMonitor thread to prevent an infinite loop
eating up system resources.
first pass at routine to detect kernel mem* routines
====================
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 3651
second try
====================
FIXES 3651
third try
====================
FIXES 3651
this time for sure.
includes the definitions too, this way we can not have macros conflict with
headers we don't need
====================
FIXES 3651
this time for sure.
includes the definitions too, this way we can not have macros conflict with
headers we don't need
====================
FIXES 3651
this time for sure.
includes the definitions too, this way we can not have macros conflict with
headers we don't need
Move the README files to the top directory where they belong.
====================
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.
====================
As of 1.3.60 move the Windows Readme files from src to top directory
grab current version from http://grand.central.org/dl/cellservdb/CellServDB
====================
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.
====================
grab latest version from http://grand.central.org/dl/cellservdb/CellServDB
For UNCC, allow old style netbios name to be the default for this
release to give them time to convert their scripts to use \\AFS\...
instead of \\%MACHINENAME%-AFS\...
Change the NetbiosName registry value from REG_SZ to REG_EXPAND_SZ
and add the necessary code to expand the strings. This will allow
the use of %COMPUTERNAME%-AFS in case people want to explicitly use
a non-portable 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.
====================
Fix the DependsOnGroup NetworkProvider key to ensure it is placed in
the correct location
Change the location of the ShowTrayIcon key so that we no longer store
user data in the HKLM Transarc tree
====================
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.
====================
Move the locations of the ShowTrayIcon and cell name based expiration
reminder keys out of the HKLM\SOFTWARE\Transarc... key and into the
{HKCU,HKLM}\SOFTWARE\OpenAFS\... tree. This is safe to do because these
keys are transient in nature (created by afscreds.exe) and really do
belong to the user and not to the machine.
Fix the location of the registy values to be used for specifying
the service dependencies of the AFS Network Provider. AFS is
dependent on PNP_TDI (tcpip, netbt, etc); RpcSs; and NetBios.
Upgrades were failing to read the Cell name from the proper location
so that it could be restored.
This is an initial crack at one of the big problems with the existing
AFS client. Multiple processes in a single session or in multiple
sessions (terminal server) can step on each others toes. This is
because the dual use of RPC and SMB calls to perform operations.
Since nothing is done in a single synchronized step, there are plenty
of opportunities for data overwrites to occur.
The change was to add a Global Mutex within all of the ktc_XXXToken
calls. The use of "Global\" prefixed kernel objects are only supported
on Win2000 and above. This is fine because this is all we claim to
support. But if someone was to decide to run this code on NT4 or Win95
anyway bad things will now happen. This should probably be cleaned up
if someone has time.
openbsd:
use vrele instead of AFS_RELE in unmount to avert panic
acquire GLOCK in mount (not really needed but oh well)
other finnicky and needless tweaks
Support for FreeBSD 5.x client.
Both 4.x and 5.x now use vnodes from the system pool instead of attaching
a private vnode to the vcache.
Most of this is from Garrett Wollman <wollman@khavrinen.lcs.mit.edu>,
I just did some integration and made it work again on 4.x.
Cleaned up the language file installations.
Place language files in the same directories as the non-language files.
Do not install the MSVC files twice.
Install debug symbols for language files for all languages; not just German.
Discovered after wasting a huge quantity of time that it is possible
for OpenAFS to be installed on machines already containing the IBM/Transarc
AFS. Add the PATH environment variable to the log to allow this situation
to be detected.
Add support for a new form of automatic share name generation
\\netbiosName\cellname
which means that on systems with the loopback adapter you can
now refer to the athena.mit.edu afs cell as \\afs\athena.mit.edu\
This is implemented within cm_FindShare(). If the share name is not
one of the special ones and cannot be found in the Submounts table,
check to see if it is a known cell name, If so, create a path to
the share of /afs/sharename with the "sharename" being lower cased.
(I hope there are no cell names in mixed or upper case. This won't
work.)
* at my request Asanka Hearth of MIT ripped out all of the code used
the compute the Netbios Name of the SMB Server and the mountRoot
and constructed one commonly used library called lanahelper.lib.
This library is now constructed in the WINNT/afsd directory and
used throughout the tree. At least we now have consistency if
nothing else.
These changes are an attempt to provide a bit more consistency when
it comes to the establishment of SMB drive mappings. Whenever mappings
are created, the same name is used when a name can be found. This is
supposed to mirror what is performed in the integrated logon DLL.
There was a significant leak of smb_fid_t objects produced when copying
files from an AFS volume. This is clearly part of the problem reported
by UNCC. However, there is still an unexplained memory leak associated
with reading and writing files even if the data is only being read from
the cache.
I am noticing reports of memory allocation overruns from the Debug CRT
when freeing SCache objects. This could be a side effect of whatever is
causing the memory leak. This will require more research.
This is a very bad leak of Event Objects. Name all of our event objects
in an attempt to identify the source of the leak. Apparently, the leak
is not coming from any Event Objects we are creating directly.
Did find a misallocation of event objects in the smb code for the
initial session object. Fixed.
Add Shortcut Parameters to AfsCreds.exe -A -M -N -Q
A automatically attempt to obtain tokens on startup if needed
M renew drive maps
N background check monitors network configuration and attempts
to obtain tokens or restart client service if needed
Q do not start AFS wizard
* Add error checking and logging for WaitForMultipleObject calls
* Place log file in directory pointed to by TEMP env variable if defined
* Use the platform defined value for MAXIMUM_WAIT_OBJECTS instead of
the value 100. (WinNT.h defines this as 64)
* Add a new registry value "AllSubmount" which can be set to DWORD 0x00
to disable the automatic creation of the \\AFS\all submount. This is
for sites which wish to restrict access to the world.
the WSPP build references in the current ntbuild.bat are extraneous
as there are no references to the defined variable anywhere else in
the build system. remove them from ntbuild.bat
The Skyrope work attempted to improve on the end user experience of using
OpenAFS in the following ways:
* Obtain tokens using renewable Kerberos 5 tickets in order to
reduce the need for end users to renew expired tokens
* Monitor the list of IP Addresses in order to detect changes
in the network configuration which might affect the reachability
of cells or the state of the AFS Client Service. When cells
are newly reachable, obtain tokens for the cells. If the AFS
Client Service is not running, start it. If tokens are expiring
attempt to renew them.
* Use KDC probes to detect the accessibility of realms/cells. If
the KDC is not reachable, do not prompt the end user for a
username and password. (fs probe is not implemented on windows)
* Automatically obtain tokens using the Windows Logon Session
Kerberos credentials (if available)
* Allow tokens for multiple cells to be obtained by using the
same Kerberos 5 tickets. (no UI yet implemented)
* Perform drive mapping persistance by tracking it within the
afsdsbmt.ini file instead of relying on the Windows Shell
to persist the state.
* Add new afscreds.exe command line options and change the
default set used when creating the "AFS Credentials" shortcut
in the Start Menu->Programs->Startup folder.
From MIT:
* Auto-detection of loopback adapters. Use "AFS" as the netbios
name when a loopback adapter is installed.
* Support for responding to power management events. Used to
flush the cache when the machine is about to suspend, hibernate,
or shutdown
* Documentation of Registry entries
* Support for Extended SMB Requests
* Beginning of support for true Event Log reporting from a
message database
* Hidden Dot File support (configured via the HideDotFiles
registry option)
* Configurable Max number of Multiplexed Sessions (MaxMpxRequests
registry option)
* Configurable Max MTU size (RxMaxMTU registry option)
* Configurable Jumbogram support (RxNoJumbo registry option)
* Configurable Max number of Virtual Connections per Server
(MaxVCPerServer registry option)
* Win32 DNS API support
* Addition of SMB_ATTR_xxxx defines for use instead of hex numbers
* A variety of heap access and resource deallocation errors corrected
in the SMB code
* Support for recursive directory creation
* Modifications to the en_US version of the client configuration
dialog (need to port to other languages)
Notes on the current check-in:
* The KfW code will always be used when installed on the machine.
This code only supports Krb5 and will not work with Krb4 only
realms. A registry flag indicating whether or not KfW should be
used if found needs to be added.
* afscreds.exe needs to have a registry entry created to control
the parameter list it should be started with. There should be
a dialog to control this in the installer and within afscreds.exe
* The MIT method of auto-assigning the mount-root and the netbios
name is in conflict with the morgan stanley submissions in some
parts of the code. If you are using the loopback adapter with
this code both the "NetbiosName" = "AFS" and "Mountroot" = "/afs"
registry options must be specified. This will be fixed in coming
days.