mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
s3-libsmbclient Convert dos error codes to NTstatus in async libsmbclient.
DOS error codes were being lost with the conversion to async libsmbclient. If we're passing around NTSTATUS internally, let's just convert it when we get it. DOS ACCESS_DENIED on nautilus was not prompting for other credentials, because it was not being mapped.
This commit is contained in:
parent
cbe9f879af
commit
0ec0095d1a
@ -120,13 +120,7 @@ NTSTATUS cli_pull_error(char *buf)
|
||||
return NT_STATUS(IVAL(buf, smb_rcls));
|
||||
}
|
||||
|
||||
/* if the client uses dos errors, but there is no error,
|
||||
we should return no error here, otherwise it looks
|
||||
like an unknown bad NT_STATUS. jmcd */
|
||||
if (CVAL(buf, smb_rcls) == 0)
|
||||
return NT_STATUS_OK;
|
||||
|
||||
return NT_STATUS_DOS(CVAL(buf, smb_rcls), SVAL(buf,smb_err));
|
||||
return dos_to_ntstatus(CVAL(buf, smb_rcls), SVAL(buf,smb_err));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1425,7 +1425,7 @@ convert a dos eclas/ecode to a NT status32 code
|
||||
NTSTATUS dos_to_ntstatus(uint8 eclass, uint32 ecode)
|
||||
{
|
||||
int i;
|
||||
if (eclass == 0 && ecode == 0) return NT_STATUS_OK;
|
||||
if (eclass == 0) return NT_STATUS_OK;
|
||||
for (i=0; NT_STATUS_V(dos_to_ntstatus_map[i].ntstatus); i++) {
|
||||
if (eclass == dos_to_ntstatus_map[i].dos_class &&
|
||||
ecode == dos_to_ntstatus_map[i].dos_code) {
|
||||
|
Loading…
Reference in New Issue
Block a user