* cm_conn.c: assume that if all of the servers for a cell are DOWN
that there is NOSUCHVOLUME. We can't return TIMEDOUT because
this assumes there is a server which is up and the windows shell
will in turn continue to try to reach it for several minutes on
each refresh. Of course, each refresh occurs more frequently
than the timeouts.
We can't return ALLOFFLINE because that in turn results in
an attempt to cm_ForceUpdateVolume() will a NULL (cm_fid_t *).
That in turn causes a null reference and a crash.
* cm_volume.c: place a check in cm_ForceUpdateVolume() to return
without performing its job if there is no (cm_fid_t *) value.
Unfortunately, this in a ALLOFFLINE situation places the
service into an infinite loop.
Question: why is cm_ForceUpdateVolume() ever being called with
a NULL parameter for the (cm_fid_t *)?
* cm_smb.c: change the NTStatus for CM_ERROR_NOIPC to Remote
Resources instead of Access Denied.
* cm_buf.c: add a debugging statement
From Rob Murawski: This is a diff with the changes we talked about for
making a separate section for the SDK files. It is not installed by
default, unless the SDK files already exist. (To keep them consistent
on the machine)
Also, a fix to the ShouldClientInstall function to properly handle
downgrades.
To do list:
* remove /wizard from afssvrcfg.exe shortcuts
* add a "runonce" for afssvrcfg.exe /wizard when the Server is
installed
* enforce a restriction of no Freelance mode when the Server
is installed
* enforce a requirement of the Client install when the Server
is installed
* add a control panel shortcut to afssvrcfg.exe
* remove "recommended" tag from the AFS Server option
>>>>>>>>>>>>>>>>>>>>>
This is everything we talked about, plus:
1) Fixes the installer so re-installation behaves as expected.
All existing settings are preserved. (With the exception of what
is modifiable during install. The cell name is prepopulated, but
the user CAN change it)
2) Likewise, an upgrade will retain previous settings. (There
might be a point from which you cannot upgrade, i.e., from IBM
3.4 or something)
3) Variables named consistently, more code left out if NSIS 2.0b4.
-Rob
Murawski's daily patch for NSIS:
* user selectable registry settings
* generated files placed in $(OUT) tree
* installer produced in $(DEST) tree
* auto-detection of previous installation
* better naming to distinguish build date and Release vs Debug
tal_string defines three types: String, Ansi, Unicode
and provides functions to convert between them. The
initial problem with this module was a lack of consistent
memory allocation. The secondary problem was incorrect
conversion of between string types.
Remove extraneous reference to APPSVER variable. This might have
been an attempt at turning on debug info for the .NET compiler
for non-debug builds. The debug builds already have debug info
turned on.
to deal simply with /usr/include/linux potentially having 2.6 kernel headers
in newer linuxes. given that we might not have ext2 as root, this check
probably wasn't sufficient anyway.
TICKET 2619
If the service crashes unexpectedly (eg, when the network adapter list
changes) we should return an error code so that system policy can be
used to determine if the service should be automatically restarted.
When there is an error GlobalStatus gets set to a non-zero value.
If GlobalStatus is set, we will return ERROR_EXCEPTION_IN_SERVICE
to the Service Manager.
TICKET 2618
flexelint patches for prototype handling from Joe Beuhler
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
This patch adds a bunch of missing prototypes, makes various
corrections to global prototypes, and removes global declarations that
are not needed.
One set of added prototypes is commented out because it applies to
some printf-like functions that are implemented the way it used to be
done before varargs existed, and they need to be unprototyped or the
code will fail to compile. (There are a number of functions in the
OpenAFS code that need to be converted to use varargs...)
There is one place of note in src/WINNT/afsd/fs.c where typedefs for
afs_int32 and afs_uint32 conflict with afs/stds.h. I just added a
note to that effect.
Prototypes in src/WINNT/afsd/fs.c are incorrect for Windows NT. I
don't know whether the return type involved changes from platform to
platform -- they come from .xg files.
Some prototypes are now commented out or #ifdef'd to match the code
that uses them.
Some global variables conflict between modules and have been made static.
The bufferBlock variable was of two completely different types...
In src/config/stds.h, I changed the declaration of afs_intmax_t to
reflect the fact that the Windows platform supports 64 bit integers.
This may be incorrect semantically, but I believe it is needed for the
%llx format to match afs_intmax_t arguments (for printing of inodes
mainly, I believe).
There were two different declarations for the rxkad_stats structure --
I synced them up.
- Joe
Removed the conflicting typedefs from src/WINNT/afsd/fs.c
Removed the changes to src/config/stds.h. Added declaration of
AFS_64BIT_CLIENT to src/config/NTMakefile.i386_nt40 instead.
Do not remove unused variables which are defintions of data type
values. Instead comment them out to avoid space utilization and
warnings.
Replace the mechanism used to register drives with WNetAddConnection2.
This will hopefully be more reliable than then older code which was
unable to register drive mappings.
Corrected error string formatting.