RAP error strings take precedence as they are not encoded in the SMB header
authorJeremy Allison <jra@samba.org>
Mon, 10 Dec 2001 19:18:56 +0000 (19:18 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 10 Dec 2001 19:18:56 +0000 (19:18 +0000)
(ie. the call can succeed, but still be an encoded error).
Jeremy.
(This used to be commit 3c68b94199ff08b205d1eb14da56804936b900a8)

source3/libsmb/clierror.c

index e4d931b965e115b029227ac7a756734cd29d6516..cd1f86a47670ecb0eab2c722b58b48fb552744f1 100644 (file)
@@ -72,7 +72,14 @@ char *cli_errstr(struct cli_state *cli)
         uint8 errclass;
         int i;
 
-        /* Case #1: 32-bit NT errors */
+        /* Case #1: RAP error */
+       for (i = 0; rap_errmap[i].message != NULL; i++) {
+               if (rap_errmap[i].err == cli->rap_error) {
+                       return rap_errmap[i].message;
+               }
+       } 
+
+        /* Case #2: 32-bit NT errors */
        if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) {
                 NTSTATUS status = NT_STATUS(IVAL(cli->inbuf,smb_rcls));
 
@@ -81,18 +88,11 @@ char *cli_errstr(struct cli_state *cli)
 
         cli_dos_error(cli, &errclass, &errnum);
 
-        /* Case #2: SMB error */
+        /* Case #3: SMB error */
 
         if (errclass != 0)
                 return cli_smb_errstr(cli);
 
-        /* Case #3: RAP error */
-       for (i = 0; rap_errmap[i].message != NULL; i++) {
-               if (rap_errmap[i].err == cli->rap_error) {
-                       return rap_errmap[i].message;
-               }
-       } 
-
        slprintf(cli_error_message, sizeof(cli_error_message) - 1, "code %d", 
                  cli->rap_error);