diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-01-09 16:12:54 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:17:00 -0500 |
commit | 46fdae1b6b1b8e3285447193cb10e5a2a444d431 (patch) | |
tree | 8fe77aa1bc641d008ab9feec3f11207f83cfb481 /source3/smbd/nttrans.c | |
parent | 87bd4d2723e806ac0bc751ccf36fcdb8ed01c03c (diff) | |
download | samba-46fdae1b6b1b8e3285447193cb10e5a2a444d431.tar.gz samba-46fdae1b6b1b8e3285447193cb10e5a2a444d431.tar.bz2 samba-46fdae1b6b1b8e3285447193cb10e5a2a444d431.zip |
r20634: A *LOT* more work is necessary before touching notify remotely starts to make
sense. Until then, remove it from the tree to keep the diff between 3_0_24 and
3_0 small.
Volker
(This used to be commit f146a85e74c84e78a11e616a1cbeaeef4693a0e0)
Diffstat (limited to 'source3/smbd/nttrans.c')
-rw-r--r-- | source3/smbd/nttrans.c | 53 |
1 files changed, 6 insertions, 47 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index f62f5881b3..3e64cdc2d2 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -1820,15 +1820,14 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, { uint16 *setup = *ppsetup; files_struct *fsp; - uint32 filter; - NTSTATUS status; + uint32 flags; if(setup_count < 6) { return ERROR_DOS(ERRDOS,ERRbadfunc); } fsp = file_fsp((char *)setup,4); - filter = IVAL(setup, 0); + flags = IVAL(setup, 0); DEBUG(3,("call_nt_transact_notify_change\n")); @@ -1836,56 +1835,16 @@ static int call_nt_transact_notify_change(connection_struct *conn, char *inbuf, return ERROR_DOS(ERRDOS,ERRbadfid); } - DEBUG(3,("call_nt_transact_notify_change: notify change called on " - "directory name = %s\n", fsp->fsp_name )); - if((!fsp->is_directory) || (conn != fsp->conn)) { return ERROR_DOS(ERRDOS,ERRbadfid); } - if (fsp->notify == NULL) { - if (!(fsp->notify = TALLOC_ZERO_P( - NULL, struct notify_change_buf))) { - return ERROR_NT(NT_STATUS_NO_MEMORY); - } - } - - if (fsp->notify->num_changes > 0) { - - /* - * We've got changes pending, respond immediately - */ - - /* - * TODO: write a torture test to check the filtering behaviour - * here. - */ - - SMB_ASSERT(fsp->notify->requests == NULL); - - change_notify_reply(inbuf, max_param_count, - fsp->notify->num_changes, - fsp->notify->changes); - - TALLOC_FREE(fsp->notify->changes); - fsp->notify->num_changes = 0; - - /* - * change_notify_reply() above has independently sent its - * results - */ - return -1; + if (!change_notify_set(inbuf, fsp, conn, flags)) { + return(UNIXERROR(ERRDOS,ERRbadfid)); } - /* - * No changes pending, queue the request - */ - - status = change_notify_add_request(inbuf, max_param_count, filter, - fsp); - if (!NT_STATUS_IS_OK(status)) { - return ERROR_NT(status); - } + DEBUG(3,("call_nt_transact_notify_change: notify change called on directory \ +name = %s\n", fsp->fsp_name )); return -1; } |