summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-11-05 21:46:33 +0000
committerJeremy Allison <jra@samba.org>2002-11-05 21:46:33 +0000
commit6c5e0cce566dd3bd9f7aee101295b80dea76310a (patch)
treee1c1ae1b8869b5b73929604e6fe8939ac8e08894
parentedea9b659fc2997b4e2a488cde36af35f741aa45 (diff)
downloadsamba-6c5e0cce566dd3bd9f7aee101295b80dea76310a.tar.gz
samba-6c5e0cce566dd3bd9f7aee101295b80dea76310a.tar.bz2
samba-6c5e0cce566dd3bd9f7aee101295b80dea76310a.zip
Fix to correctly return NT_STATUS_DELETE_PENDING.
Jeremy. (This used to be commit 075987f1db4de5e21ebf205a16a847ce0b2a926e)
-rw-r--r--source3/smbd/error.c3
-rw-r--r--source3/smbd/open.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/source3/smbd/error.c b/source3/smbd/error.c
index 2f993fb41e..9d0e34bf52 100644
--- a/source3/smbd/error.c
+++ b/source3/smbd/error.c
@@ -23,6 +23,7 @@
/* these can be set by some functions to override the error codes */
int unix_ERR_class=SMB_SUCCESS;
int unix_ERR_code=0;
+NTSTATUS unix_ERR_ntstatus = NT_STATUS_OK;
/* From lib/error.c */
extern struct unix_error_map unix_dos_nt_errmap[];
@@ -59,8 +60,10 @@ int unix_error_packet(char *outbuf,int def_class,uint32 def_code,
if (unix_ERR_class != SMB_SUCCESS) {
eclass = unix_ERR_class;
ecode = unix_ERR_code;
+ ntstatus = unix_ERR_ntstatus;
unix_ERR_class = SMB_SUCCESS;
unix_ERR_code = 0;
+ unix_ERR_ntstatus = NT_STATUS_OK;
} else {
while (unix_dos_nt_errmap[i].dos_class != 0) {
if (unix_dos_nt_errmap[i].unix_error == errno) {
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 417a9dd039..94a705e6b6 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -401,6 +401,7 @@ static BOOL check_share_mode(connection_struct *conn, share_mode_entry *share, i
fname ));
unix_ERR_class = ERRDOS;
unix_ERR_code = ERRnoaccess;
+ unix_ERR_ntstatus = NT_STATUS_DELETE_PENDING;
return False;
}