summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb2/fileinfo.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-07-01 14:12:13 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:09:41 -0500
commita18fc61d4f6140ed6081d779dbad223cdd6df0cf (patch)
tree5b033d0ddea4d8f93d4280fde5e44be9df33e881 /source4/smb_server/smb2/fileinfo.c
parentb20c00f718c09cc2c9077235488683e0ca98f5bc (diff)
downloadsamba-a18fc61d4f6140ed6081d779dbad223cdd6df0cf.tar.gz
samba-a18fc61d4f6140ed6081d779dbad223cdd6df0cf.tar.bz2
samba-a18fc61d4f6140ed6081d779dbad223cdd6df0cf.zip
r16733: implement SMB2 SetInfo
metze (This used to be commit 9b6f74778f8db2fa18bb56dcbc6bd8168a882ac9)
Diffstat (limited to 'source4/smb_server/smb2/fileinfo.c')
-rw-r--r--source4/smb_server/smb2/fileinfo.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source4/smb_server/smb2/fileinfo.c b/source4/smb_server/smb2/fileinfo.c
index 32b7d1094e..d6290da33e 100644
--- a/source4/smb_server/smb2/fileinfo.c
+++ b/source4/smb_server/smb2/fileinfo.c
@@ -255,7 +255,22 @@ static void smb2srv_setinfo_send(struct ntvfs_request *ntvfs)
static NTSTATUS smb2srv_setinfo_file(struct smb2srv_setinfo_op *op, uint8_t smb2_level)
{
- return NT_STATUS_FOOBAR;
+ union smb_setfileinfo *io;
+ NTSTATUS status;
+
+ io = talloc(op, union smb_setfileinfo);
+ NT_STATUS_HAVE_NO_MEMORY(io);
+
+ /* the levels directly map to the passthru levels */
+ io->generic.level = smb2_level + 1000;
+ io->generic.in.file.ntvfs = op->info->in.file.ntvfs;
+
+ status = smbsrv_pull_passthru_sfileinfo(io, io->generic.level, io,
+ &op->info->in.blob,
+ STR_UNICODE, NULL);
+ NT_STATUS_NOT_OK_RETURN(status);
+
+ return ntvfs_setfileinfo(op->req->ntvfs, io);
}
static NTSTATUS smb2srv_setinfo_fs(struct smb2srv_setinfo_op *op, uint8_t smb2_level)