From: Jeffrey Altman Date: Fri, 3 Sep 2010 04:02:17 +0000 (-0400) Subject: Windows: revise NTSTATUS response for ALLBUSY, ALLOFFLINE, and ALLDOWN X-Git-Tag: openafs-devel-1_5_77~3 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=cb498f02f7bc90dab005c478033413eedca27478;p=packages%2Fo%2Fopenafs.git Windows: revise NTSTATUS response for ALLBUSY, ALLOFFLINE, and ALLDOWN Replace STATUS_IO_TIMEOUT with RPC_NT_SERVER_TOO_BUSY for CM_ERROR_ALLBUSY. Replace STATUS_PATH_NOT_FOUND with RPC_NT_SERVER_UNAVAILABLE for CM_ERROR_ALLOFFLINE and CM_ERROR_ALLBUSY. These errors provide a more meaningful message to end users when a failure occurs. LICENSE MIT Change-Id: I34483f8f696285477fa0f8a8dac3b0ff33dee6b4 Reviewed-on: http://gerrit.openafs.org/2663 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit de441ba420b8fc38ce1b36bee06097f21cc6514b) Reviewed-on: http://gerrit.openafs.org/2714 --- diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index 693e74239..79b78857f 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -3239,12 +3239,16 @@ void smb_MapNTError(long code, unsigned long *NTStatusp) #ifdef COMMENT NTStatus = 0xC000022DL; /* Retry */ #else - NTStatus = 0xC00000B5L; /* I/O Timeout */ + NTStatus = 0xC0020018L; /* RPC_NT_SERVER_TOO_BUSY */ #endif - } + } else if (code == CM_ERROR_ALLOFFLINE || code == CM_ERROR_ALLDOWN) { +#ifdef COMMENT NTStatus = 0xC000003AL; /* Path not found */ - } +#else + NTStatus = 0xC0020017L; /* RPC_NT_SERVER_UNAVAILABLE */ +#endif + } else if (code >= ERROR_TABLE_BASE_RXK && code < ERROR_TABLE_BASE_RXK + 256) { NTStatus = 0xC0000322L; /* No Kerberos key */ }