mirror of
https://github.com/samba-team/samba.git
synced 2025-01-27 14:04:05 +03:00
4b21ad9db7
This change brings ntvfs_connect into compliance with other ntvfs functions which take an ntvfs module, an ntvfs request and an smb io union. It now becomes the responsibility of ntvfs modules to examine tcon->generic.level themselves and derive the share name and any other options directly; e.g. const char *sharename; switch (tcon->generic.level) { case RAW_TCON_TCON: sharename = tcon->tcon.in.service; break; case RAW_TCON_TCONX: sharename = tcon->tconx.in.path; break; case RAW_TCON_SMB2: default: return NT_STATUS_INVALID_LEVEL; } if (strncmp(sharename, "\\\\", 2) == 0) { char *p = strchr(sharename+2, '\\'); if (p) { sharename = p + 1; } } service.c smbsrv_tcon_backend() is called before ntvfs_connect and fills in some of the tcon->..out values. For the case of RAW_TCON_TCONX, it filles out tcon->tconx.out.tid and tcon->tconx.out.options For the case of RAW_TCON_TCON it fills out tcon->tcon.out.tid and tcon->tcon.out.max_xmit Thus the ntvfs_connect function for vfs modules may override these values if desired, but are not required to. ntvfs_connect functions are required to fill in the tcon->tconx.out.*_type fields, for RAW_TCON_TCONX, perhaps something like: if (tcon->generic.level == RAW_TCON_TCONX) { tcon->tconx.out.fs_type = ntvfs->ctx->fs_type; tcon->tconx.out.dev_type = ntvfs->ctx->dev_type; } Signed-off-by: Sam Liddicott <sam@liddicott.com> (I fixed the ntvfs_connect() in the smb_server/smb2/ and the RAW_TCON_SMB2 switch case in the modules) Signed-off-by: Stefan Metzmacher <metze@samba.org>
This is the 'CIFS on CIFS' backend for Samba. It provides a NTVFS backend that talks to a remote CIFS server. The primary aim of this backend is for debugging and development, although some poeple may find it useful as a CIFS gateway. There are two modes of operation: Password specified and delegated credentials. Password specified: ------------------- This uses a static username/password in the config file, example: [myshare] ntvfs handler = cifs cifs:server = myserver cifs:user = tridge cifs:password = mypass cifs:domain = TESTDOM cifs:share = test Delegated credentials: ---------------------- If your incoming user is authenticated with Kerberos, and the machine account for this Samba4 proxy server is 'trusted for delegation', then the Samba4 proxy can forward the client's credentials to the target. You must be joined to the domain (net join <domain> member). To set 'trusted for delegation' with MMC, see the checkbox in the Computer account property page under Users and Computers. [myshare] ntvfs handler = cifs cifs:server = myserver cifs:share = test