Treat RAP codes differently.
authorJeremy Allison <jra@samba.org>
Mon, 10 Dec 2001 19:48:43 +0000 (19:48 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 10 Dec 2001 19:48:43 +0000 (19:48 +0000)
Jeremy.
(This used to be commit 919b11a787145139e6255674179b2ff7e587475d)

source3/libsmb/clierror.c

index cd1f86a47670ecb0eab2c722b58b48fb552744f1..81e8be36a8f196b602d7c8c2ca04265db61821d8 100644 (file)
@@ -69,34 +69,35 @@ char *cli_errstr(struct cli_state *cli)
 {   
        static fstring cli_error_message;
        uint32 flgs2 = SVAL(cli->inbuf,smb_flg2), errnum;
-        uint8 errclass;
-        int i;
+       uint8 errclass;
+       int i;
 
-        /* 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 #1: RAP error */
+       if (cli->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));
+               slprintf(cli_error_message, sizeof(cli_error_message) - 1, "RAP code %d",
+                       cli->rap_error);
 
-                return get_nt_error_msg(status);
-        }
+               return cli_error_message;
+       }
 
-        cli_dos_error(cli, &errclass, &errnum);
+       /* Case #2: 32-bit NT errors */
+       if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) {
+               NTSTATUS status = NT_STATUS(IVAL(cli->inbuf,smb_rcls));
 
-        /* Case #3: SMB error */
+               return get_nt_error_msg(status);
+        }
 
-        if (errclass != 0)
-                return cli_smb_errstr(cli);
+       cli_dos_error(cli, &errclass, &errnum);
 
-       slprintf(cli_error_message, sizeof(cli_error_message) - 1, "code %d", 
-                 cli->rap_error);
+       /* Case #3: SMB error */
 
-       return cli_error_message;
+       return cli_smb_errstr(cli);
 }