summaryrefslogtreecommitdiffstats
path: root/source4/smb_server/smb/service.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-03-06 15:14:08 +0100
committerStefan Metzmacher <metze@samba.org>2008-03-06 16:31:25 +0100
commit87f2925252b910f2f403bdbb3f9158202cb7a2c5 (patch)
treef84055e41da558ce7cfee769193b1e0455fe46d4 /source4/smb_server/smb/service.c
parent3cbe47b2aef427f7f1fe8f4aa2496fbbe31a3ade (diff)
downloadsamba-87f2925252b910f2f403bdbb3f9158202cb7a2c5.tar.gz
samba-87f2925252b910f2f403bdbb3f9158202cb7a2c5.tar.xz
samba-87f2925252b910f2f403bdbb3f9158202cb7a2c5.zip
ntvfs: pass down the client capabilities into the ntvfs layer
Note that we don't use any protocol specific values here. For now only NTVFS_CLIENT_CAP_LEVEL_II_OPLOCKS is defined others should be defined, when we find out that the ntvfs layer needs to know about it. metze (This used to be commit cc42cd5f6753ca582677fa6f403f0419eec5ab10)
Diffstat (limited to 'source4/smb_server/smb/service.c')
-rw-r--r--source4/smb_server/smb/service.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source4/smb_server/smb/service.c b/source4/smb_server/smb/service.c
index 35b36530261..52471c09c99 100644
--- a/source4/smb_server/smb/service.c
+++ b/source4/smb_server/smb/service.c
@@ -36,6 +36,7 @@ static NTSTATUS make_connection_scfg(struct smbsrv_request *req,
{
struct smbsrv_tcon *tcon;
NTSTATUS status;
+ uint64_t ntvfs_caps = 0;
tcon = smbsrv_smb_tcon_new(req->smb_conn, scfg->name);
if (!tcon) {
@@ -44,9 +45,14 @@ static NTSTATUS make_connection_scfg(struct smbsrv_request *req,
}
req->tcon = tcon;
+ if (req->smb_conn->negotiate.client_caps & CAP_LEVEL_II_OPLOCKS) {
+ ntvfs_caps |= NTVFS_CLIENT_CAP_LEVEL_II_OPLOCKS;
+ }
+
/* init ntvfs function pointers */
status = ntvfs_init_connection(tcon, scfg, type,
req->smb_conn->negotiate.protocol,
+ ntvfs_caps,
req->smb_conn->connection->event.ctx,
req->smb_conn->connection->msg_ctx,
req->smb_conn->lp_ctx,