mirror of
https://github.com/samba-team/samba.git
synced 2025-08-04 08:22:08 +03:00
Treat RAP codes differently.
Jeremy.
This commit is contained in:
@ -69,34 +69,35 @@ char *cli_errstr(struct cli_state *cli)
|
|||||||
{
|
{
|
||||||
static fstring cli_error_message;
|
static fstring cli_error_message;
|
||||||
uint32 flgs2 = SVAL(cli->inbuf,smb_flg2), errnum;
|
uint32 flgs2 = SVAL(cli->inbuf,smb_flg2), errnum;
|
||||||
uint8 errclass;
|
uint8 errclass;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Case #1: RAP error */
|
/* Case #1: RAP error */
|
||||||
for (i = 0; rap_errmap[i].message != NULL; i++) {
|
if (cli->rap_error) {
|
||||||
if (rap_errmap[i].err == cli->rap_error) {
|
for (i = 0; rap_errmap[i].message != NULL; i++) {
|
||||||
return rap_errmap[i].message;
|
if (rap_errmap[i].err == cli->rap_error) {
|
||||||
|
return rap_errmap[i].message;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Case #2: 32-bit NT errors */
|
slprintf(cli_error_message, sizeof(cli_error_message) - 1, "RAP code %d",
|
||||||
|
cli->rap_error);
|
||||||
|
|
||||||
|
return cli_error_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Case #2: 32-bit NT errors */
|
||||||
if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) {
|
if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) {
|
||||||
NTSTATUS status = NT_STATUS(IVAL(cli->inbuf,smb_rcls));
|
NTSTATUS status = NT_STATUS(IVAL(cli->inbuf,smb_rcls));
|
||||||
|
|
||||||
return get_nt_error_msg(status);
|
return get_nt_error_msg(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
cli_dos_error(cli, &errclass, &errnum);
|
cli_dos_error(cli, &errclass, &errnum);
|
||||||
|
|
||||||
/* Case #3: SMB error */
|
/* Case #3: SMB error */
|
||||||
|
|
||||||
if (errclass != 0)
|
return cli_smb_errstr(cli);
|
||||||
return cli_smb_errstr(cli);
|
|
||||||
|
|
||||||
slprintf(cli_error_message, sizeof(cli_error_message) - 1, "code %d",
|
|
||||||
cli->rap_error);
|
|
||||||
|
|
||||||
return cli_error_message;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user