From de441ba420b8fc38ce1b36bee06097f21cc6514b Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 3 Sep 2010 00:02:17 -0400 Subject: [PATCH] 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 --- src/WINNT/afsd/smb.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 */ } -- 2.39.5