summaryrefslogtreecommitdiff
path: root/source3/smbd/error.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-05-04 23:01:00 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:51:24 -0500
commit1843f6905caf30de6493de07316a416696394d3e (patch)
tree5d0e4772266a0b0c72ac1ad528e286fa3934b4c3 /source3/smbd/error.c
parent741545b4978cf638f4ed8ccd533240d51e6cb24b (diff)
downloadsamba-1843f6905caf30de6493de07316a416696394d3e.tar.gz
samba-1843f6905caf30de6493de07316a416696394d3e.tar.bz2
samba-1843f6905caf30de6493de07316a416696394d3e.zip
r478: Added Volkers fix to be able to force DOS errors when needed.
Jeremy. (This used to be commit a9d1738ebab42ab9bab73f18341d79e086e290b3)
Diffstat (limited to 'source3/smbd/error.c')
-rw-r--r--source3/smbd/error.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source3/smbd/error.c b/source3/smbd/error.c
index 795bf0949c..9c81d465e7 100644
--- a/source3/smbd/error.c
+++ b/source3/smbd/error.c
@@ -42,7 +42,7 @@ int cached_error_packet(char *outbuf,files_struct *fsp,int line,const char *file
/* We can now delete the auxiliary struct */
free((char *)wbmpx);
fsp->wbmpx_ptr = NULL;
- return error_packet(outbuf,NT_STATUS_OK,eclass,err,line,file);
+ return error_packet(outbuf,NT_STATUS_OK,eclass,err,False,line,file);
}
/****************************************************************************
@@ -76,7 +76,7 @@ int unix_error_packet(char *outbuf,int def_class,uint32 def_code,
}
}
- return error_packet(outbuf,ntstatus,eclass,ecode,line,file);
+ return error_packet(outbuf,ntstatus,eclass,ecode,False,line,file);
}
@@ -85,7 +85,7 @@ int unix_error_packet(char *outbuf,int def_class,uint32 def_code,
****************************************************************************/
int error_packet(char *outbuf,NTSTATUS ntstatus,
- uint8 eclass,uint32 ecode,int line, const char *file)
+ uint8 eclass,uint32 ecode,BOOL force_dos, int line, const char *file)
{
int outsize = set_message(outbuf,0,0,True);
extern uint32 global_client_caps;
@@ -106,7 +106,7 @@ int error_packet(char *outbuf,NTSTATUS ntstatus,
* when talking with clients that normally expect nt status codes. JRA.
*/
- if ((lp_nt_status_support() || (SVAL(outbuf,smb_flg2) & FLAGS2_32_BIT_ERROR_CODES)) && (global_client_caps & CAP_STATUS32)) {
+ if ((lp_nt_status_support() || (SVAL(outbuf,smb_flg2) & FLAGS2_32_BIT_ERROR_CODES)) && (global_client_caps & CAP_STATUS32) && (!force_dos)) {
if (NT_STATUS_V(ntstatus) == 0 && eclass)
ntstatus = dos_to_ntstatus(eclass, ecode);
SIVAL(outbuf,smb_rcls,NT_STATUS_V(ntstatus));