avoid-long-windows-shell-timeouts-20040105
authorJeffrey Altman <jaltman@mit.edu>
Sun, 4 Jan 2004 10:39:03 +0000 (10:39 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 4 Jan 2004 10:39:03 +0000 (10:39 +0000)
commitd56b95d9a213cb862aeb1f31b6f2c9078530f631
tree56f021d55c5406914dc87653f80be8446dc63236
parent06af6dc9cfd16d42a90f0a58f0d47fa7d0b9cc41
avoid-long-windows-shell-timeouts-20040105

 * 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
src/WINNT/afsd/cm_buf.c
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_volume.c
src/WINNT/afsd/smb.c