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: upstream/1.8.0_pre1^2~4851 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=de441ba420b8fc38ce1b36bee06097f21cc6514b;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 --- diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index 5f6f657b7..031bb2ed9 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -3236,12 +3236,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 */ }