[SCM] Samba Shared Repository - branch v3-6-test updated

Jim McDonough jmcd at samba.org
Thu Aug 19 13:52:02 MDT 2010


The branch, v3-6-test has been updated
       via  7326fdb... s3-libsmbclient Convert dos error codes to NTstatus in async libsmbclient.
      from  95a444b... s3-ldapsam: add samba.ldif LDAP schema.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 7326fdb8d1fc4298c3a38c0f1d69e8c277994a98
Author: Jim McDonough <jmcd at samba.org>
Date:   Thu Aug 19 08:46:59 2010 -0400

    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.

-----------------------------------------------------------------------

Summary of changes:
 source3/libsmb/async_smb.c |    8 +-------
 source3/libsmb/errormap.c  |    2 +-
 2 files changed, 2 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c
index 4518518..8e08d6f 100644
--- a/source3/libsmb/async_smb.c
+++ b/source3/libsmb/async_smb.c
@@ -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));
 }
 
 /**
diff --git a/source3/libsmb/errormap.c b/source3/libsmb/errormap.c
index 48b3eb3..8b4ef23 100644
--- a/source3/libsmb/errormap.c
+++ b/source3/libsmb/errormap.c
@@ -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) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list