1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source4/ntvfs
Matthew DeVore 53a1d034f3 lib/util: Standardize use of st_[acm]time ns
Commit 810397f89a, and possibly others, broke the build for macOS and
other environments which don't have st_[acm]tim fields on 'struct stat'.

Multiple places in the codebase used the config.h values to determine
how to access the nanosecond or microsecond values of the stat
timestamps, so rather than add more, centralize them all into
lib/util/time.c.

Also allow pvfs_fileinfo.c to read nanosecond-granularity timestamps on
platforms where it didn't before, since its #if branches were not
complete.

Signed-off-by: Matthew DeVore <matvore@google.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Sat Aug 15 08:51:09 UTC 2020 on sn-devel-184
2020-08-15 08:51:09 +00:00
..
cifs s4/ntvfs/cifs: cppcheck: squash nullPointer: Possible null pointer dereference 2019-06-04 22:13:07 +00:00
common messaging4: Pass fds to messaging handlers 2019-09-18 20:10:24 +00:00
ipc s4:libcli/smb2: align struct smb_ioctl.smb2 to [MS-SMB2] names 2019-03-28 23:09:36 +00:00
posix lib/util: Standardize use of st_[acm]time ns 2020-08-15 08:51:09 +00:00
simple lib: modules: Change XXX_init interface from XXX_init(void) to XXX_init(TALLOC_CTX *) 2017-04-22 01:17:00 +02:00
sysdep s4: ntvfs: Add a TALLOC_CTX * to sys_notify_register(). 2017-05-13 16:50:13 +02:00
unixuid s4:auth/unix_token: remove unused tevent_context from security_token_to_unix_token() 2017-06-26 08:47:15 +02:00
ntvfs_base.c lib: modules: Change XXX_init interface from XXX_init(void) to XXX_init(TALLOC_CTX *) 2017-04-22 01:17:00 +02:00
ntvfs_generic.c ntvfs: Use NT_STATUS_NOTIFY_ENUM_DIR instead of STATUS_NOTIFY_ENUM_DIR 2020-06-22 12:07:38 +00:00
ntvfs_interface.c ntvfs: Remove now unused functions 2019-06-26 04:12:32 +00:00
ntvfs_util.c ntvfs: Remove now unused functions 2019-06-26 04:12:32 +00:00
ntvfs.h
README
wscript_build s4-ntvfs: Remove untested ntvfs_cifsposix backend 2019-05-22 07:15:43 +00:00

This is the base of the new NTVFS subsystem for Samba. The model for
NTVFS backends is quite different than for the older style VFS
backends, in particular:

- the NTVFS backends receive windows style file names, although they
  are in the unix charset (usually UTF8). This means the backend is
  responsible for mapping windows filename conventions to unix
  filename conventions if necessary

- the NTVFS backends are responsible for changing effective UID before
  calling any OS local filesystem operations (if needed). The
  become_*() functions are provided to make this easier.

- the NTVFS backends are responsible for resolving DFS paths

- each NTVFS backend handles either disk, printer or IPC$ shares,
  rather than one backend handling all types

- the entry points of the NTVFS backends correspond closely with basic
  SMB operations, wheres the old VFS was modelled directly on the
  POSIX filesystem interface.

- the NTVFS backends are responsible for all semantic mappings, such
  as mapping dos file attributes, ACLs, file ownership and file times