1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source4/ntvfs
Andrew Tridgell e89fd49df7 r4757: added the ability of the clisocket level of libcli to handle async
socket connections. This was complicated by a few factors:

 - it meant moving the event context from clitransport to clisocket,
   so lots of structures changed

 - we need to asynchronously handle connection to lists of port
   numbers, not just one port number. The code internally tries each
   port in the list in turn, without ever blocking

 - the man page on how connect() is supposed to work asynchronously
   doesn't work in practice (now why doesn't this surprise me?). The
   getsockopt() for SOL_ERROR is supposed to retrieve the error, but
   in fact the next (unrelated) connect() call on the same socket also
   gets an error, though not the right error. To work around this I
   need to tear down the whole socket between each attempted port. I
   hate posix.

Note that clisocket.c still does a blocking name resolution call in
smbcli_sock_connect_byname(). That will be fixed when we add the async
NBT resolution code.

Also note that I arranged things so that every SMB connection is now
async internally, so using plain smbclient or smbtorture tests all the
async features of this new code.
(This used to be commit 468f8ebbfd)
2007-10-10 13:08:50 -05:00
..
cifs r4757: added the ability of the clisocket level of libcli to handle async 2007-10-10 13:08:50 -05:00
common r4547: - added talloc_new(ctx) macro that is a neater form of the common talloc(ctx, 0) call. 2007-10-10 13:08:20 -05:00
ipc r4690: - add support for async rpc server replies 2007-10-10 13:08:43 -05:00
nbench r3737: - Get rid of the register_subsystem() and register_backend() functions. 2007-10-10 13:05:48 -05:00
posix r4728: split up server_services into: 2007-10-10 13:08:49 -05:00
print r3971: fix compiler warnings 2007-10-10 13:06:09 -05:00
simple r3737: - Get rid of the register_subsystem() and register_backend() functions. 2007-10-10 13:05:48 -05:00
unixuid r4547: - added talloc_new(ctx) macro that is a neater form of the common talloc(ctx, 0) call. 2007-10-10 13:08:20 -05:00
config.mk r3982: split out the sid -> uid/gid mapping routines into a ntvfs_sidmap 2007-10-10 13:06:11 -05:00
ntvfs_base.c r4608: - use better error codes 2007-10-10 13:08:33 -05:00
ntvfs_generic.c r4549: got rid of a lot more uses of plain talloc(), instead using 2007-10-10 13:08:25 -05:00
ntvfs_interface.c r3528: added support for the SMBntcancel() operation, which cancels any 2007-10-10 13:05:28 -05:00
ntvfs_util.c r3466: split out request.h, signing.h, and smb_server.h 2007-10-10 13:05:17 -05:00
ntvfs.h r3528: added support for the SMBntcancel() operation, which cancels any 2007-10-10 13:05:28 -05:00
README first public release of samba4 code 2003-08-13 01:53:07 +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