diff options
author | Jeremy Allison <jra@samba.org> | 2008-05-27 11:23:59 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-05-27 11:25:46 -0700 |
commit | 6811dc3fc236e62f042e43efa500cc55346c29d6 (patch) | |
tree | 0f4cb174567fb6baf89bc4358435c90fba63d680 /source3/smbd/close.c | |
parent | 7df9e11f156c01e0dce120120877b3dc4dc4f683 (diff) | |
download | samba-6811dc3fc236e62f042e43efa500cc55346c29d6.tar.gz samba-6811dc3fc236e62f042e43efa500cc55346c29d6.tar.bz2 samba-6811dc3fc236e62f042e43efa500cc55346c29d6.zip |
Allow server manager to close open files selected by id.
Jeremy.
(This used to be commit 7eeed8bb41059ec2bddedb6a71deddeec7f33af2)
Diffstat (limited to 'source3/smbd/close.c')
-rw-r--r-- | source3/smbd/close.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/source3/smbd/close.c b/source3/smbd/close.c index df188bafe1..818b4c70a8 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -736,3 +736,37 @@ NTSTATUS close_file(files_struct *fsp, enum file_close_type close_type) return status; } + +/**************************************************************************** + Deal with an (authorized) message to close a file given the share mode + entry. +****************************************************************************/ + +void msg_close_file(struct messaging_context *msg_ctx, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data) +{ + files_struct *fsp = NULL; + struct share_mode_entry e; + + message_to_share_mode_entry(&e, (char *)data->data); + + if(DEBUGLVL(10)) { + char *sm_str = share_mode_str(NULL, 0, &e); + if (!sm_str) { + smb_panic("talloc failed"); + } + DEBUG(10,("msg_close_file: got request to close share mode " + "entry %s\n", sm_str)); + TALLOC_FREE(sm_str); + } + + fsp = file_find_dif(e.id, e.share_file_id); + if (!fsp) { + DEBUG(10,("msg_close_file: failed to find file.\n")); + return; + } + close_file(fsp, NORMAL_CLOSE); +} |