diff options
author | Jeremy Allison <jra@samba.org> | 2002-01-04 21:11:35 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-01-04 21:11:35 +0000 |
commit | eb61d92ca7053bef9142a29f296aae695c47db33 (patch) | |
tree | ace319cdf0210116ae07067c3edbbb1e6e2ddf1c /source3/smbd/vfs.c | |
parent | 8942e906f0b3d02a94a3bd0411d3d11ac4af5873 (diff) | |
download | samba-eb61d92ca7053bef9142a29f296aae695c47db33.tar.gz samba-eb61d92ca7053bef9142a29f296aae695c47db33.tar.xz samba-eb61d92ca7053bef9142a29f296aae695c47db33.zip |
Re-wrote the guts of the rename_internals code to cope with a reported
bug (renaming name -> name was failing, on W2K it succeeds). Simplified
the common case, did a lot of work to ensure NT error codes are correctly
reported back to client.
Jeremy.
(This used to be commit e6b27f3d8069ae304baaebe09341c58d46b05fe4)
Diffstat (limited to 'source3/smbd/vfs.c')
-rw-r--r-- | source3/smbd/vfs.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index 6d8e9cc76c..afdfe8c48f 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -231,10 +231,10 @@ int vfs_mkdir(connection_struct *conn, const char *name, mode_t mode) } /******************************************************************* - Check if a vfs file exists. + Check if an object exists in the vfs. ********************************************************************/ -BOOL vfs_file_exist(connection_struct *conn,const char *fname,SMB_STRUCT_STAT *sbuf) +BOOL vfs_object_exist(connection_struct *conn,const char *fname,SMB_STRUCT_STAT *sbuf) { SMB_STRUCT_STAT st; @@ -243,9 +243,26 @@ BOOL vfs_file_exist(connection_struct *conn,const char *fname,SMB_STRUCT_STAT *s ZERO_STRUCTP(sbuf); - if (vfs_stat(conn,fname,sbuf) != 0) + if (vfs_stat(conn,fname,sbuf) == -1) return(False); + return True; +} + +/******************************************************************* + Check if a file exists in the vfs. +********************************************************************/ + +BOOL vfs_file_exist(connection_struct *conn,char *fname,SMB_STRUCT_STAT *sbuf) +{ + SMB_STRUCT_STAT st; + + if (!sbuf) + sbuf = &st; + ZERO_STRUCTP(sbuf); + + if (vfs_stat(conn,fname,sbuf) == -1) + return False; return(S_ISREG(sbuf->st_mode)); } |