svn commit: samba r1845 - in branches/SAMBA_4_0/source: build/pidl librpc/rpc

metze at samba.org metze at samba.org
Tue Aug 17 09:07:44 GMT 2004


Author: metze
Date: 2004-08-17 09:07:44 +0000 (Tue, 17 Aug 2004)
New Revision: 1845

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=1845&nolog=1

Log:
map DCERPC_FAULT_LOGON_FAILURE to NT_STATUS_LOGON_FAILURE

metze

Modified:
   branches/SAMBA_4_0/source/build/pidl/server.pm
   branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/server.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/server.pm	2004-08-17 08:28:15 UTC (rev 1844)
+++ branches/SAMBA_4_0/source/build/pidl/server.pm	2004-08-17 09:07:44 UTC (rev 1845)
@@ -102,7 +102,7 @@
 	}
 
 	if (dce_call->fault_code != 0) {
-		return NT_STATUS_NET_WRITE_FAULT;
+		return dcerpc_map_fault2ntstatus(dce_call->fault_code);
 	}
 	return NT_STATUS_OK;
 }

Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c	2004-08-17 08:28:15 UTC (rev 1844)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c	2004-08-17 09:07:44 UTC (rev 1845)
@@ -95,7 +95,16 @@
 	}
 }
 
+NTSTATUS dcerpc_map_fault2ntstatus(uint32_t fault_code)
+{
+	switch (fault_code) {
+		case DCERPC_FAULT_LOGON_FAILURE:
+			return NT_STATUS_LOGON_FAILURE;
+	}
 
+	return NT_STATUS_NET_WRITE_FAULT;	
+}
+
 /* 
    parse a data blob into a dcerpc_packet structure. This handles both
    input and output packets
@@ -617,7 +626,7 @@
 	if (pkt.ptype == DCERPC_PKT_FAULT) {
 		DEBUG(5,("rpc fault 0x%x\n", pkt.u.fault.status));
 		p->last_fault_code = pkt.u.fault.status;
-		return NT_STATUS_NET_WRITE_FAULT;
+		return dcerpc_map_fault2ntstatus(pkt.u.fault.status);
 	}
 
 	if (pkt.ptype != DCERPC_PKT_RESPONSE) {
@@ -652,7 +661,7 @@
 
 		if (pkt.ptype == DCERPC_PKT_FAULT) {
 			p->last_fault_code = pkt.u.fault.status;
-			return NT_STATUS_NET_WRITE_FAULT;
+			return dcerpc_map_fault2ntstatus(pkt.u.fault.status);
 		}
 
 		if (pkt.ptype != DCERPC_PKT_RESPONSE) {



More information about the samba-cvs mailing list