summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2000-09-27 19:09:59 +0000
committerJeremy Allison <jra@samba.org>2000-09-27 19:09:59 +0000
commitb43b2e4f8a4be30e3f7aca6f570f5376fd508e3d (patch)
tree3c604a52b53f0a846fe62b5995becda7facda187 /source3/include
parent8c93ddf3e0ea80d482cbee7bf233c32fc69955bb (diff)
downloadsamba-b43b2e4f8a4be30e3f7aca6f570f5376fd508e3d.tar.gz
samba-b43b2e4f8a4be30e3f7aca6f570f5376fd508e3d.tar.bz2
samba-b43b2e4f8a4be30e3f7aca6f570f5376fd508e3d.zip
Restructuring of the code to remove dos_ChDir/dos_GetWd and re-vector them
through the VFS. All file access/directory access code in smbd should now go via the vfs. Added vfs_chown/vfs_chmod calls. Still looking at vfs_get_nt_acl() vfs_set_nt_acl() call API design. Jeremy. (This used to be commit f96625ec124adb6e110dc54632e006b3620a962b)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h19
-rw-r--r--source3/include/vfs.h7
2 files changed, 21 insertions, 5 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index be773f0bc3..cdc8e70d59 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -90,8 +90,6 @@ BOOL dos_file_exist(char *fname,SMB_STRUCT_STAT *sbuf);
BOOL dos_directory_exist(char *dname,SMB_STRUCT_STAT *st);
time_t dos_file_modtime(char *fname);
SMB_OFF_T dos_file_size(char *file_name);
-int dos_ChDir(char *path);
-char *dos_GetWd(char *path);
/*The following definitions come from lib/error.c */
@@ -339,7 +337,6 @@ void smb_setlen(char *buf,int len);
int set_message(char *buf,int num_words,int num_bytes,BOOL zero);
void dos_clean_name(char *s);
void unix_clean_name(char *s);
-BOOL reduce_name(char *s,char *dir,BOOL widelinks);
void make_dir_struct(char *buf,char *mask,char *fname,SMB_OFF_T size,int mode,time_t date);
void close_low_fds(void);
int set_blocking(int fd, BOOL set);
@@ -3854,23 +3851,35 @@ int vfswrap_lstat(char *path,
SMB_STRUCT_STAT *sbuf);
int vfswrap_unlink(char *path);
int vfswrap_chmod(char *path, mode_t mode);
+int vfswrap_chown(char *path, uid_t uid, gid_t gid);
+int vfswrap_chdir(char *path);
+char *vfswrap_getwd(char *path);
int vfswrap_utime(char *path, struct utimbuf *times);
int vfswrap_ftruncate(int fd, SMB_OFF_T offset);
BOOL vfswrap_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type);
+size_t vfswrap_get_nt_acl(files_struct *fsp, SEC_DESC **ppdesc);
+BOOL vfswrap_set_nt_acl(files_struct *fsp, uint32 security_info_sent, SEC_DESC *psd);
/*The following definitions come from smbd/vfs.c */
int vfs_init_default(connection_struct *conn);
BOOL vfs_init_custom(connection_struct *conn);
-BOOL vfs_directory_exist(connection_struct *conn, char *dname,
- SMB_STRUCT_STAT *st);
+int vfs_stat(connection_struct *conn, char *fname, SMB_STRUCT_STAT *st);
+BOOL vfs_directory_exist(connection_struct *conn, char *dname, SMB_STRUCT_STAT *st);
int vfs_unlink(connection_struct *conn, char *fname);
+int vfs_chmod(connection_struct *conn, char *fname,mode_t mode);
+int vfs_chown(connection_struct *conn, char *fname, uid_t uid, gid_t gid);
+int vfs_chdir(connection_struct *conn, char *fname);
+char *vfs_getwd(connection_struct *conn, char *unix_path);
BOOL vfs_file_exist(connection_struct *conn,char *fname,SMB_STRUCT_STAT *sbuf);
ssize_t vfs_write_data(files_struct *fsp,char *buffer,size_t N);
SMB_OFF_T vfs_transfer_file(int in_fd, files_struct *in_fsp,
int out_fd, files_struct *out_fsp,
SMB_OFF_T n, char *header, int headlen, int align);
char *vfs_readdirname(connection_struct *conn, void *p);
+int vfs_ChDir(connection_struct *conn, char *path);
+char *vfs_GetWd(connection_struct *conn, char *path);
+BOOL reduce_name(connection_struct *conn, char *s,char *dir,BOOL widelinks);
/*The following definitions come from smbwrapper/realcalls.c */
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 1312935e7f..e657354d94 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -184,9 +184,16 @@ struct vfs_ops {
int (*lstat)(char *path, SMB_STRUCT_STAT *sbuf);
int (*unlink)(char *path);
int (*chmod)(char *path, mode_t mode);
+ int (*chown)(char *path, uid_t uid, gid_t gid);
+ int (*chdir)(char *path);
+ char *(*getwd)(char *buf);
int (*utime)(char *path, struct utimbuf *times);
int (*ftruncate)(int fd, SMB_OFF_T offset);
BOOL (*lock)(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type);
+#if 0
+ size_t (*get_nt_acl)(files_struct *fsp, SEC_DESC **ppdesc);
+ BOOL (*set_nt_acl)(files_struct *fsp, uint32 security_info_sent, SEC_DESC *psd);
+#endif
};
struct vfs_options {