summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2000-10-06 20:34:14 +0000
committerJeremy Allison <jra@samba.org>2000-10-06 20:34:14 +0000
commit1929bcb89a8a5daf8ff9242324797e5340ec8fe9 (patch)
tree9cbdc7ad4d128aed21cf4db1a9519431c05df8fd /source3/smbd
parent1126775808f434c3df4089159512988df82cbdd5 (diff)
downloadsamba-1929bcb89a8a5daf8ff9242324797e5340ec8fe9.tar.gz
samba-1929bcb89a8a5daf8ff9242324797e5340ec8fe9.tar.bz2
samba-1929bcb89a8a5daf8ff9242324797e5340ec8fe9.zip
Fixed error return messages needed for NTTrans CreateDirectory.
This patch allows the standard W2k recursive mkdir to work against Samba. Jeremy. (This used to be commit 947102784360c65d51441457bb54aa28d2b4452d)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/nttrans.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 86b85ea766..f099583e55 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -796,6 +796,10 @@ int reply_ntcreate_and_X(connection_struct *conn,
restore_case_semantics(file_attributes);
if(!fsp) {
+ if((errno == ENOENT) && bad_path) {
+ unix_ERR_class = ERRDOS;
+ unix_ERR_code = ERRbadpath;
+ }
return(UNIXERROR(ERRDOS,ERRnoaccess));
}
} else {
@@ -856,6 +860,10 @@ int reply_ntcreate_and_X(connection_struct *conn,
if(!fsp) {
restore_case_semantics(file_attributes);
+ if((errno == ENOENT) && bad_path) {
+ unix_ERR_class = ERRDOS;
+ unix_ERR_code = ERRbadpath;
+ }
return(UNIXERROR(ERRDOS,ERRnoaccess));
}
#ifdef EROFS
@@ -1220,6 +1228,10 @@ static int call_nt_transact_create(connection_struct *conn,
if(!fsp) {
restore_case_semantics(file_attributes);
+ if((errno == ENOENT) && bad_path) {
+ unix_ERR_class = ERRDOS;
+ unix_ERR_code = ERRbadpath;
+ }
return(UNIXERROR(ERRDOS,ERRnoaccess));
}
@@ -1258,6 +1270,10 @@ static int call_nt_transact_create(connection_struct *conn,
if(!fsp) {
restore_case_semantics(file_attributes);
+ if((errno == ENOENT) && bad_path) {
+ unix_ERR_class = ERRDOS;
+ unix_ERR_code = ERRbadpath;
+ }
return(UNIXERROR(ERRDOS,ERRnoaccess));
}
#ifdef EROFS